From 1d8bf0ee661c24d9ec04c98347933bd7f19a27c3 Mon Sep 17 00:00:00 2001 From: Ruiling Liu Date: Wed, 16 Mar 2016 10:37:08 -0500 Subject: [PATCH] bioCADDIE core UI v0.5 --- 403.php | 6 + 404.php | 9 + about.php | 130 + advanced.php | 33 + ajax/SearchSuggestionService.php | 112 + ajax/deletesearch.php | 24 + ajax/savesearch.php | 26 + ajax/studyconsent.php | 26 + auto.html | 55 + change.php | 78 + composer.json | 5 +- composer.lock | 490 + config.php => config/config.php | 16 +- config/datasources.php | 77 + config/server.php | 20 + css/expand.css | 108 + css/style.css | 25 +- css/style_fix.css | 71 - css/theme.css | 1034 ++ database/GoogleUser.php | 77 + database/Search.php | 119 + database/StudyConsent.php | 99 + database/User.php | 131 + datasource.php | 181 - datasource/datatype.php | 31 - datasource/related.php | 26 - datasource/repo.php | 9 - datasource/result.php | 41 - dbcontroller.php | 37 + display-item.php | 73 + error.php | 45 +- expanded-query.php | 26 + feedback.php | 39 + fonts/Roboto-Regular.ttf | Bin 0 -> 162876 bytes forgot_password.php | 10 + google-api-php-client | 1 + google_login.php | 78 + grant_details.php | 42 + gwas/config.php | 21 + gwas/gwas_header.php | 2 +- gwas/gwas_index.php | 2 +- gwas/gwas_result.php | 261 +- gwas/gwas_result_template.php | 2 +- gwas/helper_functions.php | 104 + gwas/pagination.php | 62 + header.php | 84 - help.php | 185 + helper_functions.php | 108 - .../captcha_code_file.php | 94 + html-contact-form-captcha/monofont.ttf | Bin 0 -> 41036 bytes html-contact-form-captcha/readme.txt | 7 + .../scripts/gen_validatorv31.js | 808 + html-contact-form-captcha/thank-you.html | 13 + img/biocaddie-logo-transparent.png | Bin 0 -> 9812 bytes ...datamed-green-medium-light-transparent.png | Bin 0 -> 20110 bytes img/favicon.ico | Bin 0 -> 140206 bytes img/gf.png | Bin 15929 -> 0 bytes img/help/and.jpg | Bin 0 -> 22943 bytes img/help/not.jpg | Bin 0 -> 22026 bytes img/help/or.jpg | Bin 0 -> 20130 bytes img/id.png | Bin 9551 -> 0 bytes img/pilot-projects/DataDiscoveryIndex.png | Bin 0 -> 6750 bytes img/pilot-projects/GWAS.png | Bin 0 -> 12410 bytes img/pilot-projects/datarank.png | Bin 0 -> 22090 bytes img/pilot-projects/iSEE-DELVE.png | Bin 0 -> 8915 bytes img/rcsb_logo.png | Bin 32968 -> 0 bytes img/repositories/0001.png | Bin 0 -> 41372 bytes img/repositories/0002.png | Bin 0 -> 16065 bytes img/repositories/0003.png | Bin 0 -> 4286 bytes img/repositories/0004.png | Bin 0 -> 41063 bytes img/repositories/0005.png | Bin 0 -> 5757 bytes img/repositories/0006.png | Bin 0 -> 4572 bytes img/repositories/0007.png | Bin 0 -> 8921 bytes img/repositories/0008.png | Bin 0 -> 523 bytes img/repositories/0009.png | Bin 0 -> 5377 bytes img/repositories/0010.png | Bin 0 -> 29771 bytes img/repositories/0011.png | Bin 0 -> 8104 bytes img/repositories/0012.png | Bin 0 -> 9648 bytes img/repositories/0013.png | Bin 0 -> 184232 bytes img/repositories/0014.png | Bin 0 -> 2970 bytes img/repositories/0015.png | Bin 0 -> 42409 bytes img/repositories/0016.png | Bin 0 -> 23513 bytes img/repositories/0017.png | Bin 0 -> 14572 bytes img/repositories/0018.png | Bin 0 -> 57810 bytes img/repositories/0019.png | Bin 0 -> 12560 bytes img/repositories/0020.png | Bin 0 -> 74896 bytes img/repositories/0021.png | Bin 0 -> 9484 bytes img/repositories/0022.png | Bin 0 -> 6695 bytes img/repositories/0023.png | Bin 0 -> 7889 bytes img/sign-in-with-google.png | Bin 0 -> 4311 bytes img/user.png | Bin 0 -> 7241 bytes index.php | 59 +- index/announcement.php | 35 - index/data.csv | 8 - index/feature.php | 35 - index/latest.php | 49 - index/mostaccess.php | 41 - index/piechart.php | 9 - index/pilotproject.php | 27 - index/statistics.php | 35 - js/bootstrap.js | 8 +- js/bootstrap.min.js | 2 +- js/gen_validatorv31.js | 808 + js/global.scripts.js | 91 + js/jquery.suggest.js | 225 + js/loadingoverlay.min.js | 8 + js/page.scripts/advanced.js | 158 + js/page.scripts/displayitem.js | 16 + js/page.scripts/index.js | 352 + js/page.scripts/login.js | 18 + js/page.scripts/recentactivity.js | 47 + js/page.scripts/register.js | 23 + js/page.scripts/savedsearch.js | 50 + js/page.scripts/search.js | 16 + js/page.scripts/searchrepo.js | 27 + js/partial-search.js | 115 - js/piechart.js | 57 - lib/password.php | 317 + loading.gif | Bin 0 -> 6148 bytes login.php | 76 + questionnaire.php | 10 + recentactivity.php | 22 + register.php | 61 + repositories_model.php | 607 - repository_list.php | 41 + reset.php | 53 + reset_password.php | 10 + response.php | 105 - result.php | 71 - result/center-result.php | 40 - result/filter.php | 44 - result/pilot.php | 26 - result/repo.php | 6 - savedsearch.php | 27 + search-repository.php | 113 + search.php | 152 + search/AdvancedSearchService.php | 154 + search/Context.php | 73 + search/ElasticSearch.php | 291 + search/ElasticSearchBase.php | 35 + search/ExpansionSearch.php | 124 + search/Parser.php | 94 + search/PubmedGrantService.php | 185 + search/PubmedRelatedPublicationService.php | 93 + search/Repositories.php | 90 + search/Repositories_rep.php | 40 + search/SearchBuilder.php | 666 + search/SearchRepositoryBuilder.php | 431 + search/SimilarDatasetsService/Gemma.php | 131 + search/SimilarDatasetsService/Lincs.php | 131 + search/SimilarDatasetsService/Pdb.php | 115 + search/SingleItemDisplayService.php | 455 + search/repository/ArrayExpress.php | 93 + search/repository/Bioproject.php | 121 + search/repository/Cia.php | 137 + search/repository/ClinicalTrials.php | 153 + search/repository/Ctn.php | 123 + search/repository/Cvrg.php | 130 + search/repository/Dataverse.php | 122 + search/repository/DbGap.php | 117 + search/repository/Dryad.php | 134 + search/repository/Gemma.php | 85 + search/repository/Geo.php | 140 + search/repository/Lincs.php | 112 + search/repository/Mpd.php | 124 + search/repository/NURSA.php | 132 + search/repository/Neuromorpho.php | 136 + search/repository/Niddkcr.php | 126 + search/repository/Pdb.php | 182 + search/repository/Peptideatlas.php | 130 + search/repository/Physiobank.php | 117 + search/repository/Proteomexchange.php | 143 + search/repository/Repository.php | 79 + search/repository/RepositoryBase.php | 82 + search/repository/Sra.php | 74 + search/repository/Yped.php | 135 + search/repository/openFMRI.php | 130 + search/terminology.php | 214 + search_model.php | 330 - single_item.php | 102 - single_item/pubmed/array_to_table.php | 34 - single_item/pubmed/pubmed_publication.php | 115 - single_item/pubmed/test.php | 6 - single_item/similar/pdb_similar_dataset.php | 117 - single_item/similar/show_similar_tbl.php | 36 - single_item/similar/test.php | 7 - single_item/single_result.php | 104 - templates/403.php | 37 - templates/404.php | 38 - templates/announcement.php | 17 - templates/datasource.php | 45 - templates/feedback.php | 6 - templates/footer.php | 38 - templates/head.php | 51 - templates/header.php | 20 - templates/header_home.php | 20 - templates/index.php | 89 - templates/left_panel_repositories.php | 42 - templates/pagination.php | 62 - templates/recent_activity/recent_activity.php | 42 - templates/recent_activity/track_history.php | 14 - templates/result.php | 24 - templates/search.php | 15 - templates/search_result.php | 14 - templates/single_item.php | 38 - trackactivity.php | 18 + try_query_NLP.php | 99 + ucsd/403.php | 37 - ucsd/404.php | 38 - ucsd/left_panel_repositories.php | 8 +- ucsd/pagination.php | 2 +- ucsd/repositories_model.php | 8 +- ucsd/search_model.php | 2 +- vendor/composer/ClassLoader.php | 34 +- vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 2350 +++ vendor/composer/autoload_files.php | 10 + vendor/composer/autoload_namespaces.php | 1 - vendor/composer/autoload_psr4.php | 1 + vendor/composer/autoload_real.php | 17 +- vendor/composer/include_paths.php | 10 + vendor/composer/installed.json | 355 +- .../src/Elasticsearch/Client.php | 6 +- .../src/Elasticsearch/Common/DICBuilder.php | 10 +- .../Selectors/RandomSelector.php | 2 +- .../Selectors/RoundRobinSelector.php | 2 +- .../Connections/AbstractConnection.php | 4 +- .../src/Elasticsearch/Transport.php | 8 +- .../Selectors/RoundRobinSelectorTest.php | 2 +- .../StickyRoundRobinSelectorTest.php | 2 +- vendor/google/apiclient/.travis.yml | 26 + vendor/google/apiclient/CONTRIBUTING.md | 22 + vendor/google/apiclient/LICENSE | 203 + vendor/google/apiclient/README.md | 78 + vendor/google/apiclient/composer.json | 25 + .../apiclient/examples/appengineauth.php | 49 + vendor/google/apiclient/examples/batch.php | 84 + .../google/apiclient/examples/fileupload.php | 136 + vendor/google/apiclient/examples/idtoken.php | 106 + vendor/google/apiclient/examples/index.php | 19 + vendor/google/apiclient/examples/key.p12 | Bin 0 -> 1732 bytes .../google/apiclient/examples/multi-api.php | 118 + .../apiclient/examples/service-account.php | 90 + .../apiclient/examples/simple-query.php | 88 + .../apiclient/examples/simplefileupload.php | 124 + .../apiclient/examples/styles/style.css | 113 + .../apiclient/examples/templates/base.php | 90 + .../apiclient/examples/user-example.php | 130 + .../apiclient/src/Google/Auth/Abstract.php | 35 + .../apiclient/src/Google/Auth/AppIdentity.php | 100 + .../src/Google/Auth/AssertionCredentials.php | 138 + .../apiclient/src/Google/Auth/Exception.php | 22 + .../apiclient/src/Google/Auth/LoginTicket.php | 69 + .../apiclient/src/Google/Auth/OAuth2.php | 620 + .../apiclient/src/Google/Auth/Simple.php | 62 + .../apiclient/src/Google/Cache/Abstract.php | 53 + .../google/apiclient/src/Google/Cache/Apc.php | 73 + .../apiclient/src/Google/Cache/Exception.php | 21 + .../apiclient/src/Google/Cache/File.php | 145 + .../apiclient/src/Google/Cache/Memcache.php | 137 + .../apiclient/src/Google/Cache/Null.php | 56 + vendor/google/apiclient/src/Google/Client.php | 665 + .../apiclient/src/Google/Collection.php | 96 + vendor/google/apiclient/src/Google/Config.php | 371 + .../google/apiclient/src/Google/Exception.php | 20 + .../apiclient/src/Google/Http/Batch.php | 143 + .../apiclient/src/Google/Http/CacheParser.php | 184 + .../src/Google/Http/MediaFileUpload.php | 301 + .../google/apiclient/src/Google/Http/REST.php | 139 + .../apiclient/src/Google/Http/Request.php | 476 + .../apiclient/src/Google/IO/Abstract.php | 332 + .../google/apiclient/src/Google/IO/Curl.php | 137 + .../apiclient/src/Google/IO/Exception.php | 22 + .../google/apiclient/src/Google/IO/Stream.php | 211 + .../apiclient/src/Google/IO/cacerts.pem | 2183 +++ vendor/google/apiclient/src/Google/Model.php | 265 + .../google/apiclient/src/Google/Service.php | 39 + .../src/Google/Service/AdExchangeBuyer.php | 2074 +++ .../src/Google/Service/AdExchangeSeller.php | 1854 +++ .../apiclient/src/Google/Service/AdSense.php | 3783 +++++ .../src/Google/Service/AdSenseHost.php | 2328 +++ .../apiclient/src/Google/Service/Admin.php | 210 + .../src/Google/Service/Analytics.php | 10477 +++++++++++++ .../src/Google/Service/AndroidPublisher.php | 3580 +++++ .../apiclient/src/Google/Service/AppState.php | 383 + .../src/Google/Service/Appsactivity.php | 615 + .../apiclient/src/Google/Service/Audit.php | 453 + .../src/Google/Service/Autoscaler.php | 1197 ++ .../apiclient/src/Google/Service/Bigquery.php | 3524 +++++ .../apiclient/src/Google/Service/Blogger.php | 3546 +++++ .../apiclient/src/Google/Service/Books.php | 6943 +++++++++ .../apiclient/src/Google/Service/Calendar.php | 4086 +++++ .../src/Google/Service/CivicInfo.php | 1752 +++ .../src/Google/Service/CloudMonitoring.php | 1013 ++ .../apiclient/src/Google/Service/Compute.php | 12911 ++++++++++++++++ .../src/Google/Service/Coordinate.php | 1512 ++ .../src/Google/Service/Customsearch.php | 1467 ++ .../src/Google/Service/Datastore.php | 1667 ++ .../src/Google/Service/Dfareporting.php | 3016 ++++ .../src/Google/Service/Directory.php | 5907 +++++++ .../apiclient/src/Google/Service/Dns.php | 972 ++ .../Google/Service/DoubleClickBidManager.php | 1162 ++ .../src/Google/Service/Doubleclicksearch.php | 1593 ++ .../apiclient/src/Google/Service/Drive.php | 6136 ++++++++ .../src/Google/Service/Exception.php | 53 + .../apiclient/src/Google/Service/Freebase.php | 498 + .../src/Google/Service/Fusiontables.php | 2521 +++ .../apiclient/src/Google/Service/Games.php | 8167 ++++++++++ .../src/Google/Service/GamesManagement.php | 1037 ++ .../apiclient/src/Google/Service/Genomics.php | 3685 +++++ .../apiclient/src/Google/Service/Gmail.php | 1863 +++ .../src/Google/Service/GroupsMigration.php | 131 + .../src/Google/Service/Groupssettings.php | 469 + .../src/Google/Service/IdentityToolkit.php | 1829 +++ .../src/Google/Service/Licensing.php | 506 + .../apiclient/src/Google/Service/Manager.php | 2051 +++ .../src/Google/Service/MapsEngine.php | 6833 ++++++++ .../apiclient/src/Google/Service/Mirror.php | 2095 +++ .../apiclient/src/Google/Service/Oauth2.php | 424 + .../apiclient/src/Google/Service/Orkut.php | 4127 +++++ .../src/Google/Service/Pagespeedonline.php | 798 + .../apiclient/src/Google/Service/Plus.php | 3956 +++++ .../src/Google/Service/PlusDomains.php | 4127 +++++ .../src/Google/Service/Prediction.php | 1347 ++ .../apiclient/src/Google/Service/Pubsub.php | 859 + .../src/Google/Service/QPXExpress.php | 1759 +++ .../src/Google/Service/Replicapool.php | 1658 ++ .../apiclient/src/Google/Service/Reports.php | 1246 ++ .../apiclient/src/Google/Service/Reseller.php | 1125 ++ .../apiclient/src/Google/Service/Resource.php | 210 + .../src/Google/Service/Resourceviews.php | 1468 ++ .../apiclient/src/Google/Service/SQLAdmin.php | 2975 ++++ .../src/Google/Service/ShoppingContent.php | 4724 ++++++ .../src/Google/Service/SiteVerification.php | 413 + .../apiclient/src/Google/Service/Spectrum.php | 1953 +++ .../apiclient/src/Google/Service/Storage.php | 3333 ++++ .../src/Google/Service/Taskqueue.php | 743 + .../apiclient/src/Google/Service/Tasks.php | 971 ++ .../src/Google/Service/Translate.php | 382 + .../src/Google/Service/Urlshortener.php | 465 + .../apiclient/src/Google/Service/Webfonts.php | 235 + .../src/Google/Service/Webmasters.php | 951 ++ .../apiclient/src/Google/Service/YouTube.php | 11259 ++++++++++++++ .../src/Google/Service/YouTubeAnalytics.php | 647 + .../apiclient/src/Google/Signer/Abstract.php | 29 + .../apiclient/src/Google/Signer/P12.php | 91 + vendor/google/apiclient/src/Google/Utils.php | 135 + .../src/Google/Utils/URITemplate.php | 333 + .../src/Google/Verifier/Abstract.php | 30 + .../apiclient/src/Google/Verifier/Pem.php | 74 + vendor/google/apiclient/style/ruleset.xml | 157 + vendor/google/apiclient/tests/AllTests.php | 47 + vendor/google/apiclient/tests/BaseTest.php | 73 + vendor/google/apiclient/tests/OAuthHelper.php | 45 + vendor/google/apiclient/tests/README | 2 + .../apiclient/tests/adsense/AdSenseTest.php | 455 + vendor/google/apiclient/tests/bootstrap.php | 3 + .../tests/general/ApiBatchRequestTest.php | 80 + .../tests/general/ApiCacheParserTest.php | 230 + .../apiclient/tests/general/ApiClientTest.php | 159 + .../tests/general/ApiMediaFileUploadTest.php | 95 + .../apiclient/tests/general/ApiModelTest.php | 168 + .../apiclient/tests/general/ApiOAuth2Test.php | 234 + .../apiclient/tests/general/AuthTest.php | 272 + .../apiclient/tests/general/CacheTest.php | 135 + .../apiclient/tests/general/GeneralTests.php | 55 + .../google/apiclient/tests/general/IoTest.php | 309 + .../apiclient/tests/general/RequestTest.php | 74 + .../apiclient/tests/general/RestTest.php | 165 + .../apiclient/tests/general/ServiceTest.php | 79 + .../tests/general/URITemplateTest.php | 236 + .../tests/general/testdata/cacert.json | 1 + .../tests/general/testdata/cacert.pem | 17 + .../apiclient/tests/general/testdata/cert.p12 | Bin 0 -> 2196 bytes .../tests/general/testdata/privkey.pem | 9 + .../apiclient/tests/general/testdata/test.ini | 7 + .../general/testdata/test_public_key.pem | 20 + .../tests/pagespeed/AllPageSpeedTests.php | 30 + .../tests/pagespeed/PageSpeedTest.php | 39 + vendor/google/apiclient/tests/phpunit.xml | 7 + .../google/apiclient/tests/plus/PlusTest.php | 77 + .../apiclient/tests/tasks/AllTasksTests.php | 30 + .../apiclient/tests/tasks/TasksTest.php | 87 + .../urlshortener/AllUrlShortenerTests.php | 30 + .../tests/urlshortener/UrlShortenerTests.php | 45 + .../apiclient/tests/youtube/YouTubeTest.php | 95 + vendor/guzzle/guzzle/docs/_static/prettify.js | 8 +- vendor/guzzle/guzzle/phar-stub.php | 2 +- .../src/Guzzle/Batch/BatchClosureTransfer.php | 2 +- .../src/Guzzle/Batch/BatchCommandTransfer.php | 2 +- .../src/Guzzle/Batch/BatchRequestTransfer.php | 2 +- .../src/Guzzle/Cache/CacheAdapterFactory.php | 6 +- .../guzzle/src/Guzzle/Common/Collection.php | 4 +- .../src/Guzzle/Common/FromConfigInterface.php | 2 +- .../Guzzle/Common/HasDispatcherInterface.php | 2 +- .../guzzle/guzzle/src/Guzzle/Http/Client.php | 2 +- .../src/Guzzle/Http/ClientInterface.php | 2 +- .../src/Guzzle/Http/Curl/CurlVersion.php | 2 +- .../src/Guzzle/Http/Message/Request.php | 2 +- .../Guzzle/Http/Message/RequestFactory.php | 2 +- .../Http/Message/RequestFactoryInterface.php | 2 +- .../src/Guzzle/Http/Message/Response.php | 2 +- .../guzzle/src/Guzzle/Http/Mimetypes.php | 4 +- .../guzzle/src/Guzzle/Http/StaticClient.php | 4 +- vendor/guzzle/guzzle/src/Guzzle/Http/Url.php | 10 +- .../src/Guzzle/Log/AbstractLogAdapter.php | 2 +- .../src/Guzzle/Log/LogAdapterInterface.php | 2 +- .../src/Guzzle/Parser/Cookie/CookieParser.php | 2 +- .../src/Guzzle/Parser/ParserRegistry.php | 2 +- .../src/Guzzle/Parser/Url/UrlParser.php | 2 +- .../Plugin/Cache/DefaultCacheKeyProvider.php | 2 +- .../Cookie/CookieJar/CookieJarInterface.php | 2 +- .../Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php | 4 +- .../ErrorResponse/ErrorResponsePlugin.php | 4 +- .../src/Guzzle/Plugin/Log/LogPlugin.php | 2 +- .../src/Guzzle/Plugin/Oauth/OauthPlugin.php | 2 +- .../Guzzle/Service/Builder/ServiceBuilder.php | 6 +- .../Builder/ServiceBuilderInterface.php | 2 +- .../Service/Builder/ServiceBuilderLoader.php | 12 +- .../src/Guzzle/Service/ClientInterface.php | 4 +- .../Command/CreateResponseClassEvent.php | 2 +- .../Command/Factory/CompositeFactory.php | 8 +- .../Command/Factory/ConcreteClassFactory.php | 4 +- .../Command/OperationResponseParser.php | 2 +- .../Guzzle/Service/Description/Operation.php | 30 +- .../Description/OperationInterface.php | 12 +- .../Guzzle/Service/Description/Parameter.php | 10 +- .../Service/Description/SchemaFormatter.php | 2 +- .../Service/Description/SchemaValidator.php | 2 +- .../Description/ServiceDescriptionLoader.php | 6 +- .../AbstractResourceIteratorFactory.php | 2 +- .../Resource/MapResourceIteratorFactory.php | 4 +- .../Resource/ResourceIteratorClassFactory.php | 8 +- .../Guzzle/Stream/PhpStreamRequestFactory.php | 4 +- .../tests/Guzzle/Tests/GuzzleTestCase.php | 2 +- .../Guzzle/Tests/Http/Curl/CurlHandleTest.php | 2 +- .../guzzle/tests/Guzzle/Tests/Http/Server.php | 2 +- .../tests/Guzzle/Tests/Http/UrlTest.php | 2 +- .../guzzle/tests/Guzzle/Tests/Http/server.js | 2 +- .../ErrorResponse/ErrorResponsePluginTest.php | 10 +- .../Builder/ServiceBuilderLoaderTest.php | 8 +- .../Service/Builder/ServiceBuilderTest.php | 16 +- .../tests/Guzzle/Tests/Service/ClientTest.php | 2 +- .../Tests/Service/Command/CommandTest.php | 2 +- .../Factory/ServiceDescriptionFactoryTest.php | 6 +- .../Service/Description/OperationTest.php | 14 +- .../ServiceDescriptionLoaderTest.php | 4 +- .../Description/ServiceDescriptionTest.php | 8 +- .../Stream/PhpStreamRequestFactoryTest.php | 4 +- vendor/monolog/monolog/.php_cs | 0 vendor/monolog/monolog/CHANGELOG.mdown | 48 + vendor/monolog/monolog/LICENSE | 2 +- vendor/monolog/monolog/README.mdown | 249 +- vendor/monolog/monolog/composer.json | 27 +- .../monolog/doc/{usage.md => 01-usage.md} | 94 +- .../doc/02-handlers-formatters-processors.md | 142 + vendor/monolog/monolog/doc/03-utilities.md | 13 + .../doc/{extending.md => 04-extending.md} | 8 +- vendor/monolog/monolog/doc/sockets.md | 2 + vendor/monolog/monolog/phpunit.xml.dist | 6 +- .../monolog/src/Monolog/ErrorHandler.php | 24 +- .../Monolog/Formatter/ChromePHPFormatter.php | 0 .../Monolog/Formatter/ElasticaFormatter.php | 0 .../Monolog/Formatter/FlowdockFormatter.php | 16 +- .../Monolog/Formatter/FormatterInterface.php | 0 .../Formatter/GelfMessageFormatter.php | 0 .../src/Monolog/Formatter/HtmlFormatter.php | 4 +- .../src/Monolog/Formatter/JsonFormatter.php | 0 .../src/Monolog/Formatter/LineFormatter.php | 2 +- .../src/Monolog/Formatter/LogglyFormatter.php | 0 .../Monolog/Formatter/LogstashFormatter.php | 9 +- .../Monolog/Formatter/MongoDBFormatter.php | 4 +- .../Monolog/Formatter/NormalizerFormatter.php | 53 +- .../src/Monolog/Formatter/ScalarFormatter.php | 0 .../Monolog/Formatter/WildfireFormatter.php | 0 .../src/Monolog/Handler/AbstractHandler.php | 2 +- .../Handler/AbstractProcessingHandler.php | 2 +- .../Monolog/Handler/AbstractSyslogHandler.php | 0 .../src/Monolog/Handler/AmqpHandler.php | 0 .../Monolog/Handler/BrowserConsoleHandler.php | 18 +- .../src/Monolog/Handler/BufferHandler.php | 0 .../src/Monolog/Handler/ChromePHPHandler.php | 2 +- .../src/Monolog/Handler/CouchDBHandler.php | 0 .../src/Monolog/Handler/CubeHandler.php | 12 +- .../monolog/src/Monolog/Handler/Curl/Util.php | 57 + .../Handler/DoctrineCouchDBHandler.php | 0 .../src/Monolog/Handler/DynamoDbHandler.php | 0 .../Monolog/Handler/ElasticSearchHandler.php | 0 .../src/Monolog/Handler/ErrorLogHandler.php | 0 .../src/Monolog/Handler/FilterHandler.php | 0 .../ActivationStrategyInterface.php | 0 .../ChannelLevelActivationStrategy.php | 0 .../ErrorLevelActivationStrategy.php | 0 .../Monolog/Handler/FingersCrossedHandler.php | 5 +- .../src/Monolog/Handler/FirePHPHandler.php | 0 .../src/Monolog/Handler/FleepHookHandler.php | 0 .../src/Monolog/Handler/FlowdockHandler.php | 24 + .../src/Monolog/Handler/GelfHandler.php | 11 +- .../src/Monolog/Handler/GroupHandler.php | 0 .../src/Monolog/Handler/HandlerInterface.php | 2 +- .../src/Monolog/Handler/HipChatHandler.php | 61 +- .../src/Monolog/Handler/IFTTTHandler.php | 69 + .../src/Monolog/Handler/LogEntriesHandler.php | 0 .../src/Monolog/Handler/LogglyHandler.php | 18 +- .../src/Monolog/Handler/MailHandler.php | 2 +- .../src/Monolog/Handler/MandrillHandler.php | 5 +- .../Handler/MissingExtensionException.php | 0 .../src/Monolog/Handler/MongoDBHandler.php | 0 .../Monolog/Handler/NativeMailerHandler.php | 0 .../src/Monolog/Handler/NewRelicHandler.php | 40 +- .../src/Monolog/Handler/NullHandler.php | 0 .../src/Monolog/Handler/PHPConsoleHandler.php | 242 + .../src/Monolog/Handler/PsrHandler.php | 0 .../src/Monolog/Handler/PushoverHandler.php | 15 +- .../src/Monolog/Handler/RavenHandler.php | 30 +- .../src/Monolog/Handler/RedisHandler.php | 47 +- .../src/Monolog/Handler/RollbarHandler.php | 26 +- .../Monolog/Handler/RotatingFileHandler.php | 2 + .../src/Monolog/Handler/SamplingHandler.php | 0 .../src/Monolog/Handler/SlackHandler.php | 56 +- .../src/Monolog/Handler/SocketHandler.php | 8 +- .../src/Monolog/Handler/StreamHandler.php | 44 +- .../Monolog/Handler/SwiftMailerHandler.php | 3 +- .../src/Monolog/Handler/SyslogHandler.php | 0 .../Monolog/Handler/SyslogUdp/UdpSocket.php | 12 +- .../src/Monolog/Handler/SyslogUdpHandler.php | 2 + .../src/Monolog/Handler/TestHandler.php | 158 +- .../Handler/WhatFailureGroupHandler.php | 0 .../Monolog/Handler/ZendMonitorHandler.php | 0 vendor/monolog/monolog/src/Monolog/Logger.php | 40 +- .../src/Monolog/Processor/GitProcessor.php | 0 .../Processor/IntrospectionProcessor.php | 42 +- .../Processor/MemoryPeakUsageProcessor.php | 7 +- .../src/Monolog/Processor/MemoryProcessor.php | 6 +- .../Processor/MemoryUsageProcessor.php | 7 +- .../Monolog/Processor/ProcessIdProcessor.php | 0 .../Processor/PsrLogMessageProcessor.php | 0 .../src/Monolog/Processor/TagProcessor.php | 10 + .../src/Monolog/Processor/UidProcessor.php | 8 + .../src/Monolog/Processor/WebProcessor.php | 0 .../monolog/monolog/src/Monolog/Registry.php | 4 +- .../tests/Monolog/ErrorHandlerTest.php | 0 .../Formatter/ChromePHPFormatterTest.php | 0 .../Formatter/ElasticaFormatterTest.php | 4 +- .../Formatter/FlowdockFormatterTest.php | 0 .../Formatter/GelfMessageFormatterTest.php | 2 +- .../Monolog/Formatter/JsonFormatterTest.php | 0 .../Monolog/Formatter/LineFormatterTest.php | 6 +- .../Monolog/Formatter/LogglyFormatterTest.php | 0 .../Formatter/LogstashFormatterTest.php | 0 .../Formatter/MongoDBFormatterTest.php | 6 +- .../Formatter/NormalizerFormatterTest.php | 31 +- .../Monolog/Formatter/ScalarFormatterTest.php | 6 +- .../Formatter/WildfireFormatterTest.php | 0 .../Monolog/Handler/AbstractHandlerTest.php | 0 .../Handler/AbstractProcessingHandlerTest.php | 0 .../tests/Monolog/Handler/AmqpHandlerTest.php | 1 - .../Handler/BrowserConsoleHandlerTest.php | 0 .../Monolog/Handler/BufferHandlerTest.php | 0 .../Monolog/Handler/ChromePHPHandlerTest.php | 6 +- .../Monolog/Handler/CouchDBHandlerTest.php | 10 - .../Handler/DoctrineCouchDBHandlerTest.php | 0 .../Monolog/Handler/DynamoDbHandlerTest.php | 2 + .../Handler/ElasticSearchHandlerTest.php | 6 +- .../Monolog/Handler/ErrorLogHandlerTest.php | 0 .../Monolog/Handler/FilterHandlerTest.php | 0 .../Handler/FingersCrossedHandlerTest.php | 15 + .../Monolog/Handler/FirePHPHandlerTest.php | 0 .../tests/Monolog/Handler/Fixtures/.gitkeep | 0 .../Monolog/Handler/FleepHookHandlerTest.php | 0 .../Monolog/Handler/FlowdockHandlerTest.php | 0 .../Monolog/Handler/GelfHandlerLegacyTest.php | 0 .../tests/Monolog/Handler/GelfHandlerTest.php | 0 .../Handler/GelfMockMessagePublisher.php | 0 .../Monolog/Handler/GroupHandlerTest.php | 0 .../Monolog/Handler/HipChatHandlerTest.php | 76 +- .../Monolog/Handler/LogEntriesHandlerTest.php | 0 .../tests/Monolog/Handler/MailHandlerTest.php | 0 .../tests/Monolog/Handler/MockRavenClient.php | 1 + .../Monolog/Handler/MongoDBHandlerTest.php | 0 .../Handler/NativeMailerHandlerTest.php | 0 .../Monolog/Handler/NewRelicHandlerTest.php | 0 .../tests/Monolog/Handler/NullHandlerTest.php | 0 .../Monolog/Handler/PHPConsoleHandlerTest.php | 274 + .../tests/Monolog/Handler/PsrHandlerTest.php | 0 .../Monolog/Handler/PushoverHandlerTest.php | 0 .../Monolog/Handler/RavenHandlerTest.php | 49 +- .../Monolog/Handler/RedisHandlerTest.php | 56 + .../Handler/RotatingFileHandlerTest.php | 0 .../Monolog/Handler/SamplingHandlerTest.php | 0 .../Monolog/Handler/SlackHandlerTest.php | 0 .../Monolog/Handler/SocketHandlerTest.php | 0 .../Monolog/Handler/StreamHandlerTest.php | 52 +- .../Handler/SwiftMailerHandlerTest.php | 14 + .../Monolog/Handler/SyslogHandlerTest.php | 0 .../Monolog/Handler/SyslogUdpHandlerTest.php | 0 .../tests/Monolog/Handler/TestHandlerTest.php | 22 +- .../tests/Monolog/Handler/UdpSocketTest.php | 18 + .../Handler/WhatFailureGroupHandlerTest.php | 0 .../Handler/ZendMonitorHandlerTest.php | 0 .../monolog/tests/Monolog/LoggerTest.php | 62 + .../Monolog/Processor/GitProcessorTest.php | 0 .../Processor/IntrospectionProcessorTest.php | 8 +- .../MemoryPeakUsageProcessorTest.php | 0 .../Processor/MemoryUsageProcessorTest.php | 0 .../Processor/ProcessIdProcessorTest.php | 0 .../Processor/PsrLogMessageProcessorTest.php | 0 .../Monolog/Processor/TagProcessorTest.php | 20 + .../Monolog/Processor/UidProcessorTest.php | 5 + .../Monolog/Processor/WebProcessorTest.php | 0 .../tests/Monolog/PsrLogCompatTest.php | 0 .../monolog/tests/Monolog/RegistryTest.php | 92 +- .../monolog/tests/Monolog/TestCase.php | 0 vendor/monolog/monolog/tests/bootstrap.php | 15 - vendor/pimple/pimple/.gitignore | 0 vendor/pimple/pimple/.travis.yml | 0 vendor/pimple/pimple/CHANGELOG | 10 + vendor/pimple/pimple/LICENSE | 2 +- vendor/pimple/pimple/README.rst | 7 +- vendor/pimple/pimple/composer.json | 2 +- vendor/pimple/pimple/ext/pimple/.gitignore | 0 vendor/pimple/pimple/ext/pimple/README.md | 0 vendor/pimple/pimple/ext/pimple/config.m4 | 0 vendor/pimple/pimple/ext/pimple/config.w32 | 0 vendor/pimple/pimple/ext/pimple/php_pimple.h | 13 +- vendor/pimple/pimple/ext/pimple/pimple.c | 94 +- .../pimple/pimple/ext/pimple/pimple_compat.h | 0 .../pimple/pimple/ext/pimple/tests/001.phpt | 0 .../pimple/pimple/ext/pimple/tests/002.phpt | 0 .../pimple/pimple/ext/pimple/tests/003.phpt | 0 .../pimple/pimple/ext/pimple/tests/004.phpt | 0 .../pimple/pimple/ext/pimple/tests/005.phpt | 0 .../pimple/pimple/ext/pimple/tests/006.phpt | 0 .../pimple/pimple/ext/pimple/tests/007.phpt | 0 .../pimple/pimple/ext/pimple/tests/008.phpt | 0 .../pimple/pimple/ext/pimple/tests/009.phpt | 0 .../pimple/pimple/ext/pimple/tests/010.phpt | 0 .../pimple/pimple/ext/pimple/tests/011.phpt | 0 .../pimple/pimple/ext/pimple/tests/012.phpt | 0 .../pimple/pimple/ext/pimple/tests/013.phpt | 0 .../pimple/pimple/ext/pimple/tests/014.phpt | 0 .../pimple/pimple/ext/pimple/tests/015.phpt | 0 .../pimple/pimple/ext/pimple/tests/016.phpt | 0 .../pimple/pimple/ext/pimple/tests/017.phpt | 0 .../pimple/pimple/ext/pimple/tests/017_1.phpt | 0 .../pimple/pimple/ext/pimple/tests/018.phpt | 0 .../pimple/pimple/ext/pimple/tests/019.phpt | 18 + .../pimple/pimple/ext/pimple/tests/bench.phpb | 2 +- .../pimple/ext/pimple/tests/bench_shared.phpb | 2 +- vendor/pimple/pimple/phpunit.xml.dist | 0 vendor/pimple/pimple/src/Pimple/Container.php | 11 +- .../src/Pimple/ServiceProviderInterface.php | 2 +- .../src/Pimple/Tests/Fixtures/Invokable.php | 0 .../Pimple/Tests/Fixtures/NonInvokable.php | 0 .../Tests/Fixtures/PimpleServiceProvider.php | 0 .../src/Pimple/Tests/Fixtures/Service.php | 0 .../PimpleServiceProviderInterfaceTest.php | 2 +- .../pimple/src/Pimple/Tests/PimpleTest.php | 18 +- vendor/psr/log/Psr/Log/LoggerTrait.php | 2 +- .../log/Psr/Log/Test/LoggerInterfaceTest.php | 26 +- vendor/swiftmailer/swiftmailer/.gitattributes | 9 + vendor/swiftmailer/swiftmailer/.travis.yml | 25 + vendor/swiftmailer/swiftmailer/CHANGES | 206 + .../swiftmailer}/LICENSE | 2 +- vendor/swiftmailer/swiftmailer/README | 16 + vendor/swiftmailer/swiftmailer/VERSION | 1 + vendor/swiftmailer/swiftmailer/composer.json | 31 + .../swiftmailer/swiftmailer/doc/headers.rst | 742 + .../swiftmailer/doc/help-resources.rst | 44 + .../swiftmailer/doc/including-the-files.rst | 46 + vendor/swiftmailer/swiftmailer/doc/index.rst | 16 + .../swiftmailer/doc/installing.rst | 89 + .../swiftmailer/doc/introduction.rst | 135 + .../swiftmailer/swiftmailer/doc/japanese.rst | 22 + .../swiftmailer/swiftmailer/doc/messages.rst | 1057 ++ .../swiftmailer/swiftmailer/doc/overview.rst | 161 + .../swiftmailer/swiftmailer/doc/plugins.rst | 385 + .../swiftmailer/swiftmailer/doc/sending.rst | 607 + .../swiftmailer/doc/uml/Encoders.graffle | Bin 0 -> 3503 bytes .../swiftmailer/doc/uml/Mime.graffle | Bin 0 -> 5575 bytes .../swiftmailer/doc/uml/Transports.graffle | Bin 0 -> 3061 bytes .../swiftmailer/lib/classes/Swift.php | 80 + .../lib/classes/Swift/Attachment.php | 71 + .../AbstractFilterableInputStream.php | 179 + .../Swift/ByteStream/ArrayByteStream.php | 184 + .../Swift/ByteStream/FileByteStream.php | 229 + .../ByteStream/TemporaryFileByteStream.php | 42 + .../lib/classes/Swift/CharacterReader.php | 67 + .../GenericFixedWidthReader.php | 97 + .../Swift/CharacterReader/UsAsciiReader.php | 84 + .../Swift/CharacterReader/Utf8Reader.php | 179 + .../classes/Swift/CharacterReaderFactory.php | 26 + .../SimpleCharacterReaderFactory.php | 124 + .../lib/classes/Swift/CharacterStream.php | 89 + .../CharacterStream/ArrayCharacterStream.php | 293 + .../CharacterStream/NgCharacterStream.php | 275 + .../lib/classes/Swift/ConfigurableSpool.php | 63 + .../lib/classes/Swift/DependencyContainer.php | 373 + .../lib/classes/Swift/DependencyException.php | 27 + .../lib/classes/Swift/EmbeddedFile.php | 69 + .../swiftmailer/lib/classes/Swift/Encoder.php | 28 + .../classes/Swift/Encoder/Base64Encoder.php | 58 + .../lib/classes/Swift/Encoder/QpEncoder.php | 289 + .../classes/Swift/Encoder/Rfc2231Encoder.php | 92 + .../lib/classes/Swift/Encoding.php | 64 + .../lib/classes/Swift/Events/CommandEvent.php | 65 + .../classes/Swift/Events/CommandListener.php | 24 + .../lib/classes/Swift/Events/Event.php | 38 + .../classes/Swift/Events/EventDispatcher.php | 83 + .../classes/Swift/Events/EventListener.php | 18 + .../lib/classes/Swift/Events/EventObject.php | 63 + .../classes/Swift/Events/ResponseEvent.php | 65 + .../classes/Swift/Events/ResponseListener.php | 24 + .../lib/classes/Swift/Events/SendEvent.php | 129 + .../lib/classes/Swift/Events/SendListener.php | 31 + .../Swift/Events/SimpleEventDispatcher.php | 156 + .../Swift/Events/TransportChangeEvent.php | 27 + .../Swift/Events/TransportChangeListener.php | 45 + .../Swift/Events/TransportExceptionEvent.php | 46 + .../Events/TransportExceptionListener.php | 24 + .../lib/classes/Swift/FailoverTransport.php | 45 + .../lib/classes/Swift/FileSpool.php | 208 + .../lib/classes/Swift/FileStream.php | 24 + .../lib/classes/Swift/Filterable.php | 32 + .../swiftmailer/lib/classes/Swift/Image.php | 61 + .../lib/classes/Swift/InputByteStream.php | 75 + .../lib/classes/Swift/IoException.php | 29 + .../lib/classes/Swift/KeyCache.php | 105 + .../classes/Swift/KeyCache/ArrayKeyCache.php | 206 + .../classes/Swift/KeyCache/DiskKeyCache.php | 324 + .../Swift/KeyCache/KeyCacheInputStream.php | 51 + .../classes/Swift/KeyCache/NullKeyCache.php | 115 + .../KeyCache/SimpleKeyCacheInputStream.php | 127 + .../classes/Swift/LoadBalancedTransport.php | 45 + .../lib/classes/Swift/MailTransport.php | 45 + .../swiftmailer/lib/classes/Swift/Mailer.php | 114 + .../Swift/Mailer/ArrayRecipientIterator.php | 55 + .../Swift/Mailer/RecipientIterator.php | 32 + .../lib/classes/Swift/MemorySpool.php | 84 + .../swiftmailer/lib/classes/Swift/Message.php | 291 + .../lib/classes/Swift/Mime/Attachment.php | 153 + .../classes/Swift/Mime/CharsetObserver.php | 24 + .../lib/classes/Swift/Mime/ContentEncoder.php | 34 + .../ContentEncoder/Base64ContentEncoder.php | 104 + .../ContentEncoder/NativeQpContentEncoder.php | 123 + .../ContentEncoder/PlainContentEncoder.php | 162 + .../Mime/ContentEncoder/QpContentEncoder.php | 123 + .../ContentEncoder/QpContentEncoderProxy.php | 97 + .../Mime/ContentEncoder/RawContentEncoder.php | 64 + .../lib/classes/Swift/Mime/EmbeddedFile.php | 45 + .../classes/Swift/Mime/EncodingObserver.php | 24 + .../lib/classes/Swift/Mime/Grammar.php | 176 + .../lib/classes/Swift/Mime/Header.php | 93 + .../lib/classes/Swift/Mime/HeaderEncoder.php | 24 + .../HeaderEncoder/Base64HeaderEncoder.php | 55 + .../Mime/HeaderEncoder/QpHeaderEncoder.php | 65 + .../lib/classes/Swift/Mime/HeaderFactory.php | 78 + .../lib/classes/Swift/Mime/HeaderSet.php | 169 + .../Swift/Mime/Headers/AbstractHeader.php | 503 + .../classes/Swift/Mime/Headers/DateHeader.php | 125 + .../Mime/Headers/IdentificationHeader.php | 180 + .../Swift/Mime/Headers/MailboxHeader.php | 354 + .../Swift/Mime/Headers/OpenDKIMHeader.php | 137 + .../Mime/Headers/ParameterizedHeader.php | 260 + .../classes/Swift/Mime/Headers/PathHeader.php | 143 + .../Swift/Mime/Headers/UnstructuredHeader.php | 112 + .../lib/classes/Swift/Mime/Message.php | 223 + .../lib/classes/Swift/Mime/MimeEntity.php | 117 + .../lib/classes/Swift/Mime/MimePart.php | 214 + .../Swift/Mime/ParameterizedHeader.php | 34 + .../Swift/Mime/SimpleHeaderFactory.php | 198 + .../classes/Swift/Mime/SimpleHeaderSet.php | 396 + .../lib/classes/Swift/Mime/SimpleMessage.php | 649 + .../classes/Swift/Mime/SimpleMimeEntity.php | 867 ++ .../lib/classes/Swift/MimePart.php | 59 + .../lib/classes/Swift/NullTransport.php | 39 + .../lib/classes/Swift/OutputByteStream.php | 46 + .../classes/Swift/Plugins/AntiFloodPlugin.php | 141 + .../Swift/Plugins/BandwidthMonitorPlugin.php | 164 + .../Swift/Plugins/Decorator/Replacements.php | 31 + .../classes/Swift/Plugins/DecoratorPlugin.php | 207 + .../Swift/Plugins/ImpersonatePlugin.php | 69 + .../lib/classes/Swift/Plugins/Logger.php | 36 + .../classes/Swift/Plugins/LoggerPlugin.php | 142 + .../Swift/Plugins/Loggers/ArrayLogger.php | 72 + .../Swift/Plugins/Loggers/EchoLogger.php | 58 + .../classes/Swift/Plugins/MessageLogger.php | 74 + .../Swift/Plugins/Pop/Pop3Connection.php | 31 + .../Swift/Plugins/Pop/Pop3Exception.php | 27 + .../Swift/Plugins/PopBeforeSmtpPlugin.php | 273 + .../Swift/Plugins/RedirectingPlugin.php | 213 + .../lib/classes/Swift/Plugins/Reporter.php | 32 + .../classes/Swift/Plugins/ReporterPlugin.php | 73 + .../Swift/Plugins/Reporters/HitReporter.php | 59 + .../Swift/Plugins/Reporters/HtmlReporter.php | 39 + .../lib/classes/Swift/Plugins/Sleeper.php | 24 + .../classes/Swift/Plugins/ThrottlerPlugin.php | 200 + .../lib/classes/Swift/Plugins/Timer.php | 24 + .../lib/classes/Swift/Preferences.php | 103 + .../Swift/ReplacementFilterFactory.php | 27 + .../classes/Swift/RfcComplianceException.php | 27 + .../lib/classes/Swift/SendmailTransport.php | 45 + .../lib/classes/Swift/SignedMessage.php | 23 + .../swiftmailer/lib/classes/Swift/Signer.php | 20 + .../lib/classes/Swift/Signers/BodySigner.php | 33 + .../lib/classes/Swift/Signers/DKIMSigner.php | 702 + .../classes/Swift/Signers/DomainKeySigner.php | 525 + .../classes/Swift/Signers/HeaderSigner.php | 65 + .../classes/Swift/Signers/OpenDKIMSigner.php | 189 + .../lib/classes/Swift/Signers/SMimeSigner.php | 437 + .../lib/classes/Swift/SmtpTransport.php | 58 + .../swiftmailer/lib/classes/Swift/Spool.php | 53 + .../lib/classes/Swift/SpoolTransport.php | 47 + .../lib/classes/Swift/StreamFilter.php | 35 + .../ByteArrayReplacementFilter.php | 169 + .../StreamFilters/StringReplacementFilter.php | 66 + .../StringReplacementFilterFactory.php | 45 + .../lib/classes/Swift/SwiftException.php | 29 + .../lib/classes/Swift/Transport.php | 54 + .../Swift/Transport/AbstractSmtpTransport.php | 490 + .../Esmtp/Auth/CramMd5Authenticator.php | 81 + .../Esmtp/Auth/LoginAuthenticator.php | 51 + .../Esmtp/Auth/NTLMAuthenticator.php | 726 + .../Esmtp/Auth/PlainAuthenticator.php | 50 + .../Esmtp/Auth/XOAuth2Authenticator.php | 70 + .../Swift/Transport/Esmtp/AuthHandler.php | 263 + .../Swift/Transport/Esmtp/Authenticator.php | 35 + .../classes/Swift/Transport/EsmtpHandler.php | 86 + .../Swift/Transport/EsmtpTransport.php | 386 + .../Swift/Transport/FailoverTransport.php | 85 + .../lib/classes/Swift/Transport/IoBuffer.php | 67 + .../Swift/Transport/LoadBalancedTransport.php | 166 + .../classes/Swift/Transport/MailInvoker.php | 32 + .../classes/Swift/Transport/MailTransport.php | 237 + .../classes/Swift/Transport/NullTransport.php | 93 + .../Swift/Transport/SendmailTransport.php | 159 + .../Swift/Transport/SimpleMailInvoker.php | 39 + .../lib/classes/Swift/Transport/SmtpAgent.php | 36 + .../Swift/Transport/SpoolTransport.php | 117 + .../classes/Swift/Transport/StreamBuffer.php | 321 + .../lib/classes/Swift/TransportException.php | 29 + .../lib/classes/Swift/Validate.php | 43 + .../lib/dependency_maps/cache_deps.php | 23 + .../lib/dependency_maps/message_deps.php | 9 + .../lib/dependency_maps/mime_deps.php | 123 + .../lib/dependency_maps/transport_deps.php | 76 + .../swiftmailer/lib/mime_types.php | 1007 ++ .../swiftmailer/lib/preferences.php | 25 + .../swiftmailer/lib/swift_init.php | 28 + .../swiftmailer/lib/swift_required.php | 30 + .../swiftmailer/lib/swift_required_pear.php | 30 + .../lib/swiftmailer_generate_mimes_config.php | 193 + .../swiftmailer/swiftmailer/phpunit.xml.dist | 37 + .../tests/IdenticalBinaryConstraint.php | 62 + .../swiftmailer/tests/StreamCollector.php | 11 + .../tests/SwiftMailerSmokeTestCase.php | 46 + .../swiftmailer/tests/SwiftMailerTestCase.php | 34 + .../_samples/charsets/iso-2022-jp/one.txt | 11 + .../_samples/charsets/iso-8859-1/one.txt | 19 + .../tests/_samples/charsets/utf-8/one.txt | 22 + .../tests/_samples/charsets/utf-8/three.txt | 45 + .../tests/_samples/charsets/utf-8/two.txt | 3 + .../tests/_samples/dkim/dkim.test.priv | 15 + .../tests/_samples/dkim/dkim.test.pub | 6 + .../swiftmailer/tests/_samples/files/data.txt | 1 + .../tests/_samples/files/swiftmailer.png | Bin 0 -> 3194 bytes .../tests/_samples/files/textfile.zip | Bin 0 -> 202 bytes .../swiftmailer/tests/_samples/smime/CA.srl | 1 + .../swiftmailer/tests/_samples/smime/ca.crt | 21 + .../swiftmailer/tests/_samples/smime/ca.key | 27 + .../tests/_samples/smime/create-cert.sh | 40 + .../tests/_samples/smime/encrypt.crt | 19 + .../tests/_samples/smime/encrypt.key | 27 + .../tests/_samples/smime/encrypt2.crt | 19 + .../tests/_samples/smime/encrypt2.key | 27 + .../tests/_samples/smime/intermediate.crt | 19 + .../tests/_samples/smime/intermediate.key | 27 + .../swiftmailer/tests/_samples/smime/sign.crt | 19 + .../swiftmailer/tests/_samples/smime/sign.key | 27 + .../tests/_samples/smime/sign2.crt | 19 + .../tests/_samples/smime/sign2.key | 27 + .../tests/acceptance.conf.php.default | 44 + .../Swift/AttachmentAcceptanceTest.php | 12 + .../FileByteStreamAcceptanceTest.php | 174 + ...leCharacterReaderFactoryAcceptanceTest.php | 179 + .../DependencyContainerAcceptanceTest.php | 20 + .../Swift/EmbeddedFileAcceptanceTest.php | 12 + .../Encoder/Base64EncoderAcceptanceTest.php | 45 + .../Swift/Encoder/QpEncoderAcceptanceTest.php | 50 + .../Encoder/Rfc2231EncoderAcceptanceTest.php | 50 + .../Swift/EncodingAcceptanceTest.php | 30 + .../KeyCache/ArrayKeyCacheAcceptanceTest.php | 173 + .../KeyCache/DiskKeyCacheAcceptanceTest.php | 183 + .../Swift/MessageAcceptanceTest.php | 57 + .../Swift/Mime/AttachmentAcceptanceTest.php | 125 + .../Base64ContentEncoderAcceptanceTest.php | 56 + .../NativeQpContentEncoderAcceptanceTest.php | 86 + .../PlainContentEncoderAcceptanceTest.php | 88 + .../QpContentEncoderAcceptanceTest.php | 157 + .../Swift/Mime/EmbeddedFileAcceptanceTest.php | 137 + .../Base64HeaderEncoderAcceptanceTest.php | 32 + .../Swift/Mime/MimePartAcceptanceTest.php | 129 + .../Mime/SimpleMessageAcceptanceTest.php | 1251 ++ .../Swift/MimePartAcceptanceTest.php | 15 + .../AbstractStreamBufferAcceptanceTest.php | 134 + .../BasicSocketAcceptanceTest.php | 34 + .../StreamBuffer/ProcessAcceptanceTest.php | 27 + .../StreamBuffer/SocketTimeoutTest.php | 65 + .../StreamBuffer/SslSocketAcceptanceTest.php | 41 + .../StreamBuffer/TlsSocketAcceptanceTest.php | 40 + .../swiftmailer/tests/bootstrap.php | 19 + .../tests/bug/Swift/Bug111Test.php | 42 + .../tests/bug/Swift/Bug118Test.php | 20 + .../tests/bug/Swift/Bug206Test.php | 38 + .../tests/bug/Swift/Bug274Test.php | 21 + .../swiftmailer/tests/bug/Swift/Bug34Test.php | 75 + .../swiftmailer/tests/bug/Swift/Bug35Test.php | 73 + .../swiftmailer/tests/bug/Swift/Bug38Test.php | 194 + .../tests/bug/Swift/Bug518Test.php | 38 + .../swiftmailer/tests/bug/Swift/Bug51Test.php | 121 + .../tests/bug/Swift/Bug534Test.php | 38 + .../swiftmailer/tests/bug/Swift/Bug71Test.php | 20 + .../swiftmailer/tests/bug/Swift/Bug76Test.php | 82 + .../tests/fixtures/EsmtpTransportFixture.php | 10 + .../tests/fixtures/MimeEntityFixture.php | 59 + .../swiftmailer/tests/smoke.conf.php.default | 63 + .../smoke/Swift/Smoke/AttachmentSmokeTest.php | 30 + .../smoke/Swift/Smoke/BasicSmokeTest.php | 23 + .../Smoke/HtmlWithAttachmentSmokeTest.php | 29 + .../Swift/Smoke/InternationalSmokeTest.php | 37 + .../Swift/ByteStream/ArrayByteStreamTest.php | 204 + .../GenericFixedWidthReaderTest.php | 43 + .../CharacterReader/UsAsciiReaderTest.php | 52 + .../Swift/CharacterReader/Utf8ReaderTest.php | 65 + .../ArrayCharacterStreamTest.php | 360 + .../unit/Swift/DependencyContainerTest.php | 174 + .../unit/Swift/Encoder/Base64EncoderTest.php | 173 + .../unit/Swift/Encoder/QpEncoderTest.php | 381 + .../unit/Swift/Encoder/Rfc2231EncoderTest.php | 141 + .../unit/Swift/Events/CommandEventTest.php | 36 + .../unit/Swift/Events/EventObjectTest.php | 34 + .../unit/Swift/Events/ResponseEventTest.php | 40 + .../tests/unit/Swift/Events/SendEventTest.php | 99 + .../Events/SimpleEventDispatcherTest.php | 135 + .../Swift/Events/TransportChangeEventTest.php | 32 + .../Events/TransportExceptionEventTest.php | 43 + .../unit/Swift/KeyCache/ArrayKeyCacheTest.php | 242 + .../SimpleKeyCacheInputStreamTest.php | 73 + .../Mailer/ArrayRecipientIteratorTest.php | 42 + .../tests/unit/Swift/MailerTest.php | 152 + .../tests/unit/Swift/MessageTest.php | 130 + .../Swift/Mime/AbstractMimeEntityTest.php | 1054 ++ .../tests/unit/Swift/Mime/AttachmentTest.php | 320 + .../Base64ContentEncoderTest.php | 323 + .../PlainContentEncoderTest.php | 173 + .../ContentEncoder/QpContentEncoderTest.php | 496 + .../unit/Swift/Mime/EmbeddedFileTest.php | 57 + .../HeaderEncoder/Base64HeaderEncoderTest.php | 13 + .../HeaderEncoder/QpHeaderEncoderTest.php | 223 + .../Swift/Mime/Headers/DateHeaderTest.php | 69 + .../Mime/Headers/IdentificationHeaderTest.php | 189 + .../Swift/Mime/Headers/MailboxHeaderTest.php | 327 + .../Mime/Headers/ParameterizedHeaderTest.php | 400 + .../Swift/Mime/Headers/PathHeaderTest.php | 77 + .../Mime/Headers/UnstructuredHeaderTest.php | 355 + .../tests/unit/Swift/Mime/MimePartTest.php | 233 + .../Swift/Mime/SimpleHeaderFactoryTest.php | 168 + .../unit/Swift/Mime/SimpleHeaderSetTest.php | 734 + .../unit/Swift/Mime/SimpleMessageTest.php | 829 + .../unit/Swift/Mime/SimpleMimeEntityTest.php | 11 + .../Swift/Plugins/AntiFloodPluginTest.php | 95 + .../Plugins/BandwidthMonitorPluginTest.php | 127 + .../Swift/Plugins/DecoratorPluginTest.php | 269 + .../unit/Swift/Plugins/LoggerPluginTest.php | 190 + .../Swift/Plugins/Loggers/ArrayLoggerTest.php | 65 + .../Swift/Plugins/Loggers/EchoLoggerTest.php | 24 + .../Swift/Plugins/PopBeforeSmtpPluginTest.php | 103 + .../Swift/Plugins/RedirectingPluginTest.php | 185 + .../unit/Swift/Plugins/ReporterPluginTest.php | 88 + .../Plugins/Reporters/HitReporterTest.php | 64 + .../Plugins/Reporters/HtmlReporterTest.php | 54 + .../Swift/Plugins/ThrottlerPluginTest.php | 104 + .../unit/Swift/Signers/DKIMSignerTest.php | 227 + .../unit/Swift/Signers/OpenDKIMSignerTest.php | 45 + .../unit/Swift/Signers/SMimeSignerTest.php | 554 + .../ByteArrayReplacementFilterTest.php | 131 + .../StringReplacementFilterFactoryTest.php | 38 + .../StringReplacementFilterTest.php | 55 + .../AbstractSmtpEventSupportTest.php | 560 + .../unit/Swift/Transport/AbstractSmtpTest.php | 1249 ++ .../Esmtp/Auth/CramMd5AuthenticatorTest.php | 66 + .../Esmtp/Auth/LoginAuthenticatorTest.php | 66 + .../Esmtp/Auth/NTLMAuthenticatorTest.php | 235 + .../Esmtp/Auth/PlainAuthenticatorTest.php | 69 + .../Swift/Transport/Esmtp/AuthHandlerTest.php | 167 + .../EsmtpTransport/ExtensionSupportTest.php | 530 + .../Swift/Transport/EsmtpTransportTest.php | 298 + .../Swift/Transport/FailoverTransportTest.php | 520 + .../Transport/LoadBalancedTransportTest.php | 751 + .../Swift/Transport/MailTransportTest.php | 311 + .../Swift/Transport/SendmailTransportTest.php | 152 + .../unit/Swift/Transport/StreamBufferTest.php | 45 + .../EventDispatcher => }/CHANGELOG.md | 0 .../ContainerAwareEventDispatcher.php | 33 +- .../Debug/TraceableEventDispatcher.php | 57 +- .../TraceableEventDispatcherInterface.php | 0 .../Debug/WrappedListener.php | 0 .../RegisterListenersPass.php | 2 +- .../Component/EventDispatcher => }/Event.php | 30 +- .../EventDispatcher => }/EventDispatcher.php | 65 +- .../EventDispatcherInterface.php | 10 +- .../EventSubscriberInterface.php | 6 +- .../EventDispatcher => }/GenericEvent.php | 4 +- .../ImmutableEventDispatcher.php | 8 + vendor/symfony/event-dispatcher/LICENSE | 19 + .../Component/EventDispatcher => }/README.md | 0 .../Component/EventDispatcher/.gitignore | 3 - .../Tests/AbstractEventDispatcherTest.php | 33 +- .../ContainerAwareEventDispatcherTest.php | 4 + .../Debug/TraceableEventDispatcherTest.php | 42 +- .../RegisterListenersPassTest.php | 8 +- .../Tests/EventDispatcherTest.php | 0 .../EventDispatcher => }/Tests/EventTest.php | 6 +- .../Tests/GenericEventTest.php | 2 +- .../Tests/ImmutableEventDispatcherTest.php | 0 .../EventDispatcher => }/composer.json | 23 +- .../EventDispatcher => }/phpunit.xml.dist | 1 + views/about/verificationimage.php | 22 + views/account/forgot_password.php | 34 + views/account/reset_password.php | 43 + views/account/viewlogin.php | 67 + views/account/viewprofile.php | 113 + views/account/viewregister.php | 175 + views/advanced/builder.php | 70 + views/display_item/breadcrumb.php | 39 + views/display_item/pubmed_grant.php | 48 + views/display_item/related_publications.php | 41 + .../repositories/ArrayExpress.php | 82 + .../display_item/repositories/Bioproject.php | 88 + views/display_item/repositories/Cia.php | 157 + .../repositories/ClinicalTrials.php | 191 + views/display_item/repositories/Ctn.php | 78 + views/display_item/repositories/Cvrg.php | 133 + views/display_item/repositories/Dataverse.php | 117 + views/display_item/repositories/DbGap.php | 281 + views/display_item/repositories/Dryad.php | 158 + views/display_item/repositories/Gemma.php | 42 + views/display_item/repositories/Geo.php | 115 + views/display_item/repositories/Lincs.php | 120 + views/display_item/repositories/Mpd.php | 130 + .../display_item/repositories/Neuromorpho.php | 191 + views/display_item/repositories/Niddkcr.php | 114 + views/display_item/repositories/Nursa.php | 142 + views/display_item/repositories/Pdb.php | 103 + .../repositories/Peptideatlas.php | 150 + .../display_item/repositories/Physiobank.php | 108 + .../repositories/Proteomexchange.php | 117 + views/display_item/repositories/Sra.php | 46 + views/display_item/repositories/Yped.php | 132 + views/display_item/repositories/openFMRI.php | 142 + views/display_item/result.php | 55 + views/display_item/search_panel.php | 38 + views/display_item/similar_datasets.php | 72 + views/feedback.php | 14 + views/footer.php | 25 + views/grant_details/grant_details.php | 118 + views/header.php | 122 + views/index/announcements.php | 37 + views/index/latest-datasets.php | 32 + views/index/most-accessed-repositories.php | 12 + views/index/new-features.php | 33 + views/index/pilot-projects.php | 48 + views/index/repositories.php | 12 + views/index/search_panel.php | 31 + views/index/statistics.php | 41 + views/recent.php | 113 + views/savedsearch.php | 58 + views/search/datatypes.php | 44 + views/search/pagination.php | 74 + views/search/partialActivities.php | 35 + views/search/related_keywords.php | 43 + views/search/repositories.php | 70 + views/search/result_status.php | 12 + views/search/results.php | 79 + views/search/search_details.php | 33 + views/search/search_panel.php | 42 + views/search/sorting.php | 28 + views/search/switch_view.php | 19 + views/search/synonym.php | 44 + views/search_repository/filters.php | 192 + views/search_repository/pagination.php | 73 + views/search_repository/pilot_projects.php | 17 + views/search_repository/repositories.php | 88 + views/search_repository/result_status.php | 12 + views/search_repository/results.php | 68 + views/search_repository/search_panel.php | 44 + views/search_repository/sorting.php | 23 + views/search_repository/switch_view.php | 16 + views/share.php | 85 + whatsthis.php | 7 + write_mysql_log.php | 34 + 1101 files changed, 252573 insertions(+), 4706 deletions(-) create mode 100644 403.php create mode 100644 404.php create mode 100755 about.php create mode 100644 advanced.php create mode 100644 ajax/SearchSuggestionService.php create mode 100644 ajax/deletesearch.php create mode 100644 ajax/savesearch.php create mode 100644 ajax/studyconsent.php create mode 100644 auto.html create mode 100644 change.php create mode 100644 composer.lock rename config.php => config/config.php (78%) create mode 100644 config/datasources.php create mode 100644 config/server.php create mode 100644 css/expand.css delete mode 100644 css/style_fix.css create mode 100644 css/theme.css create mode 100644 database/GoogleUser.php create mode 100644 database/Search.php create mode 100644 database/StudyConsent.php create mode 100644 database/User.php delete mode 100644 datasource.php delete mode 100644 datasource/datatype.php delete mode 100644 datasource/related.php delete mode 100644 datasource/repo.php delete mode 100644 datasource/result.php create mode 100644 dbcontroller.php create mode 100644 display-item.php create mode 100644 expanded-query.php create mode 100644 feedback.php create mode 100644 fonts/Roboto-Regular.ttf create mode 100644 forgot_password.php create mode 160000 google-api-php-client create mode 100644 google_login.php create mode 100644 grant_details.php create mode 100644 gwas/config.php create mode 100644 gwas/helper_functions.php create mode 100644 gwas/pagination.php delete mode 100644 header.php create mode 100644 help.php delete mode 100644 helper_functions.php create mode 100755 html-contact-form-captcha/captcha_code_file.php create mode 100755 html-contact-form-captcha/monofont.ttf create mode 100755 html-contact-form-captcha/readme.txt create mode 100755 html-contact-form-captcha/scripts/gen_validatorv31.js create mode 100755 html-contact-form-captcha/thank-you.html create mode 100644 img/biocaddie-logo-transparent.png create mode 100644 img/datamed-green-medium-light-transparent.png create mode 100644 img/favicon.ico delete mode 100644 img/gf.png create mode 100644 img/help/and.jpg create mode 100644 img/help/not.jpg create mode 100644 img/help/or.jpg delete mode 100644 img/id.png create mode 100644 img/pilot-projects/DataDiscoveryIndex.png create mode 100644 img/pilot-projects/GWAS.png create mode 100644 img/pilot-projects/datarank.png create mode 100644 img/pilot-projects/iSEE-DELVE.png delete mode 100644 img/rcsb_logo.png create mode 100644 img/repositories/0001.png create mode 100644 img/repositories/0002.png create mode 100644 img/repositories/0003.png create mode 100644 img/repositories/0004.png create mode 100644 img/repositories/0005.png create mode 100644 img/repositories/0006.png create mode 100644 img/repositories/0007.png create mode 100644 img/repositories/0008.png create mode 100644 img/repositories/0009.png create mode 100644 img/repositories/0010.png create mode 100644 img/repositories/0011.png create mode 100644 img/repositories/0012.png create mode 100644 img/repositories/0013.png create mode 100644 img/repositories/0014.png create mode 100644 img/repositories/0015.png create mode 100644 img/repositories/0016.png create mode 100644 img/repositories/0017.png create mode 100644 img/repositories/0018.png create mode 100644 img/repositories/0019.png create mode 100644 img/repositories/0020.png create mode 100644 img/repositories/0021.png create mode 100644 img/repositories/0022.png create mode 100644 img/repositories/0023.png create mode 100755 img/sign-in-with-google.png create mode 100755 img/user.png delete mode 100644 index/announcement.php delete mode 100755 index/data.csv delete mode 100644 index/feature.php delete mode 100644 index/latest.php delete mode 100644 index/mostaccess.php delete mode 100644 index/piechart.php delete mode 100644 index/pilotproject.php delete mode 100644 index/statistics.php create mode 100755 js/gen_validatorv31.js create mode 100644 js/global.scripts.js create mode 100755 js/jquery.suggest.js create mode 100644 js/loadingoverlay.min.js create mode 100644 js/page.scripts/advanced.js create mode 100644 js/page.scripts/displayitem.js create mode 100644 js/page.scripts/index.js create mode 100644 js/page.scripts/login.js create mode 100644 js/page.scripts/recentactivity.js create mode 100644 js/page.scripts/register.js create mode 100644 js/page.scripts/savedsearch.js create mode 100644 js/page.scripts/search.js create mode 100644 js/page.scripts/searchrepo.js delete mode 100644 js/partial-search.js delete mode 100644 js/piechart.js create mode 100755 lib/password.php create mode 100644 loading.gif create mode 100644 login.php create mode 100644 questionnaire.php create mode 100644 recentactivity.php create mode 100644 register.php delete mode 100644 repositories_model.php create mode 100644 repository_list.php create mode 100644 reset.php create mode 100644 reset_password.php delete mode 100644 response.php delete mode 100644 result.php delete mode 100644 result/center-result.php delete mode 100644 result/filter.php delete mode 100644 result/pilot.php delete mode 100644 result/repo.php create mode 100644 savedsearch.php create mode 100644 search-repository.php create mode 100644 search.php create mode 100644 search/AdvancedSearchService.php create mode 100644 search/Context.php create mode 100644 search/ElasticSearch.php create mode 100644 search/ElasticSearchBase.php create mode 100644 search/ExpansionSearch.php create mode 100644 search/Parser.php create mode 100644 search/PubmedGrantService.php create mode 100644 search/PubmedRelatedPublicationService.php create mode 100644 search/Repositories.php create mode 100644 search/Repositories_rep.php create mode 100644 search/SearchBuilder.php create mode 100644 search/SearchRepositoryBuilder.php create mode 100644 search/SimilarDatasetsService/Gemma.php create mode 100644 search/SimilarDatasetsService/Lincs.php create mode 100644 search/SimilarDatasetsService/Pdb.php create mode 100644 search/SingleItemDisplayService.php create mode 100644 search/repository/ArrayExpress.php create mode 100644 search/repository/Bioproject.php create mode 100644 search/repository/Cia.php create mode 100644 search/repository/ClinicalTrials.php create mode 100644 search/repository/Ctn.php create mode 100644 search/repository/Cvrg.php create mode 100644 search/repository/Dataverse.php create mode 100644 search/repository/DbGap.php create mode 100644 search/repository/Dryad.php create mode 100644 search/repository/Gemma.php create mode 100644 search/repository/Geo.php create mode 100644 search/repository/Lincs.php create mode 100644 search/repository/Mpd.php create mode 100644 search/repository/NURSA.php create mode 100644 search/repository/Neuromorpho.php create mode 100644 search/repository/Niddkcr.php create mode 100644 search/repository/Pdb.php create mode 100644 search/repository/Peptideatlas.php create mode 100644 search/repository/Physiobank.php create mode 100644 search/repository/Proteomexchange.php create mode 100644 search/repository/Repository.php create mode 100644 search/repository/RepositoryBase.php create mode 100644 search/repository/Sra.php create mode 100644 search/repository/Yped.php create mode 100644 search/repository/openFMRI.php create mode 100644 search/terminology.php delete mode 100644 search_model.php delete mode 100644 single_item.php delete mode 100644 single_item/pubmed/array_to_table.php delete mode 100644 single_item/pubmed/pubmed_publication.php delete mode 100644 single_item/pubmed/test.php delete mode 100644 single_item/similar/pdb_similar_dataset.php delete mode 100644 single_item/similar/show_similar_tbl.php delete mode 100644 single_item/similar/test.php delete mode 100644 single_item/single_result.php delete mode 100644 templates/403.php delete mode 100644 templates/404.php delete mode 100644 templates/announcement.php delete mode 100644 templates/datasource.php delete mode 100644 templates/feedback.php delete mode 100644 templates/footer.php delete mode 100644 templates/head.php delete mode 100644 templates/header.php delete mode 100644 templates/header_home.php delete mode 100644 templates/index.php delete mode 100644 templates/left_panel_repositories.php delete mode 100644 templates/pagination.php delete mode 100644 templates/recent_activity/recent_activity.php delete mode 100644 templates/recent_activity/track_history.php delete mode 100644 templates/result.php delete mode 100644 templates/search.php delete mode 100644 templates/search_result.php delete mode 100644 templates/single_item.php create mode 100644 trackactivity.php create mode 100644 try_query_NLP.php delete mode 100644 ucsd/403.php delete mode 100644 ucsd/404.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_files.php create mode 100644 vendor/composer/include_paths.php create mode 100644 vendor/google/apiclient/.travis.yml create mode 100644 vendor/google/apiclient/CONTRIBUTING.md create mode 100644 vendor/google/apiclient/LICENSE create mode 100644 vendor/google/apiclient/README.md create mode 100644 vendor/google/apiclient/composer.json create mode 100644 vendor/google/apiclient/examples/appengineauth.php create mode 100644 vendor/google/apiclient/examples/batch.php create mode 100644 vendor/google/apiclient/examples/fileupload.php create mode 100644 vendor/google/apiclient/examples/idtoken.php create mode 100644 vendor/google/apiclient/examples/index.php create mode 100644 vendor/google/apiclient/examples/key.p12 create mode 100644 vendor/google/apiclient/examples/multi-api.php create mode 100644 vendor/google/apiclient/examples/service-account.php create mode 100644 vendor/google/apiclient/examples/simple-query.php create mode 100644 vendor/google/apiclient/examples/simplefileupload.php create mode 100644 vendor/google/apiclient/examples/styles/style.css create mode 100644 vendor/google/apiclient/examples/templates/base.php create mode 100644 vendor/google/apiclient/examples/user-example.php create mode 100644 vendor/google/apiclient/src/Google/Auth/Abstract.php create mode 100644 vendor/google/apiclient/src/Google/Auth/AppIdentity.php create mode 100644 vendor/google/apiclient/src/Google/Auth/AssertionCredentials.php create mode 100644 vendor/google/apiclient/src/Google/Auth/Exception.php create mode 100644 vendor/google/apiclient/src/Google/Auth/LoginTicket.php create mode 100644 vendor/google/apiclient/src/Google/Auth/OAuth2.php create mode 100644 vendor/google/apiclient/src/Google/Auth/Simple.php create mode 100644 vendor/google/apiclient/src/Google/Cache/Abstract.php create mode 100644 vendor/google/apiclient/src/Google/Cache/Apc.php create mode 100644 vendor/google/apiclient/src/Google/Cache/Exception.php create mode 100644 vendor/google/apiclient/src/Google/Cache/File.php create mode 100644 vendor/google/apiclient/src/Google/Cache/Memcache.php create mode 100644 vendor/google/apiclient/src/Google/Cache/Null.php create mode 100644 vendor/google/apiclient/src/Google/Client.php create mode 100644 vendor/google/apiclient/src/Google/Collection.php create mode 100644 vendor/google/apiclient/src/Google/Config.php create mode 100644 vendor/google/apiclient/src/Google/Exception.php create mode 100644 vendor/google/apiclient/src/Google/Http/Batch.php create mode 100644 vendor/google/apiclient/src/Google/Http/CacheParser.php create mode 100644 vendor/google/apiclient/src/Google/Http/MediaFileUpload.php create mode 100644 vendor/google/apiclient/src/Google/Http/REST.php create mode 100644 vendor/google/apiclient/src/Google/Http/Request.php create mode 100644 vendor/google/apiclient/src/Google/IO/Abstract.php create mode 100644 vendor/google/apiclient/src/Google/IO/Curl.php create mode 100644 vendor/google/apiclient/src/Google/IO/Exception.php create mode 100644 vendor/google/apiclient/src/Google/IO/Stream.php create mode 100644 vendor/google/apiclient/src/Google/IO/cacerts.pem create mode 100644 vendor/google/apiclient/src/Google/Model.php create mode 100644 vendor/google/apiclient/src/Google/Service.php create mode 100644 vendor/google/apiclient/src/Google/Service/AdExchangeBuyer.php create mode 100644 vendor/google/apiclient/src/Google/Service/AdExchangeSeller.php create mode 100644 vendor/google/apiclient/src/Google/Service/AdSense.php create mode 100644 vendor/google/apiclient/src/Google/Service/AdSenseHost.php create mode 100644 vendor/google/apiclient/src/Google/Service/Admin.php create mode 100644 vendor/google/apiclient/src/Google/Service/Analytics.php create mode 100644 vendor/google/apiclient/src/Google/Service/AndroidPublisher.php create mode 100644 vendor/google/apiclient/src/Google/Service/AppState.php create mode 100644 vendor/google/apiclient/src/Google/Service/Appsactivity.php create mode 100644 vendor/google/apiclient/src/Google/Service/Audit.php create mode 100644 vendor/google/apiclient/src/Google/Service/Autoscaler.php create mode 100644 vendor/google/apiclient/src/Google/Service/Bigquery.php create mode 100644 vendor/google/apiclient/src/Google/Service/Blogger.php create mode 100644 vendor/google/apiclient/src/Google/Service/Books.php create mode 100644 vendor/google/apiclient/src/Google/Service/Calendar.php create mode 100644 vendor/google/apiclient/src/Google/Service/CivicInfo.php create mode 100644 vendor/google/apiclient/src/Google/Service/CloudMonitoring.php create mode 100644 vendor/google/apiclient/src/Google/Service/Compute.php create mode 100644 vendor/google/apiclient/src/Google/Service/Coordinate.php create mode 100644 vendor/google/apiclient/src/Google/Service/Customsearch.php create mode 100644 vendor/google/apiclient/src/Google/Service/Datastore.php create mode 100644 vendor/google/apiclient/src/Google/Service/Dfareporting.php create mode 100644 vendor/google/apiclient/src/Google/Service/Directory.php create mode 100644 vendor/google/apiclient/src/Google/Service/Dns.php create mode 100644 vendor/google/apiclient/src/Google/Service/DoubleClickBidManager.php create mode 100644 vendor/google/apiclient/src/Google/Service/Doubleclicksearch.php create mode 100644 vendor/google/apiclient/src/Google/Service/Drive.php create mode 100644 vendor/google/apiclient/src/Google/Service/Exception.php create mode 100644 vendor/google/apiclient/src/Google/Service/Freebase.php create mode 100644 vendor/google/apiclient/src/Google/Service/Fusiontables.php create mode 100644 vendor/google/apiclient/src/Google/Service/Games.php create mode 100644 vendor/google/apiclient/src/Google/Service/GamesManagement.php create mode 100644 vendor/google/apiclient/src/Google/Service/Genomics.php create mode 100644 vendor/google/apiclient/src/Google/Service/Gmail.php create mode 100644 vendor/google/apiclient/src/Google/Service/GroupsMigration.php create mode 100644 vendor/google/apiclient/src/Google/Service/Groupssettings.php create mode 100644 vendor/google/apiclient/src/Google/Service/IdentityToolkit.php create mode 100644 vendor/google/apiclient/src/Google/Service/Licensing.php create mode 100644 vendor/google/apiclient/src/Google/Service/Manager.php create mode 100644 vendor/google/apiclient/src/Google/Service/MapsEngine.php create mode 100644 vendor/google/apiclient/src/Google/Service/Mirror.php create mode 100644 vendor/google/apiclient/src/Google/Service/Oauth2.php create mode 100644 vendor/google/apiclient/src/Google/Service/Orkut.php create mode 100644 vendor/google/apiclient/src/Google/Service/Pagespeedonline.php create mode 100644 vendor/google/apiclient/src/Google/Service/Plus.php create mode 100644 vendor/google/apiclient/src/Google/Service/PlusDomains.php create mode 100644 vendor/google/apiclient/src/Google/Service/Prediction.php create mode 100644 vendor/google/apiclient/src/Google/Service/Pubsub.php create mode 100644 vendor/google/apiclient/src/Google/Service/QPXExpress.php create mode 100644 vendor/google/apiclient/src/Google/Service/Replicapool.php create mode 100644 vendor/google/apiclient/src/Google/Service/Reports.php create mode 100644 vendor/google/apiclient/src/Google/Service/Reseller.php create mode 100644 vendor/google/apiclient/src/Google/Service/Resource.php create mode 100644 vendor/google/apiclient/src/Google/Service/Resourceviews.php create mode 100644 vendor/google/apiclient/src/Google/Service/SQLAdmin.php create mode 100644 vendor/google/apiclient/src/Google/Service/ShoppingContent.php create mode 100644 vendor/google/apiclient/src/Google/Service/SiteVerification.php create mode 100644 vendor/google/apiclient/src/Google/Service/Spectrum.php create mode 100644 vendor/google/apiclient/src/Google/Service/Storage.php create mode 100644 vendor/google/apiclient/src/Google/Service/Taskqueue.php create mode 100644 vendor/google/apiclient/src/Google/Service/Tasks.php create mode 100644 vendor/google/apiclient/src/Google/Service/Translate.php create mode 100644 vendor/google/apiclient/src/Google/Service/Urlshortener.php create mode 100644 vendor/google/apiclient/src/Google/Service/Webfonts.php create mode 100644 vendor/google/apiclient/src/Google/Service/Webmasters.php create mode 100644 vendor/google/apiclient/src/Google/Service/YouTube.php create mode 100644 vendor/google/apiclient/src/Google/Service/YouTubeAnalytics.php create mode 100644 vendor/google/apiclient/src/Google/Signer/Abstract.php create mode 100644 vendor/google/apiclient/src/Google/Signer/P12.php create mode 100644 vendor/google/apiclient/src/Google/Utils.php create mode 100644 vendor/google/apiclient/src/Google/Utils/URITemplate.php create mode 100644 vendor/google/apiclient/src/Google/Verifier/Abstract.php create mode 100644 vendor/google/apiclient/src/Google/Verifier/Pem.php create mode 100644 vendor/google/apiclient/style/ruleset.xml create mode 100644 vendor/google/apiclient/tests/AllTests.php create mode 100644 vendor/google/apiclient/tests/BaseTest.php create mode 100644 vendor/google/apiclient/tests/OAuthHelper.php create mode 100644 vendor/google/apiclient/tests/README create mode 100644 vendor/google/apiclient/tests/adsense/AdSenseTest.php create mode 100644 vendor/google/apiclient/tests/bootstrap.php create mode 100644 vendor/google/apiclient/tests/general/ApiBatchRequestTest.php create mode 100644 vendor/google/apiclient/tests/general/ApiCacheParserTest.php create mode 100644 vendor/google/apiclient/tests/general/ApiClientTest.php create mode 100644 vendor/google/apiclient/tests/general/ApiMediaFileUploadTest.php create mode 100644 vendor/google/apiclient/tests/general/ApiModelTest.php create mode 100644 vendor/google/apiclient/tests/general/ApiOAuth2Test.php create mode 100644 vendor/google/apiclient/tests/general/AuthTest.php create mode 100644 vendor/google/apiclient/tests/general/CacheTest.php create mode 100644 vendor/google/apiclient/tests/general/GeneralTests.php create mode 100644 vendor/google/apiclient/tests/general/IoTest.php create mode 100644 vendor/google/apiclient/tests/general/RequestTest.php create mode 100644 vendor/google/apiclient/tests/general/RestTest.php create mode 100644 vendor/google/apiclient/tests/general/ServiceTest.php create mode 100644 vendor/google/apiclient/tests/general/URITemplateTest.php create mode 100644 vendor/google/apiclient/tests/general/testdata/cacert.json create mode 100644 vendor/google/apiclient/tests/general/testdata/cacert.pem create mode 100644 vendor/google/apiclient/tests/general/testdata/cert.p12 create mode 100644 vendor/google/apiclient/tests/general/testdata/privkey.pem create mode 100644 vendor/google/apiclient/tests/general/testdata/test.ini create mode 100644 vendor/google/apiclient/tests/general/testdata/test_public_key.pem create mode 100644 vendor/google/apiclient/tests/pagespeed/AllPageSpeedTests.php create mode 100644 vendor/google/apiclient/tests/pagespeed/PageSpeedTest.php create mode 100644 vendor/google/apiclient/tests/phpunit.xml create mode 100644 vendor/google/apiclient/tests/plus/PlusTest.php create mode 100644 vendor/google/apiclient/tests/tasks/AllTasksTests.php create mode 100644 vendor/google/apiclient/tests/tasks/TasksTest.php create mode 100644 vendor/google/apiclient/tests/urlshortener/AllUrlShortenerTests.php create mode 100644 vendor/google/apiclient/tests/urlshortener/UrlShortenerTests.php create mode 100644 vendor/google/apiclient/tests/youtube/YouTubeTest.php mode change 100755 => 100644 vendor/monolog/monolog/.php_cs mode change 100755 => 100644 vendor/monolog/monolog/CHANGELOG.mdown mode change 100755 => 100644 vendor/monolog/monolog/LICENSE mode change 100755 => 100644 vendor/monolog/monolog/README.mdown mode change 100755 => 100644 vendor/monolog/monolog/composer.json rename vendor/monolog/monolog/doc/{usage.md => 01-usage.md} (56%) mode change 100755 => 100644 create mode 100644 vendor/monolog/monolog/doc/02-handlers-formatters-processors.md create mode 100644 vendor/monolog/monolog/doc/03-utilities.md rename vendor/monolog/monolog/doc/{extending.md => 04-extending.md} (95%) mode change 100755 => 100644 mode change 100755 => 100644 vendor/monolog/monolog/doc/sockets.md mode change 100755 => 100644 vendor/monolog/monolog/phpunit.xml.dist mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/ErrorHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php create mode 100644 vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php create mode 100644 vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php create mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Logger.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php mode change 100755 => 100644 vendor/monolog/monolog/src/Monolog/Registry.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/LoggerTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/RegistryTest.php mode change 100755 => 100644 vendor/monolog/monolog/tests/Monolog/TestCase.php delete mode 100755 vendor/monolog/monolog/tests/bootstrap.php mode change 100755 => 100644 vendor/pimple/pimple/.gitignore mode change 100755 => 100644 vendor/pimple/pimple/.travis.yml mode change 100755 => 100644 vendor/pimple/pimple/CHANGELOG mode change 100755 => 100644 vendor/pimple/pimple/LICENSE mode change 100755 => 100644 vendor/pimple/pimple/README.rst mode change 100755 => 100644 vendor/pimple/pimple/composer.json mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/.gitignore mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/README.md mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/config.m4 mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/config.w32 mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/php_pimple.h mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/pimple.c mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/pimple_compat.h mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/001.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/002.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/003.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/004.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/005.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/006.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/007.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/008.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/009.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/010.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/011.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/012.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/013.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/014.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/015.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/016.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/017.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/017_1.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/018.phpt create mode 100644 vendor/pimple/pimple/ext/pimple/tests/019.phpt mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/bench.phpb mode change 100755 => 100644 vendor/pimple/pimple/ext/pimple/tests/bench_shared.phpb mode change 100755 => 100644 vendor/pimple/pimple/phpunit.xml.dist mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Container.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Tests/Fixtures/Invokable.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php mode change 100755 => 100644 vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php create mode 100644 vendor/swiftmailer/swiftmailer/.gitattributes create mode 100644 vendor/swiftmailer/swiftmailer/.travis.yml create mode 100644 vendor/swiftmailer/swiftmailer/CHANGES rename vendor/{symfony/event-dispatcher/Symfony/Component/EventDispatcher => swiftmailer/swiftmailer}/LICENSE (96%) mode change 100755 => 100644 create mode 100644 vendor/swiftmailer/swiftmailer/README create mode 100644 vendor/swiftmailer/swiftmailer/VERSION create mode 100644 vendor/swiftmailer/swiftmailer/composer.json create mode 100644 vendor/swiftmailer/swiftmailer/doc/headers.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/help-resources.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/including-the-files.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/index.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/installing.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/introduction.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/japanese.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/messages.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/overview.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/plugins.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/sending.rst create mode 100644 vendor/swiftmailer/swiftmailer/doc/uml/Encoders.graffle create mode 100644 vendor/swiftmailer/swiftmailer/doc/uml/Mime.graffle create mode 100644 vendor/swiftmailer/swiftmailer/doc/uml/Transports.graffle create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/EmbeddedFile.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Base64Encoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoding.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/Event.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventDispatcher.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventListener.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventObject.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendEvent.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SimpleEventDispatcher.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionEvent.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FailoverTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Filterable.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Image.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/IoException.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/ArrayKeyCache.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/NullKeyCache.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MailTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Grammar.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderFactory.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderSet.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Message.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimeEntity.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ParameterizedHeader.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/AntiFloodPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/LoggerPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Exception.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/PopBeforeSmtpPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ReporterPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ThrottlerPlugin.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Preferences.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/RfcComplianceException.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SendmailTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SignedMessage.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/MailInvoker.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/MailTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SimpleMailInvoker.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SpoolTransport.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Validate.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/mime_types.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/preferences.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/swift_init.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/swift_required.php create mode 100644 vendor/swiftmailer/swiftmailer/lib/swift_required_pear.php create mode 100755 vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php create mode 100644 vendor/swiftmailer/swiftmailer/phpunit.xml.dist create mode 100644 vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/StreamCollector.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/SwiftMailerSmokeTestCase.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/SwiftMailerTestCase.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/iso-2022-jp/one.txt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/iso-8859-1/one.txt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/one.txt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/three.txt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/two.txt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/dkim/dkim.test.priv create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/dkim/dkim.test.pub create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/data.txt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/swiftmailer.png create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/textfile.zip create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/CA.srl create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/ca.crt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/ca.key create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/create-cert.sh create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt.crt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt.key create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt2.crt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt2.key create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/intermediate.crt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/intermediate.key create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign.crt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign.key create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign2.crt create mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign2.key create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance.conf.php.default create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/AttachmentAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/ByteStream/FileByteStreamAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/CharacterReaderFactory/SimpleCharacterReaderFactoryAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/DependencyContainerAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EmbeddedFileAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Base64EncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EncodingAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/ArrayKeyCacheAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/DiskKeyCacheAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MessageAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/Base64ContentEncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/NativeQpContentEncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/PlainContentEncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/HeaderEncoder/Base64HeaderEncoderAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/SimpleMessageAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MimePartAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/AbstractStreamBufferAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/BasicSocketAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/ProcessAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SocketTimeoutTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SslSocketAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/TlsSocketAcceptanceTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bootstrap.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug111Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug118Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug274Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug34Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug35Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug518Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug51Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug534Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug71Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug76Test.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/fixtures/EsmtpTransportFixture.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/fixtures/MimeEntityFixture.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke.conf.php.default create mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/AttachmentSmokeTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/BasicSmokeTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/HtmlWithAttachmentSmokeTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/InternationalSmokeTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/ByteStream/ArrayByteStreamTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/GenericFixedWidthReaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/UsAsciiReaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/Utf8ReaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/DependencyContainerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Base64EncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/QpEncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Rfc2231EncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/CommandEventTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/EventObjectTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/ResponseEventTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SendEventTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SimpleEventDispatcherTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportChangeEventTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportExceptionEventTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/ArrayKeyCacheTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/SimpleKeyCacheInputStreamTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mailer/ArrayRecipientIteratorTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/MailerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/MessageTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AbstractMimeEntityTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AttachmentTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/Base64ContentEncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/PlainContentEncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/QpContentEncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/EmbeddedFileTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/Base64HeaderEncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/QpHeaderEncoderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/DateHeaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/IdentificationHeaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/MailboxHeaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/ParameterizedHeaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/PathHeaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/UnstructuredHeaderTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/MimePartTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderFactoryTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderSetTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMessageTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMimeEntityTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/AntiFloodPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/BandwidthMonitorPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/DecoratorPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/LoggerPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/ArrayLoggerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/EchoLoggerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/PopBeforeSmtpPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/RedirectingPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ReporterPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HitReporterTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HtmlReporterTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ThrottlerPluginTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/DKIMSignerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/OpenDKIMSignerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/SMimeSignerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/ByteArrayReplacementFilterTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterFactoryTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpEventSupportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/CramMd5AuthenticatorTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/LoginAuthenticatorTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/PlainAuthenticatorTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/AuthHandlerTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransport/ExtensionSupportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/FailoverTransportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/LoadBalancedTransportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/MailTransportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/SendmailTransportTest.php create mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/StreamBufferTest.php rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/CHANGELOG.md (100%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/ContainerAwareEventDispatcher.php (91%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Debug/TraceableEventDispatcher.php (83%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Debug/TraceableEventDispatcherInterface.php (100%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Debug/WrappedListener.php (100%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/DependencyInjection/RegisterListenersPass.php (97%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Event.php (77%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/EventDispatcher.php (79%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/EventDispatcherInterface.php (95%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/EventSubscriberInterface.php (96%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/GenericEvent.php (96%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/ImmutableEventDispatcher.php (92%) mode change 100755 => 100644 create mode 100644 vendor/symfony/event-dispatcher/LICENSE rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/README.md (100%) mode change 100755 => 100644 delete mode 100755 vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/AbstractEventDispatcherTest.php (92%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/ContainerAwareEventDispatcherTest.php (99%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/Debug/TraceableEventDispatcherTest.php (80%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/DependencyInjection/RegisterListenersPassTest.php (95%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/EventDispatcherTest.php (100%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/EventTest.php (88%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/GenericEventTest.php (99%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/Tests/ImmutableEventDispatcherTest.php (100%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/composer.json (56%) mode change 100755 => 100644 rename vendor/symfony/event-dispatcher/{Symfony/Component/EventDispatcher => }/phpunit.xml.dist (99%) mode change 100755 => 100644 create mode 100644 views/about/verificationimage.php create mode 100644 views/account/forgot_password.php create mode 100644 views/account/reset_password.php create mode 100644 views/account/viewlogin.php create mode 100644 views/account/viewprofile.php create mode 100644 views/account/viewregister.php create mode 100644 views/advanced/builder.php create mode 100644 views/display_item/breadcrumb.php create mode 100644 views/display_item/pubmed_grant.php create mode 100644 views/display_item/related_publications.php create mode 100644 views/display_item/repositories/ArrayExpress.php create mode 100644 views/display_item/repositories/Bioproject.php create mode 100644 views/display_item/repositories/Cia.php create mode 100644 views/display_item/repositories/ClinicalTrials.php create mode 100644 views/display_item/repositories/Ctn.php create mode 100644 views/display_item/repositories/Cvrg.php create mode 100644 views/display_item/repositories/Dataverse.php create mode 100644 views/display_item/repositories/DbGap.php create mode 100644 views/display_item/repositories/Dryad.php create mode 100644 views/display_item/repositories/Gemma.php create mode 100644 views/display_item/repositories/Geo.php create mode 100644 views/display_item/repositories/Lincs.php create mode 100644 views/display_item/repositories/Mpd.php create mode 100644 views/display_item/repositories/Neuromorpho.php create mode 100644 views/display_item/repositories/Niddkcr.php create mode 100644 views/display_item/repositories/Nursa.php create mode 100644 views/display_item/repositories/Pdb.php create mode 100644 views/display_item/repositories/Peptideatlas.php create mode 100644 views/display_item/repositories/Physiobank.php create mode 100644 views/display_item/repositories/Proteomexchange.php create mode 100644 views/display_item/repositories/Sra.php create mode 100644 views/display_item/repositories/Yped.php create mode 100644 views/display_item/repositories/openFMRI.php create mode 100644 views/display_item/result.php create mode 100644 views/display_item/search_panel.php create mode 100644 views/display_item/similar_datasets.php create mode 100644 views/feedback.php create mode 100644 views/footer.php create mode 100644 views/grant_details/grant_details.php create mode 100644 views/header.php create mode 100644 views/index/announcements.php create mode 100644 views/index/latest-datasets.php create mode 100644 views/index/most-accessed-repositories.php create mode 100644 views/index/new-features.php create mode 100644 views/index/pilot-projects.php create mode 100644 views/index/repositories.php create mode 100644 views/index/search_panel.php create mode 100644 views/index/statistics.php create mode 100644 views/recent.php create mode 100644 views/savedsearch.php create mode 100644 views/search/datatypes.php create mode 100644 views/search/pagination.php create mode 100644 views/search/partialActivities.php create mode 100644 views/search/related_keywords.php create mode 100644 views/search/repositories.php create mode 100644 views/search/result_status.php create mode 100644 views/search/results.php create mode 100644 views/search/search_details.php create mode 100644 views/search/search_panel.php create mode 100644 views/search/sorting.php create mode 100644 views/search/switch_view.php create mode 100644 views/search/synonym.php create mode 100644 views/search_repository/filters.php create mode 100644 views/search_repository/pagination.php create mode 100644 views/search_repository/pilot_projects.php create mode 100644 views/search_repository/repositories.php create mode 100644 views/search_repository/result_status.php create mode 100644 views/search_repository/results.php create mode 100644 views/search_repository/search_panel.php create mode 100644 views/search_repository/sorting.php create mode 100644 views/search_repository/switch_view.php create mode 100644 views/share.php create mode 100644 whatsthis.php create mode 100644 write_mysql_log.php diff --git a/403.php b/403.php new file mode 100644 index 0000000..f5201d9 --- /dev/null +++ b/403.php @@ -0,0 +1,6 @@ + +
+

403. That’s an error.

+

Access Denied/Forbidden.

+
+ \ No newline at end of file diff --git a/404.php b/404.php new file mode 100644 index 0000000..ed7c0a2 --- /dev/null +++ b/404.php @@ -0,0 +1,9 @@ + + +
+

404: Page not Found

+ +

Sorry, but the page you are looking for has not been found.

+

Try checking the URL for errors, then hit the refresh button on your browser.

+
+ \ No newline at end of file diff --git a/about.php b/about.php new file mode 100755 index 0000000..26024d1 --- /dev/null +++ b/about.php @@ -0,0 +1,130 @@ +'; + echo 'alert("You request has been received and we will contact you soon")'; + echo ''; + } +} +function sendEmails(){ + $subject = $_POST['SUBJECT']; + + require_once dirname(__FILE__) . '/vendor/swiftmailer/swiftmailer/lib/swift_required.php'; + + $from = $_POST["EMAIL"]; + $to = array("xiaoling.chen@uth.tmc.edu","ruiling.liu@uth.tmc.edu","Anupama.E.Gururaj@uth.tmc.edu"); + $body = 'BioCADDIE contact request
+ ----------------------------------------
+ NAME: '.$_POST["NAME"].'
+ MESSAGE: '.$_POST["MESSAGE"].'
+ EMAIL: '.$_POST["EMAIL"]; + + $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") + ->setUsername('biocaddie.mail@gmail.com') + ->setPassword('biocaddie4050@'); + + $mailer = Swift_Mailer::newInstance($transport); + + $message = Swift_Message::newInstance('bioCaddie Contact us email:' . $subject) + ->setFrom(array($from => 'bioCaddie')) + ->setTo($to) + ->setBody($body) + ->setContentType("text/html"); + $mailer->send($message); +} + +?> + + +
+ +

OUR MISSION

+ +

Develop a prototype of a data discovery index.

+
+
+

We at the bioCADDIE (biomedical and healthcare Data Discovery Index Ecosystem) are developing a prototype of a data discovery index (DDI) to help you search and find datasets you’re interested in. Our prototype aims to provide:

+ +

1. A free, user-friendly means for you to locate data sets of interest.

+

2. Standardized, searchable information (metadata) about the contents of a data set.

+ +

You can use the web interface and provide us feedback here about your search experience. This is a prototype in development and your valuable suggestions and comments will help us to make the system better.

+ +

For more information about bioCADDIE, click here

+ +

Contact us:

+ +
+
+
+ + + + + + +
+ + +
+
+ + +
+ " . nl2br($errors) . "

"; + } ?> + +

+
+
+
+ Can't read the image? click here to refresh +

+ +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/advanced.php b/advanced.php new file mode 100644 index 0000000..9e0445d --- /dev/null +++ b/advanced.php @@ -0,0 +1,33 @@ + + + + + +
+
+

DataMed Advanced Search Builder

+
+ +
+
+ +
+
+ +
+ + + + + + diff --git a/ajax/SearchSuggestionService.php b/ajax/SearchSuggestionService.php new file mode 100644 index 0000000..2efbc6c --- /dev/null +++ b/ajax/SearchSuggestionService.php @@ -0,0 +1,112 @@ +search_fields = $repositoryObj->getSearchFields(); + $search_repository->facets_fields = ['_index']; + $search_repository->facet_size = 20; + $search_repository->query = $query; + $search_repository->filter_fields = []; + $search_repository->es_index = getElasticSearchIndexes(); + $search_repository->es_type = ''; + $esResults= $search_repository->getSearchResult(); + $repositories_counts = []; + + foreach ($esResults['aggregations']['_index']['buckets'] as $bucket) { + $key = explode('_', $bucket['key'])[0]; + $repositories_counts[$key] = $bucket['doc_count']; + } + + foreach ($repositoryObj->getRepositories() as $repository) { + + /*$search_repository = new ElasticSearch(); + $search_repository->search_fields = $repository->search_fields; + $search_repository->facets_fields = $repository->facets_fields; + $search_repository->query = $query; + $search_repository->filter_fields = []; + $search_repository->es_index = $repository->index; + $search_repository->es_type = $repository->type; + $result = $search_repository->getSearchResult(); + + $repository->num = $result['hits']['total']; +*/ + if(array_key_exists($repository->index,$repositories_counts)) { + $repository->num = $repositories_counts[$repository->index]; + } + else { + $repository->num = 0; + } + // $total_num = $total_num + $repository->num; + } + + $elasticSearchIndexes = ''; + $mappings = getDatatypesMapping(); + foreach ($mappings as $index) { + if (is_array($index)) { + foreach ($index as $item) { + $elasticSearchIndexes .= $item . ','; + } + } else { + $elasticSearchIndexes .= $index . ','; + } + } + $indexes = substr($elasticSearchIndexes, 0, -1); + + /* $search_all_repository = new ElasticSearch(); + $search_all_repository->search_fields = $repositoryObj->getSearchFields(); + $search_all_repository->facets_fields = $repository->facets_fields; + $search_all_repository->query = $query; + $search_all_repository->filter_fields = []; + $search_all_repository->es_index = $indexes; + $search_all_repository->es_type = ''; + $all_result = $search_all_repository->getSearchResult(); + $total_num = $all_result['hits']['total']; + $all_items = $all_result['hits']['hits'];*/ + $total_num = $esResults['hits']['total']; + + $all_items = $esResults['hits']['hits']; + // For datasets href + $href = '"search.php?query=' . $query . '"'; + $all_num = '(' . ($total_num) . ')'; + $result_href = ''; + + // Caculate each datatypes item number + $datatypes_num = []; + foreach (getDatatypes() as $datatype) { + + $dataindex = $mappings[$datatype]; + + $c = 0; + foreach ($repositoryObj->getRepositories() as $repository) { + + if (is_array($dataindex)) { + foreach ($dataindex as $item) { + if ($repository->index == $item) { + $c = $c + $repository->num; + } + } + } else { + if ($repository->index == $dataindex) { + $c = $c + $repository->num; + } + } + } + $datatypes_num[$datatype] = $c; + } + $fianlResult = array('repository' => $repositoryObj->getRepositories(), 'datatypes' => $datatypes_num); + echo json_encode($fianlResult); +} + +// Function to check if the request is an AJAX request +function is_ajax() { + return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; +} + diff --git a/ajax/deletesearch.php b/ajax/deletesearch.php new file mode 100644 index 0000000..e6b34d1 --- /dev/null +++ b/ajax/deletesearch.php @@ -0,0 +1,24 @@ +getConn(); +$search = new Search(); + + +if(!empty($_POST['query'])) { + + foreach($_POST['query'] as $check) { + $search->setSearchId($check); + if($search->deleteSearch($dbconn)){ + echo "ok"; + } + //echo $check; + } +} \ No newline at end of file diff --git a/ajax/savesearch.php b/ajax/savesearch.php new file mode 100644 index 0000000..6f20b64 --- /dev/null +++ b/ajax/savesearch.php @@ -0,0 +1,26 @@ +getConn(); +$search = new Search(); + +if(!empty($_POST['query'])) { + + foreach($_POST['query'] as $check) { + + $search->setDate(explode("|",$check)[2]); + $search->setSearchTerm(explode("|",$check)[0]); + $search->setSearchType(explode("|",$check)[1]); + $search->setUemail($_SESSION['email']); + + + if($search->saveSearch($dbconn)){ + echo "ok"; + } + } +} + diff --git a/ajax/studyconsent.php b/ajax/studyconsent.php new file mode 100644 index 0000000..e269b40 --- /dev/null +++ b/ajax/studyconsent.php @@ -0,0 +1,26 @@ +getConn(); +$consent = new StudyConsent(); + +if(!empty($_POST['email'])) { + $consent->setEmail($_POST['email']); + $consent->setConsent(1); + $consent->setConsentTime(date("Y-m-d H:i:s")); + $consent->setUsername($_SESSION['email']); + + if($consent->saveConsent($dbconn)){ + echo "ok"; + } +} \ No newline at end of file diff --git a/auto.html b/auto.html new file mode 100644 index 0000000..93b4794 --- /dev/null +++ b/auto.html @@ -0,0 +1,55 @@ + + + + + + + +
+ +
+ + + + + + diff --git a/change.php b/change.php new file mode 100644 index 0000000..9694386 --- /dev/null +++ b/change.php @@ -0,0 +1,78 @@ +getConn(); + + +// Was the form submitted? +if (isset($_POST["ForgotPassword"])) { + + // Harvest submitted e-mail address + if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) { + $email = $_POST["email"]; + + }else{ + echo "email is not valid"; + exit; + } + + // Check to see if a user exists with this e-mail + $query = $dbconn->prepare('SELECT email FROM user WHERE email = :email'); + $query->bindParam(':email', $email); + $query->execute(); + $userExists = $query->fetch(PDO::FETCH_ASSOC); + $dbconn = null; + + if ($userExists["email"]) + { + require_once dirname(__FILE__) . '/vendor/swiftmailer/swiftmailer/lib/swift_required.php'; + + // Create a unique salt. This will never leave PHP unencrypted. + $salt = "498#2D83B631%3800EBD!801600D*7E3CC13"; + + // Create the unique user password reset key + $password = hash('sha512', $salt.$userExists["email"]); + + // Create a url which we will direct them to reset their password + $pwrurl = "http://datamed.biocaddie.org/dev/biocaddie-ui/reset_password.php?q=".$password; + + $from = 'biocaddie.mail@gmail.com'; + $to = $userExists["email"]; + $subject = " Password Reset"; + $body = 'Dear user,
+ If this e-mail does not apply to you please ignore it. It appears that you have requested a password reset at our website www.yoursitehere.com
+ To reset your password, please click the link below. If you cannot click it, please paste it into your web browser\'s address bar.
' + . $pwrurl . '
Thanks,
The Administration'; + + + $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") + ->setUsername('biocaddie.mail@gmail.com') + ->setPassword('biocaddie4050@'); + + $mailer = Swift_Mailer::newInstance($transport); + + $message = Swift_Message::newInstance('DataMed -' . $subject) + ->setFrom(array($from => 'bioCaddie')) + ->setTo(array($to)) + ->setBody($body) + ->setContentType("text/html"); + + $result = $mailer->send($message); + + require_once './views/header.php'; + + echo "
Your password recovery key has been sent to your e-mail address.
"; + // header( "refresh:5;url=../index.php" ); + include dirname(__FILE__) . '/views/footer.php'; + + } + else + echo "No user with that e-mail address exists."; +} +?> diff --git a/composer.json b/composer.json index a321c03..9dec2da 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,7 @@ { "require":{ - "elasticsearch/elasticsearch":"~1.0" + "elasticsearch/elasticsearch":"~1.0", + "google/apiclient": "1.0.*@beta", + "swiftmailer/swiftmailer": "^5.4" } } - diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..ca7a8c2 --- /dev/null +++ b/composer.lock @@ -0,0 +1,490 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "571a0a30b03b5be669a838fbe126b960", + "content-hash": "a3fca92acf541d91a6c6d5de6726e811", + "packages": [ + { + "name": "elasticsearch/elasticsearch", + "version": "v1.3.4", + "source": { + "type": "git", + "url": "https://github.com/elastic/elasticsearch-php.git", + "reference": "b2fc513757f6805635a34988dca97646f0ea6a4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/b2fc513757f6805635a34988dca97646f0ea6a4d", + "reference": "b2fc513757f6805635a34988dca97646f0ea6a4d", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "guzzle/guzzle": "~3.0", + "monolog/monolog": "~1.11", + "php": ">=5.3.9", + "pimple/pimple": "~3.0", + "psr/log": "~1.0" + }, + "require-dev": { + "athletic/athletic": "~0.1", + "cpliakas/git-wrapper": "~1.0", + "mikey179/vfsstream": "~1.2", + "mockery/mockery": "0.9.4", + "phpunit/phpunit": "3.7.*", + "satooshi/php-coveralls": "dev-master", + "symfony/yaml": "2.4.3 as 2.4.2", + "twig/twig": "1.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Elasticsearch\\": "src/Elasticsearch/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache 2" + ], + "authors": [ + { + "name": "Zachary Tong" + } + ], + "description": "PHP Client for Elasticsearch", + "keywords": [ + "client", + "elasticsearch", + "search" + ], + "time": "2015-04-09 09:19:23" + }, + { + "name": "google/apiclient", + "version": "1.0.6-beta", + "source": { + "type": "git", + "url": "https://github.com/google/google-api-php-client.git", + "reference": "a41a9dc0662e36420030eaab802dbb1f85459479" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/google/google-api-php-client/zipball/a41a9dc0662e36420030eaab802dbb1f85459479", + "reference": "a41a9dc0662e36420030eaab802dbb1f85459479", + "shasum": "" + }, + "require": { + "php": ">=5.2.1" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "src/" + ], + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "time": "2014-09-30 19:33:59" + }, + { + "name": "guzzle/guzzle", + "version": "v3.9.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", + "phpunit/phpunit": "3.7.*", + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" + }, + "suggest": { + "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.9-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2015-03-18 18:23:50" + }, + { + "name": "monolog/monolog", + "version": "1.17.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "bee7f0dc9c3e0b69a6039697533dca1e845c8c24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bee7f0dc9c3e0b69a6039697533dca1e845c8c24", + "reference": "bee7f0dc9c3e0b69a6039697533dca1e845c8c24", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "raven/raven": "^0.13", + "ruflin/elastica": ">=0.90 <3.0", + "swiftmailer/swiftmailer": "~5.3", + "videlalvaro/php-amqplib": "~2.4" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "raven/raven": "Allow sending log messages to a Sentry server", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.16.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2015-10-14 12:51:02" + }, + { + "name": "pimple/pimple", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/silexphp/Pimple.git", + "reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a30f7d6e57565a2e1a316e1baf2a483f788b258a", + "reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Pimple": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Pimple, a simple Dependency Injection Container", + "homepage": "http://pimple.sensiolabs.org", + "keywords": [ + "container", + "dependency injection" + ], + "time": "2015-09-11 15:10:35" + }, + { + "name": "psr/log", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", + "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-0": { + "Psr\\Log\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2012-12-21 11:40:51" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.1", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421", + "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1,<0.9.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "http://swiftmailer.org", + "keywords": [ + "email", + "mail", + "mailer" + ], + "time": "2015-06-06 14:19:39" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "ee278f7c851533e58ca307f66305ccb9188aceda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ee278f7c851533e58ca307f66305ccb9188aceda", + "reference": "ee278f7c851533e58ca307f66305ccb9188aceda", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.0,>=2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2016-01-13 10:28:07" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "google/apiclient": 10 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/config.php b/config/config.php similarity index 78% rename from config.php rename to config/config.php index 5d0b20a..11b826f 100644 --- a/config.php +++ b/config/config.php @@ -9,8 +9,14 @@ session_name('SessionName'); */ +/*start session*/ +if (session_status() == PHP_SESSION_NONE) { + session_start(); +} +date_default_timezone_set('America/chicago'); + //for ES end point config, when change ES enpoint, please change here -require_once 'vendor/autoload.php'; +/*require_once 'vendor/autoload.php'; $es = new Elasticsearch\Client([ //'hosts'=>['127.0.0.1:9200'] 'hosts'=>['129.106.149.72:9200'] @@ -21,11 +27,13 @@ 'phenotype'=>'phenodisco', 'gene_expression'=>'geo', 'gene expression'=>'geo', -'sequence'=>'sra' +'sequence'=>'sra', + + ]; $es_index = 'pdb_v2,geo,phenodisco,sra'; $datatypes = ['protein','phenotype','gene expression','sequence']; - -?> \ No newline at end of file +*/ +?> diff --git a/config/datasources.php b/config/datasources.php new file mode 100644 index 0000000..84568c0 --- /dev/null +++ b/config/datasources.php @@ -0,0 +1,77 @@ + [$es_end_point] + ]); + +// Returns data types list. +function getDatatypes() { + return ['Protein Structure', 'Phenotype', 'Gene Expression', 'Nucleotide Sequence','Unspecified','Clinical Trials','Imaging Data','Morphology','Proteomics Data','Physiological Signals']; +} + +// Returns data types mapping to elastic search indexes. +function getDatatypesMapping() { + return ['Protein Structure' => ['pdb'], + 'Phenotype' => ['phenodisco','mpd'], + 'Gene Expression' => ['geo', 'arrayexpress', 'gemma'], //'geo', + 'Nucleotide Sequence' => ['sra'], + 'Unspecified' => ['lincs','bioproject','dryad','dataverse','niddkcr','nursadatasets'], + 'Clinical Trials'=>['clinicaltrials','ctn'], + 'Imaging Data'=>['cvrg','neuromorpho','ctn','cia','openfmri'], + 'Morphology'=>['neuromorpho'], + 'Proteomics Data'=>['peptideatlas','proteomexchange','yped'], + 'Physiological Signals'=>['physiobank'], + + + ]; +} + +// Returns data types mapping to elastic search indexes. +function getRepositoryIDMapping() { + return ['0001' => 'phenodisco', + '0002' => 'pdb', + '0003' => 'geo', + '0004' => 'lincs', + '0005' => 'gemma', + '0006' => 'arrayexpress', + '0007' => 'sra', + '0008'=> 'bioproject', + '0009' => 'clinicaltrials', + '0010'=>'dryad', + '0011'=>'cvrg', + '0012'=>'dataverse', + '0013'=>'neuromorpho', + '0014'=>'peptideatlas', + '0015'=>'ctn', + '0016'=>'cia', + '0017'=>'mpd', + '0018'=>'niddkcr', + '0019'=>'openfmri', + '0020'=>'nursadatasets', + '0021'=>'physiobank', + '0022'=>'proteomexchange', + '0023'=>'yped', + ]; +} + +// Returns data types list. +function getElasticSearchIndexes() { + + return 'pdb'.',' . 'geo'.',' . 'phenodisco' .','. 'lincs' .','. 'arrayexpress'.','. 'gemma'.',' . 'sra'.','.'bioproject' .','.'clinicaltrials'.',' . 'dryad' .',' + .'cvrg'.','.'dataverse' .','.'neuromorpho'.','.'peptideatlas'.','.'ctn'.','.'cia'.','.'mpd'.','.'niddkcr'.','.'physiobank'.','.'proteomexchange'.','.'openfmri'.','.'nursadatasets'.',' + .'yped'; + +} diff --git a/config/server.php b/config/server.php new file mode 100644 index 0000000..b7a5345 --- /dev/null +++ b/config/server.php @@ -0,0 +1,20 @@ +a{ /******************************************** * -* Styles for element on datasource page +* Styles for element on search page * *********************************************/ .search-block-2{ background: #F7FDF6; background-image:linear-gradient(to bottom, #DFF0D8 0px, #f7fdf7 100%); border: 1px solid #B5EBA9; - height: 100px; + height: 150px; padding-top: 20px; } @@ -359,7 +351,6 @@ p.pubmed{ border-bottom-width: 1px; } - /**** buttons *****/ .btn-primary, @@ -496,6 +487,7 @@ border-radius: 3px; margin-top: -5px; } +/* .bs-mixin(@name, @callout-color, @font-color) { .@{name}, &.@{name} h4 { @@ -510,8 +502,7 @@ color: @font-color; .bs-mixin(bs-callout-danger, @brand-danger, @brand-danger); .bs-mixin(bs-callout-warning, @brand-warning, @brand-warning); .bs-mixin(bs-callout-success, @brand-success, @brand-success); - +*/ /*/.end of css for feedback panel*/ - diff --git a/css/style_fix.css b/css/style_fix.css deleted file mode 100644 index af084df..0000000 --- a/css/style_fix.css +++ /dev/null @@ -1,71 +0,0 @@ -body { - margin-top: 5px; -} -body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { - font-family: 'Open Sans', sans-serif; -} - -.blackgray { - font-size: 12pt; - font-weight: normal; -} -.lead { - font-weight: bold; - font-size: 16pt; -} -.nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - color: #FFF; - background-color: #666; - border-radius: 0; -} -.background { - background: #F0FFF0; - border: 1px solid #D6F4D0; - box-shadow: 1px 1px 1px 1px silver; -} -.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { - background-color: #666; - color:#fff; -} -.background_gray { - background: #F9F9F9; - box-shadow: 1px 1px 1px 1px silver; -} -.background_gray .background_gray{ - box-shadow: none; -} -.pagination { - font-size: 14px; - padding: 5px 10px; -} -.pagination>li>a, .pagination>li>span { - background-color: #ECECFB; - border: 1px solid #ddd; - color: #424251; - padding:3px 10px; -} -.table-responsive li { - padding: 10px 10px; - margin: 4px 2px; - box-shadow: 1px 1px 1px 1px silver; -} -.table-responsive li:nth-child(odd) { - background: #f9f9f9; -} -.table-responsive li:nth-child(even) { - background: #FFF; -} - -h1.biocaddie_green { - display:none; -} -.table-responsive li { - font-size: 15px; -} -.table-responsive h4 a { - color: #444; - font-size: 16px; -} -.row { - margin: 10px 0px 0px 0px; -} \ No newline at end of file diff --git a/css/theme.css b/css/theme.css new file mode 100644 index 0000000..c53f659 --- /dev/null +++ b/css/theme.css @@ -0,0 +1,1034 @@ +@font-face { + font-family: 'Roboto'; + src: url('../fonts/Roboto-Regular.ttf') format('truetype'); +} + +body { + position: relative; + margin-top: 10px; + font-family: 'Roboto', "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + padding-bottom: 10rem; + min-height: 100%; +} +.container{ + max-width: 1200px; +} +a { + color: black; +} + +a.hyperlink { + color: #0C5F22; + text-decoration: underline; +} + +a:hover, a:focus { + color: #0C5F22; +} + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6{ + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-weight: bold; +} + +/******************************************** +* Styles for element on home page +*********************************************/ + +/****** logo on the top *****/ +.header-logo{ + width: 140px; + margin-right: 20px; +} +.header-tag{ + height: 20px; +} + +/****** navigation bar *******/ + +.navbar{ + margin-top: 10px; + border-radius: 0px; + border: none; +} + +.navbar-inverse { + background-color: #58595B; + background: linear-gradient(to bottom, #58595B 0px, #58595B 100%); + border: none; + padding: 0px; +} + +.navbar-right{ + padding-top: 0px; +} + +/***** dropdown menu ****/ +.marginBottom-0 {margin-bottom:0;} +.dropdown-submenu{position:relative;} +.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;} +.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;} +.dropdown-submenu:hover>a:after{border-left-color:#555;} +.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;} + + +/*text on navbar*/ +.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:focus { + color: #FFF; + background-color: #58595B; + border-radius: 0; + font-size: 13px; + font-weight: bold; +} + +.navbar-inverse .navbar-nav > .active > a span.caret { + border-top-color: #FFF; +} + +/*mouse hover*/ +.navbar-inverse .navbar-nav > .active > a:hover { + background-color: #f7fdf6; + color: #58595B; +} + +.navbar-inverse .navbar-nav > .active > a:hover span.caret { + border-top-color: #58595B; +} + +/* Show the dropdown menu on hover */ +ul li:hover ul.dropdown { + display: block; /* Display the dropdown */ + +} + +/****** Searchbox on homepage *******/ + +.search-block { + background: #f7fdf7; + background: linear-gradient(to bottom, #DFF0D8 0px, #f7fdf7 100%); + border: 1px solid #B5EBA9; + padding: 10px 20px; + margin-bottom: 20px; +} + +.search-text-lg { + color:#58595B; + font-weight: bold; + font-size: 18px; +} + +.search-text-sm{ + color:#767879; + font-size: 12px; +} + +.search-text-md{ + color:#767879; + font-size: 14px; +} + +.ui-dialog { + z-index: 10000; + box-shadow: rgb(136, 136, 136) 1px 1px 5px; +} + +input#btn-search{ + background-image: url(../img/search.png); + background-position:center; + background-size: 35px 35px; + width:50px; + height:35px; +} + +/* popup dialog under the search box*/ + +.ui-widget-content a{ + color:#009444; +} + +.ui-dialog-title { + display: none; +} + +.noTitleStuff .ui-dialog-titlebar { + display:none +} + +.ui-widget-header{ + border:0px; +} + + +.types{ + color:#009444; +} +.ui-widget-content a.repositoryLabel{ + color:black; +} + +/****** box on homepage *******/ +.panel.panel-home { + min-height: 330px; +} + +.panel.panel-primary { + border-color: #DBDBEA; +} + +.panel.panel-primary .title-icon { + position: absolute; + top : 35px; + left: 45%; + z-index: 5; + width: 50px; + height: 50px; +} + +.panel.panel-primary .title-icon .fa { + background: #fff; + text-align: center; + display: inline; + border-radius: 50%; + border-color: #DBDBEA; + box-shadow: rgb(136, 136, 136) 1px 1px 5px; + padding: 7px 7px; + font-size: 16px; + width: 50px; + height: 50px; +} + +.panel-primary > .panel-heading { + background-image:linear-gradient(to bottom, #DBDBEA 0px, #dedeec 100%); + border-color: #DBDBEA; + background-color: #DBDBEA; + color: black; +} + +.panel-primary > .panel-heading strong { + font-size: 16px; +} + +.image{ + margin-top: -25px; +} + +.fa-title { + background: #fff; + padding: 1em; + width:50px; /** fix width ***/ + text-align: center; + display: inline; + border-radius: 50%; + border-color: #DBDBEA; + line-height: 50px; /** for vertical center - if needed **/ + box-shadow: rgb(136, 136, 136) 1px 1px 5px; + padding: 5px; +} + +.panel >.panel-body{ + padding: 5px; +} + +/* Statistics */ +#statistics-panel .stat-box { + padding: 25px 0; +} + +#statistics-panel .stat-box i.fa { + display: block; + font-size: 40px; + margin : 0 auto 5px; +} + +#statistics-panel .stat-box .stat-value { + display: inline; + margin: 0; + font-weight: bold; + font-size: 20px; + margin-right: 3px; +} + +#statistics-panel .stat-box .stat-title { + margin: 0; + display: inline; + font-size: 14px; + font-weight: bold; + text-transform: uppercase; +} + +#repositories-container .panel-body { + padding-top: 20px; +} + +/* Features */ +#features ul { + list-style: none; + padding: 5px 0 0 20px; + margin-bottom: 0; +} + +#features ul li:before { + content: "\00BB \0020"; +} + +/* Announcements */ +#announcement table { + margin: 0; +} + +#announcement table > tbody > tr:nth-child(2n+1) > td { + background-color: #f3f3f8; +} + +.glyphicon-stop { + color: #2CA02C; +} + +#most-accessed .panel-body { + padding-top: 20px; +} + +/****** Pilot Projects *******/ +#pilot-projects > div.row { + margin :0 ; +} +#pilot-projects > div.row > div { + padding-left: 0; + padding-right: 5px; +} + +#pilot-projects div.project { + border: 1px solid #BDBDBD; + border-radius: 5px; + min-height: 140px; + margin: 0; +} + +#pilot-projects div.project > img { + height: 35px; + margin: 8px 5px; +} + +#pilot-projects div.project > span { + padding: 5px 10px; + display: block; + background-color: #F3F3F8; + margin: 0; +} + +#pilot-projects div.project > span > a { + color: #000; + font-size: 16px; + font-weight: bold; +} + +#pilot-projects div.project > span > span.label { + float: right; + margin-top: 5px; + font-size: 9px; +} + +#pilot-projects div.project > p { + padding: 5px 10px; + font-size: 12px; +} + + +/****** footers *******/ + +/*keep footer at the bottom of the page*/ +html { + height: 100%; + box-sizing: border-box; +} + +.footer { + background-color: #58595B; + border-color: #313140; + border: 0px solid black; + border-radius: 0px; + width: 100%; + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + text-align: center; + margin-top: 20px; +} + +.footer p { + color: #fff; + font-size:13px; + font-weight: normal; + width: 100%; + padding-top: 15px; +} + +.footer .white{ + color: #fff; +} + +/******************************************** +* +* Styles for element on search page +* +*********************************************/ + +.label-repo{ + background-color:#3A87AE; +} +.container .jumbotron { + padding: 15px 30px 0px; +} + +.container .jumbotron.search-block h4 { + margin-bottom: 0px; +} + +.container .jumbotron.search-block input[type="radio"] { + margin-top: -7px; +} + +.container .jumbotron.search-block-2 { + padding: 15px 20px 10px; + line-height: 12px; + margin-bottom: 20px; + border-radius: 0; + background: #F7FDF6; + background-image: linear-gradient(to bottom, #DFF0D8 0px, #f7fdf7 100%); + border: 1px solid #B5EBA9; +} + +.container .jumbotron.search-block-2 input.form-control { + border-radius: 0; +} + + +#query { + text-transform: capitalize; +} + +/****result table*****/ +.result-heading{ + color:#0C5F22; +} + +/****fix the width of table****/ +table.search-repo { + table-layout: auto; +} + +table.search-repo th { + width: auto !important; +} + +/****page navigation*****/ +.pagination { + font-size: 12px; +} + +#search-pagination { + margin: 10px 0; +} + +#search-repository-pagination { + margin: 3px 0 0 0; +} + +.pagination>li>a, .pagination>li>span { + padding: 5px 10px; +} + +.pagination>li:first-child>a, .pagination>li:first-child>span{ + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.pagination>li:last-child>a, .pagination>li:last-child>span { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { + background-color: #666; + color:#fff; +} + +.pagination>li>a, .pagination>li>span { + background-color: #F1F1F1; + border: 1px solid #ddd; + color: #424251; +} + + +/****side bar*****/ +#sidebar > li > a{ + color: black; +} + + +/**** Related Publications *****/ +#related-publications .panel-body { + padding: 0; +} + +#related-publications .panel-body .list-group { + border-radius: 0; + margin:0 ; +} + +#related-publications .panel-body .list-group .list-group-item { + padding: 5px 10px; +} + +#related-publications .panel-body .list-group .list-group-item .list-group-item-heading { + font-size: 12px; +} + +#related-publications .panel-body .list-group .list-group-item .list-group-item-text { + font-size: 11px; +} + +#related-publications .panel-body .list-group .list-group-item:first-child, +#related-publications .panel-body .list-group .list-group-item:last-child { + border-radius: 0; +} + +/**** recent searches *****/ +#recent ul { + margin: 0; + padding: 0 0 0 10px; +} + +#recent ul li { + border-bottom: dotted 1px; + padding: 8px 0; +} + +#recent ul li:last-child { + border-bottom: none; +} + + + +/****related searches*****/ + +#related ul { + margin: 0; + padding: 0 0 0 10px; +} + +#related ul li { + border-bottom: dotted 1px; + padding: 8px 0; +} + +#related ul li:last-child { + border-bottom: none; +} + +#related .glyphicon-search{ + margin-right: 5px; +} + + +/**** synonyms*****/ +#synonym ul { + margin: 0; + padding: 0 0 0 10px; +} + +#synonym ul li { + border-bottom: dotted 1px; + padding: 8px 0; +} + +#synonym ul li:last-child { + border-bottom: none; +} + + + +/**** buttons *****/ + +.btn-primary, +.dropdown-toggle.btn-primary, +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active { + color: #ffffff; + background: #30A968; + border-color: #30A968; +} + + +/**** Search Details *****/ +textarea { + resize: none; +} + +/**** Switch view *****/ +.switchview +{ + font-size: 18px; + cursor: pointer +} + +.activeView +{ + color: #398439; +} + +/******************************************** +* +* Styles for element on search-repository page +* +*********************************************/ +.pilot-logo { + width: 100px; + float: right; +} + +.pilot > .panel-body{ + text-align: center; +} + +.pilot > .panel-heading{ + background-color: #F2DEDE; + background-image:linear-gradient(to bottom, #F2DEDE 0px, #F2DEDE 100%); + color: #c67070; + border-color: #F2DEDE; +} +.pilot{ + border-color: #F2DEDE; +} + +/*Show more function*/ +.morecontent span { + display: none; +} +a.morelink { + text-decoration:none; + outline: none; + color: #0254EB; +} +/******************************************** +* +* Styles for element on single_item page +* +*********************************************/ + +/****similar dataset*****/ +#similar-datasets .panel-body { + padding: 0; +} + +#similar-datasets .panel-body .list-group { + border-radius: 0; + margin:0 ; +} + +#similar-datasets .panel-body .list-group .list-group-item { + padding: 5px 10px; +} + +#similar-datasets .panel-body .list-group .list-group-item .list-group-item-heading { + font-size: 12px; +} + +#similar-datasets .panel-body .list-group .list-group-item .list-group-item-text { + font-size: 11px; +} + +#similar-datasets .panel-body .list-group .list-group-item:first-child, +#similar-datasets .panel-body .list-group .list-group-item:last-child { + border-radius: 0; +} + +/**** Dataset Info *****/ +.dataset-info { + margin-bottom: 40px; +} + +.dataset-info .heading { + /* background-color: #F3F3F3; */ + border: 1px solid #E6E6E6; + margin: 0 0 20px 0; + /* padding: 10px; */ +} + +.dataset-info .heading > div a.repository-logo > img { + display: inline; + height: 30px; + margin: 10px; +} + +.dataset-info .heading > div .title { + text-transform: capitalize; + display: inline-block; + width: 90%; + overflow:hidden !important; + white-space:nowrap; + text-overflow: ellipsis; + font-size: 18px; + font-weight: bold; +} + +.dataset-info table { + margin-bottom: 0; +} + +.dataset-info .panel { + margin-bottom: 20px; +} + +.dataset-info .panel-body { + padding: 0; +} + +/****** Others *****/ + +.biocaddie_green { + color:#009444; +} + +.soon { + margin-top: 5px; + float: right; +} + +/* css for feedback panel*/ + +.bs-callout { + padding: 20px; + border: 1px solid #233120; + border-left-width: 8px; + border-radius: 3px; + margin-bottom: 50px; +} + +.bs-callout h4 { + margin-top: 0; + margin-bottom: 5px; +} + +.bs-callout p:last-child { + margin-bottom: 0; +} + +.bs-callout code { + border-radius: 3px; +} + +.bs-callout+.bs-callout { + margin-top: -5px; +} + +#dropdown-sort{ + border-radius: 0; + box-shadow: none; +} + +/* #### Search Result Panel */ +ol.search-result { + padding: 0; +} + +ol.search-result > li { + position:relative; /* Create a positioning context */ + margin: 0 0 10px 0; + padding:4px 8px; /* Add some spacing around the content */ + list-style: none; /* Disable the normal item numbering */ + /* border-top: 1px solid #666; */ +} +ol.search-result > li .row-number { + /* Position and style the number */ + position:absolute; + top:-1px; + left:-2em; + -moz-box-sizing:border-box; + -webkit-box-sizing:border-box; + box-sizing:border-box; + width:2em; + margin-right:8px; + padding:4px; + border-top:2px solid #666; + color:#fff; + background:#666; + font-weight:bold; + font-family:"Helvetica Neue", Arial, sans-serif; + text-align:center; +} + +/* ol.search-result li:nth-child(odd){ + background: #F3F3F3; +} */ + +ol.search-result .result-heading { + margin: 0 0 2px 0; + font-size: 15px; + font-weight: bold; +} + +ol.search-result .result-heading a { + color: #0C5F22; +} + +ol.search-result .result-reposity { + padding: 1px 4px; +} + +ol.search-result .result-reposity a { + color: #fff; + font-size: 10px; +} + +ol.search-result .result-field { + margin: 0; +} + +ol.search-result .result-field em { + font-weight: bold; + margin-right: 5px; +} + +ol.search-result .result-source { + margin: 0; +} + +#accordion-filters{ + margin-bottom: 20px; +} + +#accordion-filters h4.panel-title { + font-size: 13px; +} + +#accordion-filters h4.panel-title a { + text-decoration: none; + cursor: pointer; +} + +#accordion-filters h4.panel-title a i.fa { + margin-right: 5px; +} + +#accordion-filters .panel-body { + padding: 5px; +} + +.dropdown.open ul.dropdown-menu { + margin: 0; + padding: 0; + min-width: 100px; + font-size: 12px; +} + +.dropdown.open ul.dropdown-menu li a { + padding: 3px 10px; +} + +#latest-datasets .panel-body { + padding: 0; +} + +#latest-datasets .panel-body ul.list-group { + margin:0; + padding: 0; +} + +#latest-datasets .panel-body ul.list-group .list-group-item { + border-radius: 0; +} + +ul.no-disk { + list-style: none; + padding: 0 0 0 10px; +} + + +.badge-default { + background-color: #999; +} + +.badge-primary { + background-color: #5bc0de; +} + +.badge-info { + background-color: #d9534f; +} + +.badge-success { + background-color: #5cb85c; +} + +.badge-danger { + background-color: #d9534f; +} + +.badge-warning { + background-color: #efb73e; +} + + +table{ + word-wrap:break-word; + table-layout: fixed; +} + +/*For sharing*/ +.stpulldown-gradient +{ + background: #E1E1E1; + background: -moz-linear-gradient(top, #E1E1E1 0%, #A7A7A7 100%); /* firefox */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E1E1E1), color-stop(100%,#A7A7A7)); /* webkit */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#E1E1E1', endColorstr='#A7A7A7',GradientType=0 ); /* ie */ + background: -o-linear-gradient(top, #E1E1E1 0%,#A7A7A7 100%); /* opera */ + color: #636363; +} +#stpulldown .stpulldown-logo +{ + height: 40px; + width: 300px; + margin-left: 20px; + margin-top: 5px; + background:url("//sd.sharethis.com/disc/images/Logo_Area.png") no-repeat; +} + + +/******************************************** +* +* Styles for element on login page +* +*********************************************/ +/* enable absolute positioning */ +.inner-addon { + position: relative; +} + +/* style icon */ +.inner-addon .glyphicon { + position: absolute; + padding: 10px; + pointer-events: none; +} + +/* align icon */ +.left-addon .glyphicon { left: 0px;} +.right-addon .glyphicon { right: 0px;} + +/* add padding */ +.left-addon input { padding-left: 30px; } +.right-addon input { padding-right: 30px; } + +a.account{ + color: #0C5F22; + text-decoration: underline; +} + + +.box {font-family: Arial, sans-serif;background-color: #F1F1F1;border:0;width:340px;webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3);box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3);margin:0 auto 25px;text-align:center;padding:10px 0px;} +.box img{ + padding: 10px; +} +.box a{color: #427fed;cursor: pointer;text-decoration: none;} +.circle-image{width:100px;height:100px;-webkit-border-radius: 50%;border-radius: 50%;} +.welcome{font-size: 16px;font-weight: bold;text-align: center;margin: 10px 0 0;min-height: 1em;} +.oauthemail{font-size: 14px;} +.logout{font-size: 13px;text-align: right;padding: 5px;margin: 20px 5px 0px 5px;border-top: #CCCCCC 1px solid;} +.logout a{color:#8E009C;} + +/*For send to function*/ +.chidden { + display:none; +} + +.option{ + margin-bottom: 10px; +} + +/************************ +* Advanced search page +**************************/ +.input{ + + height: 34px; + padding: 6px 12px; + line-height: 1.42857; + color:#555; + vertical-align: middle; + background-color:#FFFFFF; + border:1px solid #ccc; + border-radius:4px; + box-shadow:0px 1px 1px rgba(0, 0, 0, 0.075) inset; + transition:border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; +} + +div[id*='group'] {margin-bottom: 10px; } +button[id*='drop'] {margin-right: 10px;} +button[id*='op'] {margin-right: 10px; } +input[id*='field'] {margin-right: 10px;width:60%} + +div.dropdown { display: inline-block; } + + +button[class*='opul'] { width: 150px;} +button[class*='field'] { width: 150px;} + +.breadcrumb { + background: #F7FDF6; + background-image: linear-gradient(to bottom, #E7F9E0 0px, #f7fdf7 100%); + border: 1px solid #B5EBA9; + border-radius: 0; + margin-top: -15px; + margin-bottom: 5px; +} + +@media (min-width: 768px) +{ + .modal-sm { + width: 400px; + } +} + +.modal-header { + padding: 10px; + background-color: #2ecc71; + border-radius: 5px 5px 0 0; +} + +.modal-header > h4 { + margin-top: 0; + margin-bottom: 0; + font-size: 14px; +} + +.modal-body { + padding: 20px 20px 0; +} + +.modal-footer { + margin-top: 5px; + padding: 10px; +} + + +.tooltip-inner { + max-width: 400px; +} + +/************************ +* Recent activity page +**************************/ + +.custom-warning { + border: #F0AD4E solid 1px; + background-color:#fbf3cd ; + color: black; + font-weight: normal; + padding: 20px; +} \ No newline at end of file diff --git a/database/GoogleUser.php b/database/GoogleUser.php new file mode 100644 index 0000000..d9b65a4 --- /dev/null +++ b/database/GoogleUser.php @@ -0,0 +1,77 @@ +dbconn; + } + + public function setDbconn($dbconn) + { + $this->dbconn = $dbconn; + } + + function getUserByOAuthId($oauth_user_id) { + + try { + $query = $this->dbconn->prepare("SELECT * FROM google_user WHERE oauth_user_id=?"); + $query->bindValue(1, $oauth_user_id, PDO::PARAM_STR); + $query->execute(); + }catch(PDOException $e){ + echo $e->getMessage(); + } + + $row_count=$query->rowCount(); + + if($row_count>0) { + $existing_member = $query->fetch(PDO::FETCH_ASSOC); + return $existing_member; + } + } + + function insertOAuthUser($userData) { + $currenttime=date("Y-m-d H:i:s"); + + /* insert user into user table */ + try { + $user_query = $this->dbconn->prepare("INSERT INTO user(username,email,create_time) VALUES (:username,:email,:create_time)"); + $user_query->execute(array(':username' => $userData->name, ':email' => $userData->email, ':create_time' => $currenttime)); + }catch(PDOException $e){ + echo $e->getMessage(); + } + + /*get user from user table*/ + try{ + $id_query=$this->dbconn->prepare("SELECT user_id FROM user WHERE email=?"); + $id_query->bindValue(1,$userData->email,PDO::PARAM_STR); + $id_query->execute(); + + $user_id=$id_query->fetchColumn(); + + }catch(PDOException $e){ + echo $e->getMessage(); + } + + /* insert database into google_user table */ + try{ + $query=$this->dbconn->prepare("INSERT INTO google_user(member_name, member_email, oauth_user_id, oauth_user_page, oauth_user_photo,user_id) + VALUES (:member_name, :member_email, :oauth_user_id, :oauth_user_page, :oauth_user_photo,:user_id)"); + $query->execute(array(':member_name'=>$userData->name, ':member_email'=>$userData->email, ':oauth_user_id'=>$userData->id, + ':oauth_user_page'=> $userData->link, ':oauth_user_photo'=>$userData->picture,':user_id'=>$user_id)); + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + +} \ No newline at end of file diff --git a/database/Search.php b/database/Search.php new file mode 100644 index 0000000..f7b798c --- /dev/null +++ b/database/Search.php @@ -0,0 +1,119 @@ +searchTerm; + } + + public function setSearchTerm($searchTerm) + { + $this->searchTerm = $searchTerm; + } + + public function getDate() + { + return $this->date; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getUemail() + { + return $this->uemail; + } + + public function setUemail($uemail) + { + $this->uemail = $uemail; + } + + public function getSearchType() + { + return $this->searchType; + } + + public function setSearchType($searchType) + { + $this->searchType = $searchType; + } + + public function getSearchId() + { + return $this->searchId; + } + + public function setSearchId($searchId) + { + $this->searchId = $searchId; + } + + + public function saveSearch($dbconn){ + try{ + $stmt=$dbconn->prepare("INSERT INTO saved_search(create_time,search_term,user_email,search_type) VALUES (:time,:term,:uemail,:type)"); + $stmt->bindparam(":time",$this->date); + $stmt->bindparam(":term",$this->searchTerm); + $stmt->bindparam(":uemail",$this->uemail); + $stmt->bindparam(":type",$this->searchType); + $stmt->execute(); + + $dbconn = null; + return $stmt; + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + + public function showPartialSearch($dbconn){ + try{ + $sql ="SELECT * FROM saved_search WHERE user_email="."'".$this->uemail."' ORDER BY create_time DESC LIMIT 5"; + $result = $dbconn->query($sql); + + $dbconn = null; + return $result; + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + + public function showSearch($dbconn){ + try{ + $sql ="SELECT * FROM saved_search WHERE user_email="."'".$this->uemail."' ORDER BY create_time DESC"; + $result = $dbconn->query($sql); + + $dbconn = null; + return $result; + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + + public function deleteSearch($dbconn){ + try{ + var_dump($this->searchId); + $sql ="DELETE FROM saved_search WHERE search_id=".$this->searchId; + $result = $dbconn->query($sql); + $dbconn = null; + return $result; + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } +} \ No newline at end of file diff --git a/database/StudyConsent.php b/database/StudyConsent.php new file mode 100644 index 0000000..d51c419 --- /dev/null +++ b/database/StudyConsent.php @@ -0,0 +1,99 @@ +email; + } + + /** + * @param mixed $email + */ + public function setEmail($email) + { + $this->email = $email; + } + + /** + * @return mixed + */ + public function getConsent() + { + return $this->consent; + } + + /** + * @param mixed $consent + */ + public function setConsent($consent) + { + $this->consent = $consent; + } + + /** + * @return mixed + */ + public function getConsentTime() + { + return $this->consent_time; + } + + /** + * @param mixed $consent_time + */ + public function setConsentTime($consent_time) + { + $this->consent_time = $consent_time; + } + + /** + * @return mixed + */ + public function getUsername() + { + return $this->username; + } + + /** + * @param mixed $username + */ + public function setUsername($username) + { + $this->username = $username; + } + + public function saveConsent($dbconn){ + try{ + $stmt=$dbconn->prepare("INSERT INTO study_consent(email,consent,consent_time,username) VALUES (:email,:consent,:consent_time,:username)"); + $stmt->bindparam(":email",$this->email); + $stmt->bindparam(":consent",$this->consent); + $stmt->bindparam(":consent_time",$this->consent_time); + $stmt->bindparam(":username",$this->username); + $stmt->execute(); + + $dbconn = null; + return $stmt; + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + + + +} \ No newline at end of file diff --git a/database/User.php b/database/User.php new file mode 100644 index 0000000..3f7403f --- /dev/null +++ b/database/User.php @@ -0,0 +1,131 @@ +uid; + } + + public function getUname() + { + return $this->uname; + } + + public function setUname($uname) + { + $this->uname = $uname; + } + + public function getUemail() + { + return $this->uemail; + } + + public function setUemail($uemail) + { + $this->uemail = $uemail; + } + + public function getUpass() + { + return $this->upass; + } + + public function setUpass($upass) + { + $this->upass = $upass; + } + + + public function register($dbconn, $uname, $uemail, $upass,$currenttime){ + try{ + $stmt=$dbconn->prepare("INSERT INTO user(username,email,password,create_time) VALUES (:uname,:uemail,:upass,:create_time)"); + $stmt->bindparam(":uname",$uname); + $stmt->bindparam(":uemail",$uemail); + $stmt->bindparam(":upass",$upass); + $stmt->bindparam(":create_time",$currenttime); + $stmt->execute(); + + return $stmt; + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + + public function login($dbconn,$uemail,$upass){ + $this->uemail=$uemail; + $this->upass=$upass; + + try{ + $stmt=$dbconn->prepare("SELECT * FROM user WHERE email=:uemail LIMIT 1"); + $stmt->execute(array(':uemail'=>$uemail)); + + $userRow=$stmt->fetch(PDO::FETCH_ASSOC); + + if($stmt->rowCount()>0){ + if(password_verify($upass,$userRow['password'])){ + //if($upass==$userRow['password']){ + $_SESSION['user_session']=$userRow['user_id']; + $_SESSION['name']=$userRow['username']; + $this->uname=$userRow['username']; + $this->uid=$userRow['user_id']; + return true; + }else{ + return false; + } + } + + }catch(PDOException $e){ + echo $e->getMessage(); + } + } + + public function is_user_exist($dbconn, $uemail){ + try{ + $stmt = $dbconn->prepare("SELECT email FROM user WHERE email=:uemail"); + + $stmt -> execute(array(':uemail'=>$uemail)); + $rowCount = $stmt ->rowCount(); + echo $rowCount; + + if($rowCount>0){ + $error[]="Someone already register using that email. Try another?"; + return true; + }else{ + echo "new database"; + return false; + } + + }catch(PDOException $e){ + echo $e->getMessage(); + } + + } + + public function is_loggedin(){ + if(isset($_SESSION['username'])){ + return true; + } + } + + public function redirect($url){ + header("Location:$url"); + } + + public function logout(){ + session_destroy(); + unset($_SESSION['user_session']); + unset($_SESSION['name']); + $_SESSION['loggedin']=false; + return true; + } +} + +?> diff --git a/datasource.php b/datasource.php deleted file mode 100644 index 3b2e6a3..0000000 --- a/datasource.php +++ /dev/null @@ -1,181 +0,0 @@ -0){ - $es_index = ''; - foreach(array_keys($new_post) as $key){ - if($key!='query') - $es_index=$es_index.','.$datatype_index[$key]; - } -} - -$N=10; -$offset = 1; -if (isset($_GET['offset'])){ - $offset = $_GET['offset']; -} - - -if(isset($_REQUEST['query']) and strlen($_REQUEST['query'])>0){ - $q=$_REQUEST['query']; - $total_num = 0; - - foreach($all_repositories as $repository){ - $search_repository = new ElasticSearch(); - $search_repository->search_fields = $repository->search_fields;//['_all'];//$repository->search_fields; - $search_repository->facets_fields = [];//$repository->facets_fields; - $search_repository->query = $_REQUEST['query']; - $search_repository->filter_fields = []; - $search_repository->es_index = $repository->index; - $search_repository->es_type = $repository->type; - $result = $search_repository->get_search_result(); - $repository->num = $result['hits']['total']; - $total_num = $total_num + $repository->num; - - - } - - - $search_all_repository = new ElasticSearch(); - $search_all_repository->search_fields = $all_search_fields;//$PDB_data->search_fields;//$all_search_fields;//['_all']; - $search_all_repository->facets_fields = []; - $search_all_repository->query = $_REQUEST['query']; - $search_all_repository->filter_fields = []; - $search_all_repository->es_index = $es_index; - $search_all_repository->es_type = ''; - $search_all_repository->offset = $offset; - $all_result = $search_all_repository->get_search_result(); - $total_num1 = $all_result['hits']['total']; - - $all_items = $all_result['hits']['hits']; - } - else{ - $q = ''; - } - - -//for datasets href and number - - $href = '"datasource.php?query='.$q.'"'; -//print_r($_POST); - $all_num = '('.($total_num).')'; - $result_href = ''; - - - -//caculate each datatypes item number - $datatypes_num = []; - foreach($datatypes as $datatype){ - $dataindex = $datatype_index[$datatype]; - $c = 0; - foreach($all_repositories as $repository){ - if($repository->index==$dataindex){ - $c = $c + $repository->num; - } - } - $datatypes_num[$datatype]=$c; - } - - -//for showing result - - $index_type_header=[]; - foreach($all_repositories as $repository){ - $index_type_header[$repository->index.'_'.$repository->type]=[$repository->datasource_headers,$repository->source,$repository->show_name, - $repository->id,$repository->link_field,$repository->core_fields_show_name]; - - } - - $show_all_items = []; - foreach($all_items as $item){ - $key = $item['_index'].'_'.$item['_type']; - $headers_id=$index_type_header[$key][0]; - - $source1=$index_type_header[$key][1]; - $show_item = []; - - for($i=0;$i','',$item['_source'][$fields[0]][$fields[1]]); - -} -else{ - if(is_array($item['_source'][$index_type_header[$key][4]])){ - - $item['_source'][$index_type_header[$key][4]]=implode(' ',$item['_source'][$index_type_header[$key][4]]); -} - //$show_item['ref'] = $source1.$item['_source'][$index_type_header[$key][4]]; -$orinial_item = str_replace('','',$item['_source'][$index_type_header[$key][4]]); - //echo $show_item['ref']; -} -$orinial_item = str_replace('','',$orinial_item); -$show_item['ref'] = 'single_item.php?sourceid='.$index_type_header[$key][3].'&idName='.$index_type_header[$key][4].'&id='.$orinial_item; -$show_item['source']=$index_type_header[$key][2]; -$show_item['source_ref']=$index_type_header[$key][3]; - -array_push($show_all_items,$show_item); - -} -?> - - - - - - diff --git a/datasource/datatype.php b/datasource/datatype.php deleted file mode 100644 index 3d554cc..0000000 --- a/datasource/datatype.php +++ /dev/null @@ -1,31 +0,0 @@ -
-

Data Type

-
- -
-
\ No newline at end of file diff --git a/datasource/related.php b/datasource/related.php deleted file mode 100644 index 3386a0e..0000000 --- a/datasource/related.php +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/datasource/repo.php b/datasource/repo.php deleted file mode 100644 index 52282d4..0000000 --- a/datasource/repo.php +++ /dev/null @@ -1,9 +0,0 @@ -
-
-

Repository

-
- -
- -
-
\ No newline at end of file diff --git a/datasource/result.php b/datasource/result.php deleted file mode 100644 index 7f3751c..0000000 --- a/datasource/result.php +++ /dev/null @@ -1,41 +0,0 @@ - - -
- 0){?> - - -

Displaying - of results for ""

- - - - - -
- - - -
- - - - - - - - - - - -
- -

-


- - '.$key.':'.$item[$key];?> -
- - From -
-
-
\ No newline at end of file diff --git a/dbcontroller.php b/dbcontroller.php new file mode 100644 index 0000000..900a9b3 --- /dev/null +++ b/dbcontroller.php @@ -0,0 +1,37 @@ +conn; + } + + function __construct() { + $this->conn = $this->connectDB(); + if(!empty($conn)) { + $this->selectDB($conn); + } + } + + function __destruct() { + $this->conn=null; + } + + function connectDB() { + try{ + $db=new PDO('mysql:host='.$this->host.';dbname='.$this->database.';charset=utf8',$this->user,$this->password); + $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + }catch(PDOException $e){ + echo $e->getMessage(); + } + return $db; + } +} +?> diff --git a/display-item.php b/display-item.php new file mode 100644 index 0000000..3cd2e87 --- /dev/null +++ b/display-item.php @@ -0,0 +1,73 @@ +getRepositoryName().' : '.$service->getItemId(); +$user_email=isset($_SESSION['email'])?$_SESSION['email']:null; +$objDBController = new DBController(); +$dbconn=$objDBController->getConn(); +$referral=$_SERVER["HTTP_REFERER"]; +write_mysql_log($dbconn,$log_date,$message,$user_email,session_id(),$referral); + + +/*For the go back button*/ +$query = $service->getQueryString(); +$repo_status = 'unchecked'; +$data_status = 'checked'; +if ($_SERVER["HTTP_REFERER"]) { + $backLink = $_SERVER["HTTP_REFERER"]; +} else { + $backLink = "javascript:history.go(-1);"; +} + +?> + +
+
+
+ +
+
+ +
+ + + +
+ +
+ +
+ +
+ +
+ + + + +
+
+
+ + + + + \ No newline at end of file diff --git a/error.php b/error.php index d00f7f8..97c249d 100644 --- a/error.php +++ b/error.php @@ -1,38 +1,9 @@ - -
-
-
-
-
-

Sorry, An Error Has Occurred

-
-

An error has occurred during the current request.

-You can either try again later or return to the home page.

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ - \ No newline at end of file +
+

Sorry, An Error Has Occurred

+ +

An error has occurred during the current request.

+

You can either try again later or return to the home page.

+
+ \ No newline at end of file diff --git a/expanded-query.php b/expanded-query.php new file mode 100644 index 0000000..15c571d --- /dev/null +++ b/expanded-query.php @@ -0,0 +1,26 @@ + + + +
+ +
+

Synonyms of ""

+
+ +
+
    + +
  1. + +
  2. + +
+
+
+ \ No newline at end of file diff --git a/feedback.php b/feedback.php new file mode 100644 index 0000000..62183c1 --- /dev/null +++ b/feedback.php @@ -0,0 +1,39 @@ + + +
+
+
+
+
+ Contact Us + +
+
+ + +
+ +
+ +
+ + +
+ diff --git a/fonts/Roboto-Regular.ttf b/fonts/Roboto-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8c082c8de090865264d37594e396c4d6c0099fe4 GIT binary patch literal 162876 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 literal 0 HcmV?d00001 diff --git a/forgot_password.php b/forgot_password.php new file mode 100644 index 0000000..0ca9b6b --- /dev/null +++ b/forgot_password.php @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/google-api-php-client b/google-api-php-client new file mode 160000 index 0000000..09701cc --- /dev/null +++ b/google-api-php-client @@ -0,0 +1 @@ +Subproject commit 09701cc6edaa151cdda5c6572041767caa506ee6 diff --git a/google_login.php b/google_login.php new file mode 100644 index 0000000..105c21f --- /dev/null +++ b/google_login.php @@ -0,0 +1,78 @@ +setApplicationName("Google OAuth Login"); +$client->setClientId($client_id); +$client->setClientSecret($client_secret); +$client->setRedirectUri($redirect_uri); +$client->addScope("https://www.googleapis.com/auth/userinfo.email"); + + +//Send Client Request +$objOAuthService = new Google_Service_Oauth2($client); + + + +//Authenticate code from Google OAuth Flow +//Add Access Token to Session +if (isset($_GET['code'])) { + $client->authenticate($_GET['code']); + $_SESSION['access_token'] = $client->getAccessToken(); + header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); +} + +//Set Access Token to make Request +if (isset($_SESSION['access_token'])) { + $client->setAccessToken($_SESSION['access_token']); +} + +//Get User Data from Google Plus +//If New, Insert to Database +if ($client->getAccessToken()) { + + if($client->isAccessTokenExpired()) { + $authUrl = $client->createAuthUrl(); + header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL)); + } + + $userData = $objOAuthService->userinfo->get(); + if(!empty($userData)) { + $objDBController = new DBController(); + $google_user=new GoogleUser(); + $google_user->setDbconn($objDBController->getConn()); + + $existing_member = $google_user->getUserByOAuthId($userData->id); + if(empty($existing_member)) { + $google_user->insertOAuthUser($userData); + } + } + $_SESSION['access_token'] = $client->getAccessToken(); + +} else { + $authUrl = $client->createAuthUrl(); +} + +?> \ No newline at end of file diff --git a/grant_details.php b/grant_details.php new file mode 100644 index 0000000..e88cac0 --- /dev/null +++ b/grant_details.php @@ -0,0 +1,42 @@ + + +
+
+
+ +
+ +
+ + +
+ +
+
+ + + + + + + +
+ + + +
+
+
+ + \ No newline at end of file diff --git a/gwas/config.php b/gwas/config.php new file mode 100644 index 0000000..cd7ae50 --- /dev/null +++ b/gwas/config.php @@ -0,0 +1,21 @@ +['127.0.0.1:9200'] + 'hosts' => ['129.106.149.72:9200'] + ]); + +//for datatype facets,when add more repository, please change here +$datatype_index = ['protein' => 'pdb_v2', + 'phenotype' => 'phenodisco', + 'gene_expression' => 'geo', + 'gene expression' => 'geo', + 'sequence' => 'sra' +]; + +$es_index = 'pdb_v2,geo,phenodisco,sra'; + +$datatypes = ['protein', 'phenotype', 'gene expression', 'sequence']; +?> \ No newline at end of file diff --git a/gwas/gwas_header.php b/gwas/gwas_header.php index 1c037ff..f5ddcc9 100644 --- a/gwas/gwas_header.php +++ b/gwas/gwas_header.php @@ -69,7 +69,7 @@
-
+

GWAS Finder

Search literatures for Genome-Wide Association Studies(GWAS)

diff --git a/gwas/gwas_index.php b/gwas/gwas_index.php index 3bd066a..0b260d1 100644 --- a/gwas/gwas_index.php +++ b/gwas/gwas_index.php @@ -80,5 +80,5 @@
- + diff --git a/gwas/gwas_result.php b/gwas/gwas_result.php index fb2cde6..e01c316 100644 --- a/gwas/gwas_result.php +++ b/gwas/gwas_result.php @@ -1,147 +1,142 @@ 0){ - $s=$_GET['query3']; - #echo $s; - $query=$es->search([ - 'index' => ['gwas3'], - 'body'=>[ - 'from'=>($offset-1)*50, - 'size'=>50, - 'query'=>[ - 'bool'=>[ - 'must'=>[ - 0=>['multi_match'=>[ - 'fields'=>['trait','platform','source','stage','ethnicity'], - 'query'=>$q, - 'fuzziness'=>'AUTO', - 'operator'=>'and', - 'zero_terms_query'=>'all']], - 1=>['multi_match'=>[ - 'fields'=>['trait','platform','source','stage','ethnicity'], - 'query'=>$r, - 'fuzziness'=>'AUTO', - 'operator'=>'and', - 'zero_terms_query'=>'all']], - 2=>['range'=>['case_size'=>['gte'=>$s]]] - - // 0=>['query_string'=>[ - // 'default_field'=>'trait', - // 'query'=>$q]], - // - // 1=>['query_string'=>[ - // 'default_field'=>'platform', - // 'query'=>$r]], - //// 2=>['range'=>['case_size'=>['gte'=>$_GET['query3']]]], - ], - ] - ], - 'facets'=>[ - 'tag'=>[ - 'terms'=>[ - 'field'=>'TI', - 'size'=>10] - ] - ] - ]]); - +#echo print_r($_GET); +if (strlen($_GET['query3']) > 0) { + $s = $_GET['query3']; + #echo $s; + $query = $es->search([ + 'index' => ['gwas3'], + 'body' => [ + 'from' => ($offset - 1) * 50, + 'size' => 50, + 'query' => [ + 'bool' => [ + 'must' => [ + 0 => ['multi_match' => [ + 'fields' => ['trait', 'platform', 'source', 'stage', 'ethnicity'], + 'query' => $q, + 'fuzziness' => 'AUTO', + 'operator' => 'and', + 'zero_terms_query' => 'all']], + 1 => ['multi_match' => [ + 'fields' => ['trait', 'platform', 'source', 'stage', 'ethnicity'], + 'query' => $r, + 'fuzziness' => 'AUTO', + 'operator' => 'and', + 'zero_terms_query' => 'all']], + 2 => ['range' => ['case_size' => ['gte' => $s]]] -}else{ - $s=""; - #echo $q; - $query=$es->search([ - 'index' => ['gwas3'], - 'body'=>[ - 'from'=>($offset-1)*50, - 'size'=>50, - 'query'=>[ - 'bool'=>[ - 'must'=>[ - 0=>['multi_match'=>[ - 'fields'=>['trait','platform','source','stage','ethnicity'], - 'query'=>$q, - 'fuzziness'=>'AUTO', - 'operator'=>'and', - 'zero_terms_query'=>'all']], - 1=>['multi_match'=>[ - 'fields'=>['trait','platform','source','stage','ethnicity'], - 'query'=>$r, - 'fuzziness'=>'AUTO', - 'operator'=>'and', - 'zero_terms_query'=>'all']], - #2=>['range'=>['case_size'=>['gte'=>$s]]] - - // 0=>['query_string'=>[ - // 'default_field'=>'trait', - // 'query'=>$q]], - // + // 0=>['query_string'=>[ + // 'default_field'=>'trait', + // 'query'=>$q]], + // // 1=>['query_string'=>[ - // 'default_field'=>'platform', - // 'query'=>$r]], - //// 2=>['range'=>['case_size'=>['gte'=>$_GET['query3']]]], - ], - ] - ], - 'facets'=>[ - 'tag'=>[ - 'terms'=>[ - 'field'=>'TI', - 'size'=>10] - ] - ] - ]]); - - + // 'default_field'=>'platform', + // 'query'=>$r]], + //// 2=>['range'=>['case_size'=>['gte'=>$_GET['query3']]]], + ], + ] + ], + 'facets' => [ + 'tag' => [ + 'terms' => [ + 'field' => 'TI', + 'size' => 10] + ] + ] + ]]); +} else { + $s = ""; + #echo $q; + $query = $es->search([ + 'index' => ['gwas3'], + 'body' => [ + 'from' => ($offset - 1) * 50, + 'size' => 50, + 'query' => [ + 'bool' => [ + 'must' => [ + 0 => ['multi_match' => [ + 'fields' => ['trait', 'platform', 'source', 'stage', 'ethnicity'], + 'query' => $q, + 'fuzziness' => 'AUTO', + 'operator' => 'and', + 'zero_terms_query' => 'all']], + 1 => ['multi_match' => [ + 'fields' => ['trait', 'platform', 'source', 'stage', 'ethnicity'], + 'query' => $r, + 'fuzziness' => 'AUTO', + 'operator' => 'and', + 'zero_terms_query' => 'all']], + #2=>['range'=>['case_size'=>['gte'=>$s]]] + // 0=>['query_string'=>[ + // 'default_field'=>'trait', + // 'query'=>$q]], + // + // 1=>['query_string'=>[ + // 'default_field'=>'platform', + // 'query'=>$r]], + //// 2=>['range'=>['case_size'=>['gte'=>$_GET['query3']]]], + ], + ] + ], + 'facets' => [ + 'tag' => [ + 'terms' => [ + 'field' => 'TI', + 'size' => 10] + ] + ] + ]]); } - //echo '
',print_r($query),'
'; - //die(); -if($query['hits']['total']>=1){ - //echo $query['hits']['total']; - $results=$query['hits']['hits']; - //echo count($results); - //echo print_r($query['facets']['tag']['terms']); - +//echo '
',print_r($query),'
'; +//die(); +if ($query['hits']['total'] >= 1) { + //echo $query['hits']['total']; + $results = $query['hits']['hits']; + //echo count($results); + //echo print_r($query['facets']['tag']['terms']); } - /*function get_previsoue($offset){ - if($offset>1){ - $offset = $offset -1 ; - } - return $offset; - } - function get_next($offset,$num){ - if($offset<$num/50){ - $offset = $offset +1 ; - } - return $offset; - } - function show_current_record_number($offset,$num){ - if($offset<$num/50){ - return ((($offset-1)*50)+1)."-".($offset)*50; - } - else{ - return ((($offset-1)*50)+1)."-".$num; - } - }*/ - ?> +/* function get_previsoue($offset){ + if($offset>1){ + $offset = $offset -1 ; + } + return $offset; + } + function get_next($offset,$num){ + if($offset<$num/50){ + $offset = $offset +1 ; + } + return $offset; + } + function show_current_record_number($offset,$num){ + if($offset<$num/50){ + return ((($offset-1)*50)+1)."-".($offset)*50; + } + else{ + return ((($offset-1)*50)+1)."-".$num; + } + } */ +?> - + diff --git a/gwas/gwas_result_template.php b/gwas/gwas_result_template.php index d84d2ec..35d2f6f 100644 --- a/gwas/gwas_result_template.php +++ b/gwas/gwas_result_template.php @@ -108,4 +108,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/gwas/helper_functions.php b/gwas/helper_functions.php new file mode 100644 index 0000000..b923b7c --- /dev/null +++ b/gwas/helper_functions.php @@ -0,0 +1,104 @@ + 1) { + $offset = $offset - 1; + } + return $offset; +} + +function get_next($offset, $num, $N) { + // get next offset index + if ($offset < $num / $N) { + $offset = $offset + 1; + } + return $offset; +} + +function show_current_record_number($offset, $num, $N) { + //show the record number in the current page + if ($offset < $num / $N) { + return ((($offset - 1) * $N) + 1) . "-" . ($offset) * $N; + } else { + return ((($offset - 1) * $N) + 1) . "-" . $num; + } +} + +//get facets from the query result +function get_facets1($query) { + $keys = array_keys($query['facets']); + //$keys = array_keys($query['aggregations']); + echo print_r($keys); + $result = []; + foreach ($keys as $key) { + $terms = $query['facets'][$key]['terms']; + //$terms = $query['aggregations'][$key]['buckets']; + $terms = str_replace('"', '', $terms); + $term_array = []; + foreach ($terms as $term) { + $name = encode_facets_term($key, $term['term']); + array_push($term_array, ['show_name' => $term['term'], 'name' => $name, 'count' => $term['count']]); + } + array_push($result, ['key' => $key, + 'term_array' => $term_array]); + } + return $result; +} + +function get_facets($query) { + //$keys = array_keys($query['facets']); + $keys = array_keys($query['aggregations']); + $result = []; + foreach ($keys as $key) { + //$terms = $query['facets'][$key]['terms']; + $terms = $query['aggregations'][$key]['buckets']; + $terms = str_replace('"', '', $terms); + $term_array = []; + foreach ($terms as $term) { + if (isset($term['key_as_string'])) { + $name = encode_facets_term($key, $term['key_as_string']); + array_push($term_array, ['show_name' => $term['key_as_string'], 'name' => $name, 'count' => $term['doc_count']]); + } else { + $name = encode_facets_term($key, $term['key']); + array_push($term_array, ['show_name' => $term['key'], 'name' => $name, 'count' => $term['doc_count']]); + } + } + array_push($result, ['key' => $key, + 'term_array' => $term_array]); + } + return $result; +} + +function encode_facets_term($key, $value) { + //replace space as '___' + //repalce . as '____' + $value = str_replace('.', '____', $value); + $value = str_replace(' ', '___', $value); + $value = str_replace('"', '', $value); + $term = $key . ':' . $value; + return $term; +} + +function convert_facets_post($string) { + $terms = explode(':', $string); + $key = str_replace('.', '_', $terms[0]); + $value = $terms[1]; + $value = str_replace('"', '', $value); + $newString = $key . ':' . $value; + return $newString; +} + +function get_rid_of_sessionname($var) { + $result = []; + foreach (array_keys($var) as $key) { + if ($key == 'SessionName') { + continue; + } + $result[$key] = $var[$key]; + } + return $result; +} + +?> \ No newline at end of file diff --git a/gwas/pagination.php b/gwas/pagination.php new file mode 100644 index 0000000..06ea503 --- /dev/null +++ b/gwas/pagination.php @@ -0,0 +1,62 @@ + + + +'; + echo $max; */ + if ($total_num / $N >= 1) { + ?> + + + + + \ No newline at end of file diff --git a/header.php b/header.php deleted file mode 100644 index def756e..0000000 --- a/header.php +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - BioCADDIE main page - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Mountain View -
- - \ No newline at end of file diff --git a/help.php b/help.php new file mode 100644 index 0000000..4d3ab04 --- /dev/null +++ b/help.php @@ -0,0 +1,185 @@ + + + + + + +
+ +
+
+ + + + + +
+
+

DataMed Tutorial

+
+

Overview

+

+ According to Wikipedia, “In golf, a caddy or caddie is the person who carries a player's bag and + clubs, and gives insightful advice and moral support. A good caddy is aware of the challenges + and obstacles of the golf course being played, along with the best strategy in playing it.” This + quote is emblematic of this project because bioCADDIE is designed to help data producers, + disseminators, and consumers “play their game” in the new era of team science. It will give + players insightful advice and financial support to implement new ideas. +

+

+ The bioCADDIE team will develop a data discovery index (DDI) prototype which will index data + that are stored elsewhere. The DDI will play an important role in promoting data integration + through the adoption of content standards and alignment to common data elements and high-level + schema. A DDI could provide the means to test the utility of these standards. It could serve as + an incubator to spur the types of quality metrics that currently are being developed around + article metrics, including citation analysis and altmetrics. + +

+ +
+ +
+

Introduction to Boolean Logic

+
+

+ Boolean logic is a system of showing relationships between sets by using the words "AND," "OR," + and "NOT." (The term Boolean comes from the name of the man who invented this system, George + Boole.) Boolean logic is recognized by many electronic searching tools as a way of defining a + search string. +

+
    +
  • The Boolean operators AND, OR, NOT can be used to combine search terms in bioCADDIE.
  • +
  • In bioCADDIE, Boolean operators must be entered in uppercase letters.
  • +
+ + +
+
+

AND

+
    +
  • Used to retrieve a set in which each data set contains all search terms.
  • +
+

Example: Skin AND Cancer

+ + bioCADDIE + +
+
+

OR

+
    +
  • Used to retrieve a set in which each citation contains at least one of the search terms. +
  • +
  • Use OR when you want to pull together articles on similar topics.
  • +
+

Example: Lung OR Cancer

+ bioCADDIE + +
+
+

NOT

+
    +
  • Retrieves a set from which citations to articles containing specified search terms following + the NOT operator are eliminated. +
  • +
+

Example: Lung NOT Cancer

+ bioCADDIE + +
+
+

Nesting

+
    +
  • When using multiple Boolean operators in bioCADDIE, they are processed left to right.
  • +
+

Example: Cancer AND Lung OR Breast

+ +

This will retrieve records that include both terms Cancer AND Lung as well as all + records with the term Breast, whether or not they contain the other two terms.

+ +
    +
  • + To change the order in which terms are processed, enclose the terms(s) in parentheses. The + terms inside the set of parentheses will be processed as a unit and then incorporated into + the overall strategy. This is called nesting. +
  • +
+

Example: Cancer AND (Lung OR Breast)

+

+ This will retrieve records that contain the term Cancer, as well as one or both of the terms + Lung OR Breast. +

+ +
+ +
+

Search by Field

+
+

Terms may be qualified using bioCADDIE's search field tags.

+ +

The search field tag must follow the term -- you cannot prequalify.

+ +

Tags are enclosed in square brackets.

+ +

Example: Lung[title] AND Cancer

+ + Reminders: +
    + +
  • Boolean operators -- AND, OR, NOT -- must be entered in uppercase letters.
  • +
  • Boolean operators are processed from left to right.
  • +
  • Use parentheses to nest terms together so they will be processed as a unit and then incorporated + into the overall strategy.
  • + +
+

+ +
+
+
+
+
+ + + diff --git a/helper_functions.php b/helper_functions.php deleted file mode 100644 index 5362e8e..0000000 --- a/helper_functions.php +++ /dev/null @@ -1,108 +0,0 @@ -1){ - $offset = $offset -1 ; - } - return $offset; -} - -function get_next($offset,$num,$N){ - // get next offset index - if($offset<$num/$N){ - $offset = $offset +1 ; - } - return $offset; -} - -function show_current_record_number($offset,$num,$N){ - //show the record number in the current page - if($offset<$num/$N){ - return ((($offset-1)*$N)+1)."-".($offset)*$N; - } - else{ - return ((($offset-1)*$N)+1)."-".$num; - } -} - -//get facets from the query result -function get_facets1($query){ - $keys = array_keys($query['facets']); - //$keys = array_keys($query['aggregations']); - echo print_r($keys); - $result = []; - foreach($keys as $key){ - $terms = $query['facets'][$key]['terms']; - //$terms = $query['aggregations'][$key]['buckets']; - $terms = str_replace('"','',$terms); - $term_array = []; - foreach($terms as $term){ - $name = encode_facets_term($key,$term['term']); - array_push($term_array,['show_name'=>$term['term'],'name'=>$name,'count'=>$term['count']]); - } - array_push($result,['key'=>$key, - 'term_array'=>$term_array]); -} -return $result; - -} - -function get_facets($query){ - //$keys = array_keys($query['facets']); - $keys = array_keys($query['aggregations']); - $result = []; - foreach($keys as $key){ - //$terms = $query['facets'][$key]['terms']; - $terms = $query['aggregations'][$key]['buckets']; - $terms = str_replace('"','',$terms); - $term_array = []; - foreach($terms as $term){ - if(isset($term['key_as_string'])){ - $name = encode_facets_term($key,$term['key_as_string']); - array_push($term_array,['show_name'=>$term['key_as_string'],'name'=>$name,'count'=>$term['doc_count']]); - } - else{ - $name = encode_facets_term($key,$term['key']); - array_push($term_array,['show_name'=>$term['key'],'name'=>$name,'count'=>$term['doc_count']]); - } - } - array_push($result,['key'=>$key, - 'term_array'=>$term_array]); - } - return $result; - -} - - -function encode_facets_term($key,$value){ - //replace space as '___' - //repalce . as '____' - $value = str_replace('.','____',$value); - $value = str_replace(' ','___',$value); - $value = str_replace('"','',$value); - $term = $key.':'.$value; - return $term; -} - -function convert_facets_post($string){ - $terms = explode(':',$string); - $key = str_replace('.','_',$terms[0]); - $value = $terms[1]; - $value = str_replace('"','',$value); - $newString = $key.':'.$value; - return $newString; -} - -function get_rid_of_sessionname($var){ - $result=[]; - foreach(array_keys($var) as $key){ - if($key=='SessionName'){ - continue; - } - $result[$key]=$var[$key]; -} -return $result; - -} -?> \ No newline at end of file diff --git a/html-contact-form-captcha/captcha_code_file.php b/html-contact-form-captcha/captcha_code_file.php new file mode 100755 index 0000000..b384565 --- /dev/null +++ b/html-contact-form-captcha/captcha_code_file.php @@ -0,0 +1,94 @@ + 0xFF & ($int >> 0x10), + "green" => 0xFF & ($int >> 0x8), + "blue" => 0xFF & $int); +} +?> \ No newline at end of file diff --git a/html-contact-form-captcha/monofont.ttf b/html-contact-form-captcha/monofont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..ec6c51b2640bafbf046060a8e2b594905dd5e7dc GIT binary patch literal 41036 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 SyQDLSP-N_L`0;nd!2ds0@g5HV literal 0 HcmV?d00001 diff --git a/html-contact-form-captcha/readme.txt b/html-contact-form-captcha/readme.txt new file mode 100755 index 0000000..1f3d3ad --- /dev/null +++ b/html-contact-form-captcha/readme.txt @@ -0,0 +1,7 @@ + Code downloaded from html-form-guide.com + This code may be used and distributed freely without any charge. + + Disclaimer + ---------- + This file is provided "as is" with no expressed or implied warranty. + The author accepts no liability if it causes any damage whatsoever. \ No newline at end of file diff --git a/html-contact-form-captcha/scripts/gen_validatorv31.js b/html-contact-form-captcha/scripts/gen_validatorv31.js new file mode 100755 index 0000000..9110d31 --- /dev/null +++ b/html-contact-form-captcha/scripts/gen_validatorv31.js @@ -0,0 +1,808 @@ +/* + ------------------------------------------------------------------------- + JavaScript Form Validator (gen_validatorv31.js) + Version 3.1.2 + Copyright (C) 2003-2008 JavaScript-Coder.com. All rights reserved. + You can freely use this script in your Web pages. + You may adapt this script for your own needs, provided these opening credit + lines are kept intact. + + The Form validation script is distributed free from JavaScript-Coder.com + For updates, please visit: + http://www.javascript-coder.com/html-form/javascript-form-validation.phtml + + Questions & comments please send to form.val at javascript-coder.com + ------------------------------------------------------------------------- +*/ +function Validator(frmname) +{ + this.formobj=document.forms[frmname]; + if(!this.formobj) + { + alert("Error: couldnot get Form object "+frmname); + return; + } + if(this.formobj.onsubmit) + { + this.formobj.old_onsubmit = this.formobj.onsubmit; + this.formobj.onsubmit=null; + } + else + { + this.formobj.old_onsubmit = null; + } + this.formobj._sfm_form_name=frmname; + this.formobj.onsubmit=form_submit_handler; + this.addValidation = add_validation; + this.setAddnlValidationFunction=set_addnl_vfunction; + this.clearAllValidations = clear_all_validations; + this.disable_validations = false;//new + document.error_disp_handler = new sfm_ErrorDisplayHandler(); + this.EnableOnPageErrorDisplay=validator_enable_OPED; + this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB; + this.show_errors_together=true; + this.EnableMsgsTogether=sfm_enable_show_msgs_together; + document.set_focus_onerror=true; + this.EnableFocusOnError=sfm_validator_enable_focus; + +} + +function sfm_validator_enable_focus(enable) +{ + document.set_focus_onerror = enable; +} + +function set_addnl_vfunction(functionname) +{ + this.formobj.addnlvalidation = functionname; +} + +function sfm_set_focus(objInput) +{ + if(document.set_focus_onerror) + { + objInput.focus(); + } +} + +function sfm_enable_show_msgs_together() +{ + this.show_errors_together=true; + this.formobj.show_errors_together=true; +} +function clear_all_validations() +{ + for(var itr=0;itr < this.formobj.elements.length;itr++) + { + this.formobj.elements[itr].validationset = null; + } +} + +function form_submit_handler() +{ + var bRet = true; + document.error_disp_handler.clear_msgs(); + for(var itr=0;itr < this.elements.length;itr++) + { + if(this.elements[itr].validationset && + !this.elements[itr].validationset.validate()) + { + bRet = false; + } + if(!bRet && !this.show_errors_together) + { + break; + + } + } + + if(this.addnlvalidation) + { + str =" var ret = "+this.addnlvalidation+"()"; + eval(str); + + if(!ret) + { + bRet=false; + } + + } + + if(!bRet) + { + document.error_disp_handler.FinalShowMsg(); + return false; + } + return true; +} + +function add_validation(itemname,descriptor,errstr) +{ + var condition = null; + if(arguments.length > 3) + { + condition = arguments[3]; + } + if(!this.formobj) + { + alert("Error: The form object is not set properly"); + return; + }//if + var itemobj = this.formobj[itemname]; + if(itemobj.length && isNaN(itemobj.selectedIndex) ) + //for radio button; don't do for 'select' item + { + itemobj = itemobj[0]; + } + if(!itemobj) + { + alert("Error: Couldnot get the input object named: "+itemname); + return; + } + if(!itemobj.validationset) + { + itemobj.validationset = new ValidationSet(itemobj,this.show_errors_together); + } + itemobj.validationset.add(descriptor,errstr,condition); + itemobj.validatorobj=this; +} +function validator_enable_OPED() +{ + document.error_disp_handler.EnableOnPageDisplay(false); +} + +function validator_enable_OPED_SB() +{ + document.error_disp_handler.EnableOnPageDisplay(true); +} +function sfm_ErrorDisplayHandler() +{ + this.msgdisplay = new AlertMsgDisplayer(); + this.EnableOnPageDisplay= edh_EnableOnPageDisplay; + this.ShowMsg=edh_ShowMsg; + this.FinalShowMsg=edh_FinalShowMsg; + this.all_msgs=new Array(); + this.clear_msgs=edh_clear_msgs; +} +function edh_clear_msgs() +{ + this.msgdisplay.clearmsg(this.all_msgs); + this.all_msgs = new Array(); +} +function edh_FinalShowMsg() +{ + this.msgdisplay.showmsg(this.all_msgs); +} +function edh_EnableOnPageDisplay(single_box) +{ + if(true == single_box) + { + this.msgdisplay = new SingleBoxErrorDisplay(); + } + else + { + this.msgdisplay = new DivMsgDisplayer(); + } +} +function edh_ShowMsg(msg,input_element) +{ + + var objmsg = new Array(); + objmsg["input_element"] = input_element; + objmsg["msg"] = msg; + this.all_msgs.push(objmsg); +} +function AlertMsgDisplayer() +{ + this.showmsg = alert_showmsg; + this.clearmsg=alert_clearmsg; +} +function alert_clearmsg(msgs) +{ + +} +function alert_showmsg(msgs) +{ + var whole_msg=""; + var first_elmnt=null; + for(var m=0;m < msgs.length;m++) + { + if(null == first_elmnt) + { + first_elmnt = msgs[m]["input_element"]; + } + whole_msg += msgs[m]["msg"] + "\n"; + } + + alert(whole_msg); + + if(null != first_elmnt) + { + sfm_set_focus(first_elmnt); + } +} +function sfm_show_error_msg(msg,input_elmt) +{ + document.error_disp_handler.ShowMsg(msg,input_elmt); +} +function SingleBoxErrorDisplay() +{ + this.showmsg=sb_div_showmsg; + this.clearmsg=sb_div_clearmsg; +} + +function sb_div_clearmsg(msgs) +{ + var divname = form_error_div_name(msgs); + show_div_msg(divname,""); +} + +function sb_div_showmsg(msgs) +{ + var whole_msg="
    \n"; + for(var m=0;m < msgs.length;m++) + { + whole_msg += "
  • " + msgs[m]["msg"] + "
  • \n"; + } + whole_msg += "
"; + var divname = form_error_div_name(msgs); + show_div_msg(divname,whole_msg); +} +function form_error_div_name(msgs) +{ + var input_element= null; + + for(var m in msgs) + { + input_element = msgs[m]["input_element"]; + if(input_element){break;} + } + + var divname =""; + if(input_element) + { + divname = input_element.form._sfm_form_name + "_errorloc"; + } + + return divname; +} +function DivMsgDisplayer() +{ + this.showmsg=div_showmsg; + this.clearmsg=div_clearmsg; +} +function div_clearmsg(msgs) +{ + for(var m in msgs) + { + var divname = element_div_name(msgs[m]["input_element"]); + show_div_msg(divname,""); + } +} +function element_div_name(input_element) +{ + var divname = input_element.form._sfm_form_name + "_" + + input_element.name + "_errorloc"; + + divname = divname.replace(/[\[\]]/gi,""); + + return divname; +} +function div_showmsg(msgs) +{ + var whole_msg; + var first_elmnt=null; + for(var m in msgs) + { + if(null == first_elmnt) + { + first_elmnt = msgs[m]["input_element"]; + } + var divname = element_div_name(msgs[m]["input_element"]); + show_div_msg(divname,msgs[m]["msg"]); + } + if(null != first_elmnt) + { + sfm_set_focus(first_elmnt); + } +} +function show_div_msg(divname,msgstring) +{ + if(divname.length<=0) return false; + + if(document.layers) + { + divlayer = document.layers[divname]; + if(!divlayer){return;} + divlayer.document.open(); + divlayer.document.write(msgstring); + divlayer.document.close(); + } + else + if(document.all) + { + divlayer = document.all[divname]; + if(!divlayer){return;} + divlayer.innerHTML=msgstring; + } + else + if(document.getElementById) + { + divlayer = document.getElementById(divname); + if(!divlayer){return;} + divlayer.innerHTML =msgstring; + } + divlayer.style.visibility="visible"; +} + +function ValidationDesc(inputitem,desc,error,condition) +{ + this.desc=desc; + this.error=error; + this.itemobj = inputitem; + this.condition = condition; + this.validate=vdesc_validate; +} +function vdesc_validate() +{ + if(this.condition != null ) + { + if(!eval(this.condition)) + { + return true; + } + } + if(!validateInput(this.desc,this.itemobj,this.error)) + { + this.itemobj.validatorobj.disable_validations=true; + + sfm_set_focus(this.itemobj); + + return false; + } + return true; +} +function ValidationSet(inputitem,msgs_together) +{ + this.vSet=new Array(); + this.add= add_validationdesc; + this.validate= vset_validate; + this.itemobj = inputitem; + this.msgs_together = msgs_together; +} +function add_validationdesc(desc,error,condition) +{ + this.vSet[this.vSet.length]= + new ValidationDesc(this.itemobj,desc,error,condition); +} +function vset_validate() +{ + var bRet = true; + for(var itr=0;itr= 0) + { + if(objcheck[idxchk].checked=="1") + { + selected=true; + } + }//if + } + else + { + if(objValue.checked == "1") + { + selected=true; + }//if + }//else + + return selected; +} +function TestDontSelectChk(objValue,chkValue,strError) +{ + var pass = true; + pass = IsCheckSelected(objValue,chkValue)?false:true; + + if(pass==false) + { + if(!strError || strError.length ==0) + { + strError = "Can't Proceed as you selected "+objValue.name; + }//if + sfm_show_error_msg(strError,objValue); + + } + return pass; +} +function TestShouldSelectChk(objValue,chkValue,strError) +{ + var pass = true; + + pass = IsCheckSelected(objValue,chkValue)?true:false; + + if(pass==false) + { + if(!strError || strError.length ==0) + { + strError = "You should select "+objValue.name; + }//if + sfm_show_error_msg(strError,objValue); + + } + return pass; +} +function TestRequiredInput(objValue,strError) +{ + var ret = true; + var val = objValue.value; + val = val.replace(/^\s+|\s+$/g,"");//trim + if(eval(val.length) == 0) + { + if(!strError || strError.length ==0) + { + strError = objValue.name + " : Required Field"; + }//if + sfm_show_error_msg(strError,objValue); + ret=false; + }//if +return ret; +} +function TestMaxLen(objValue,strMaxLen,strError) +{ + var ret = true; + if(eval(objValue.value.length) > eval(strMaxLen)) + { + if(!strError || strError.length ==0) + { + strError = objValue.name + " : "+ strMaxLen +" characters maximum "; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if +return ret; +} +function TestMinLen(objValue,strMinLen,strError) +{ + var ret = true; + if(eval(objValue.value.length) < eval(strMinLen)) + { + if(!strError || strError.length ==0) + { + strError = objValue.name + " : " + strMinLen + " characters minimum "; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if +return ret; +} +function TestInputType(objValue,strRegExp,strError,strDefaultError) +{ + var ret = true; + + var charpos = objValue.value.search(strRegExp); + if(objValue.value.length > 0 && charpos >= 0) + { + if(!strError || strError.length ==0) + { + strError = strDefaultError; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if + return ret; +} +function TestEmail(objValue,strError) +{ +var ret = true; + if(objValue.value.length > 0 && !validateEmail(objValue.value) ) + { + if(!strError || strError.length ==0) + { + strError = objValue.name+": Enter a valid Email address "; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if +return ret; +} +function TestLessThan(objValue,strLessThan,strError) +{ +var ret = true; + if(isNaN(objValue.value)) + { + sfm_show_error_msg(objValue.name +": Should be a number ",objValue); + ret = false; + }//if + else + if(eval(objValue.value) >= eval(strLessThan)) + { + if(!strError || strError.length ==0) + { + strError = objValue.name + " : value should be less than "+ strLessThan; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if +return ret; +} +function TestGreaterThan(objValue,strGreaterThan,strError) +{ +var ret = true; + if(isNaN(objValue.value)) + { + sfm_show_error_msg(objValue.name+": Should be a number ",objValue); + ret = false; + }//if + else + if(eval(objValue.value) <= eval(strGreaterThan)) + { + if(!strError || strError.length ==0) + { + strError = objValue.name + " : value should be greater than "+ strGreaterThan; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if +return ret; +} +function TestRegExp(objValue,strRegExp,strError) +{ +var ret = true; + if( objValue.value.length > 0 && + !objValue.value.match(strRegExp) ) + { + if(!strError || strError.length ==0) + { + strError = objValue.name+": Invalid characters found "; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + }//if +return ret; +} +function TestDontSelect(objValue,dont_sel_index,strError) +{ +var ret = true; + if(objValue.selectedIndex == null) + { + sfm_show_error_msg("ERROR: dontselect command for non-select Item"); + ret = false; + } + if(objValue.selectedIndex == eval(dont_sel_index)) + { + if(!strError || strError.length ==0) + { + strError = objValue.name+": Please Select one option "; + }//if + sfm_show_error_msg(strError,objValue); + ret = false; + } +return ret; +} +function TestSelectOneRadio(objValue,strError) +{ + var objradio = objValue.form.elements[objValue.name]; + var one_selected=false; + for(var r=0;r < objradio.length;r++) + { + if(objradio[r].checked) + { + one_selected=true; + break; + } + } + if(false == one_selected) + { + if(!strError || strError.length ==0) + { + strError = "Please select one option from "+objValue.name; + } + sfm_show_error_msg(strError,objValue); + } +return one_selected; +} + +function validateInput(strValidateStr,objValue,strError) +{ + var ret = true; + var epos = strValidateStr.search("="); + var command = ""; + var cmdvalue = ""; + if(epos >= 0) + { + command = strValidateStr.substring(0,epos); + cmdvalue = strValidateStr.substr(epos+1); + } + else + { + command = strValidateStr; + } + switch(command) + { + case "req": + case "required": + { + ret = TestRequiredInput(objValue,strError) + break; + }//case required + case "maxlength": + case "maxlen": + { + ret = TestMaxLen(objValue,cmdvalue,strError) + break; + }//case maxlen + case "minlength": + case "minlen": + { + ret = TestMinLen(objValue,cmdvalue,strError) + break; + }//case minlen + case "alnum": + case "alphanumeric": + { + ret = TestInputType(objValue,"[^A-Za-z0-9]",strError, + objValue.name+": Only alpha-numeric characters allowed "); + break; + } + case "alnum_s": + case "alphanumeric_space": + { + ret = TestInputType(objValue,"[^A-Za-z0-9\\s]",strError, + objValue.name+": Only alpha-numeric characters and space allowed "); + break; + } + case "num": + case "numeric": + { + ret = TestInputType(objValue,"[^0-9]",strError, + objValue.name+": Only digits allowed "); + break; + } + case "dec": + case "decimal": + { + ret = TestInputType(objValue,"[^0-9\.]",strError, + objValue.name+": Only numbers allowed "); + break; + } + case "alphabetic": + case "alpha": + { + ret = TestInputType(objValue,"[^A-Za-z]",strError, + objValue.name+": Only alphabetic characters allowed "); + break; + } + case "alphabetic_space": + case "alpha_s": + { + ret = TestInputType(objValue,"[^A-Za-z\\s]",strError, + objValue.name+": Only alphabetic characters and space allowed "); + break; + } + case "email": + { + ret = TestEmail(objValue,strError); + break; + } + case "lt": + case "lessthan": + { + ret = TestLessThan(objValue,cmdvalue,strError); + break; + } + case "gt": + case "greaterthan": + { + ret = TestGreaterThan(objValue,cmdvalue,strError); + break; + }//case greaterthan + case "regexp": + { + ret = TestRegExp(objValue,cmdvalue,strError); + break; + } + case "dontselect": + { + ret = TestDontSelect(objValue,cmdvalue,strError) + break; + } + case "dontselectchk": + { + ret = TestDontSelectChk(objValue,cmdvalue,strError) + break; + } + case "shouldselchk": + { + ret = TestShouldSelectChk(objValue,cmdvalue,strError) + break; + } + case "selone_radio": + { + ret = TestSelectOneRadio(objValue,strError); + break; + } + }//switch + return ret; +} +function VWZ_IsListItemSelected(listname,value) +{ + for(var i=0;i < listname.options.length;i++) + { + if(listname.options[i].selected == true && + listname.options[i].value == value) + { + return true; + } + } + return false; +} +function VWZ_IsChecked(objcheck,value) +{ + if(objcheck.length) + { + for(var c=0;c < objcheck.length;c++) + { + if(objcheck[c].checked == "1" && + objcheck[c].value == value) + { + return true; + } + } + } + else + { + if(objcheck.checked == "1" ) + { + return true; + } + } + return false; +} +/* + Copyright (C) 2003-2009 JavaScript-Coder.com . All rights reserved. +*/ \ No newline at end of file diff --git a/html-contact-form-captcha/thank-you.html b/html-contact-form-captcha/thank-you.html new file mode 100755 index 0000000..ac69dd6 --- /dev/null +++ b/html-contact-form-captcha/thank-you.html @@ -0,0 +1,13 @@ + + + + Thank you! + + + + +Thanks for the submission! + + + + \ No newline at end of file diff --git a/img/biocaddie-logo-transparent.png b/img/biocaddie-logo-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..2e52ede46b8c55bcf6b353b074a329bd2875288d GIT binary patch literal 9812 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 literal 0 HcmV?d00001 diff --git a/img/datamed-green-medium-light-transparent.png b/img/datamed-green-medium-light-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..932b3ad8ead98f346fd3b96dbea1ac5d99ffb9f6 GIT binary patch literal 20110 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

*OFhS0*rhEXVdGeLlzWFaj7GXz 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 literal 0 HcmV?d00001 diff --git a/img/gf.png b/img/gf.png deleted file mode 100644 index 7089f558e3e2903104d9e1774dcd7a4ddeb3d257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15929 zcmWk#WmJ=090z@AP(r%9MoNcBcQcwH-Q6JF?MP{*8%DL0(E+%X{(I-^ZD3&S&@Z`pOUinIAQX3XNiuTHyn|`iz6TN&`qwy-wY<9V+M` zd(Mz$zj@8Dpiu5Pk~$BWgTEJ0p>2$2MI{zZ5uJ z8;{=qN|8Ql;20yL;d_4Z+@$YbuB){^?3&5~_h zS3lD=f>_gUU>G1~+0jcS?4?$qTgX?os1fkcdUT0ezBtTIG20OqJlFnMuN5eU2{JI8 zUA?K_c;?jVye;=XPSDvRUR#Yl_l%@^sI~^EzV1AOwEdGBnM2oag*ySD&PPXNkQi^Y z?7KmG>ww$+9Mu2}@raBLvNL2?jD}$uyW)d=eiLb2ekSJb$~3q&1ep9t`sY1+DjWz>)nN>1B-_-BU@azh zy>_4!AH<#;%rb)s<({+0F93XOS~)uqCzSoT^(fWeAZMg`E;ux=86StGNN*2cPg&O@ znHJfFh=Gi>^51v|9q2U6wk3^%mR9Ll#MG&v6OSWKg3LMJ!RW8-GuwD>6PB=`BSGMN zvkcG#zng}sm3m9Z4jDNE0zH-fo4lqAI-V~2Sa$IR z*?YQ3)6Q4zq2)=Rx9=mkB6V+<$GttkVQP9&b^Jx9YiEQ1onj4T&vDdcNz-{BzwP{N zO}rG(tFEQHX1SgUP68l*>%(?scA4n^y`-d@solOs-*B3Om8zOc~iV+|XvpoO6{ zRN3I~>NgJ)cyLyM!<#aa`z#=hixGAywvGg#T&%y1M&@rY!kXf&Dk&3w2qt9_*UX}B zVDG3@)_vB}QqLg7yLm4CPmTW~E|VHfIxK~WU8`RTj8&zf-nfKR!!Rw#zr;8iFaFmI zjfCjPY6QYvBi-awe_qE>xHdkfQTDX+j^kUf7bpV)-*Tsc@R`cE|6tPekEEc&XqKkh z^O$L+kfWObmNX@Q?1g{d!FZ4$1&7tynp8N5;tz|B?&8h7*nOy3tLCUf^x+kQVsxF} zvH&)=qxhX+)iOtsGKW(3JX1815@Gb=J;QBQ^mvyu^xAbLc@F^7HtB=x7_p|Rb0PAz zx_3Jx_jq(fx*mYUMeUz8JzcDlKCvWH0YI}+$#Frx_=W@SQp41&|s3!1?b zXRcip4l|)>u?v{pe}{@~cs56Oj+1E680<(Rg6AgAN6ObWWWSyt#MFj_KUXtX9_ zPb5E^k1O3^9+O_H{aw1L0TsR8;TZG=tDwwoikLKI^{Y4WDfbI^MilPCW({ey&U@~C zgI1f_*tVs-9%rYxlKdgMY%HY6rQx#u~L zHCWEP)3=Gf=M&cazO!GfpUgM}X2br%c(1dd`QN27F0k{Zo2R@zGUUl*rsm>xv$=)! z=Zmn*^R|}-p`RXkmDt6?B?RB1Cz?2odF?`LBx;T6zG^2Q_9YFYt%I0)z0~!Ri{5kv zs%uZ|A~5uPuls7oVwQuq=u}yX8N$CwhZ>>14m+2;J1>~Ec;e({kz4?*!xUc$oyG&m zrD@G3%p}lIf65&Q<^T7CXU;Rmd^YOmXf1}GCri!ea%Zex<5k|0yWj0i;V*Ch>T`O~z1h{=`AxbYPb5nx_!SOa+TKZk5BfZ|Kr;uUyK=NmTxFWWPxrd)o*xm`o3oJ6cN)v2FRs|=K2NN5VS zv0aUKsAj>y^dF6-WX5wZr|PoDhj@=9ux(I>A&jCj7sk6_Tl%)_9D3xvTAzkRwQgbR z!~hMJOP1MRvP@DuoRM_q;g4H$zU`*8^KFy% zyn4%*$TH`E^a}DQYLzQQ8P>0}kJYU1eQl|7;u&YCeyu}niKd$UC_+%jh=@SKB!i1A zbWNtz3(<(7vfCRZMz%f_7U92&#`)qG$*cEO>kn19K5&>J>LB&b#JVBdzy7>Q)Mnbc zwo#$TtP|oi5r{{qo!e-&B^N@2!^LU5*KZrGe?-?vPx>dNuCv7cG0vs8&%GQ&XvdA0 zc4qpM9SeO_+eagrcukv72F=g%9-kV}Ynn0$RIq(PO>MPG8AwiHAxwsL9Ri6u#jnT= zya)U08m7%oFW$ex@>0R3iEv~vJi zR&GgCU|dpWSbnY@HX~>t71c%HT@)TU?cXs~`r8%?b0d20qnbg%F+aj`GvLvy92R{B1ZR<}lvqu~Xy`wRH7lJ%Gj3(Xc1?Gcq zS9?=|L*{nTQT>h|K%xKz;}2ATxE|D?yojGdD_tSu#Cuf)#fs9_gd6F(EW!dwaYfD zy@hoYiJ{4+g;oGoxAMkNW>}FZe7CD;Lu5IWhAH3ielG6CfQ;-xUW!)!M3JxqFw4F` zOxg?U5sPPy3?SQ0%j-S-7#JIV#GEx*dn|fa8Zt9hI6v`5rA)>MIll@QNA>Ren~#i( z0v#}jg+!e>k%ac!#IYcq_kL46ZP@(fRDi^?ivUdh|B$4mVmD)gZ#VYlISOcnx;#Wn zOFN+ul4$sclzrZ(Ro-qllxGj4I_jLlVf=B=7#1r!2%YIxtLH6^X7%EbSxw>VP41pY3hArAgF1%y?o2DbucY$F69>EA~vW!3Pa*w?5{%r+Nh zp`RQA&nzU;x1)aWy?dTZ!|xwMIHReweJ z_MjDlY1qG?@bLsFEJ6aS>qHXY+f+qvtH`1$#?pcH~{)K zZ^|eDvwog)RjPro`SdPvPxIrGuSxy~atb|MUP=5CMI?9$##~F9K8nN>1weh!Gl6@1b zai??ZT9%;_+5C0kQ)=b?4_j!toyEsZSm>f*Re55~B9~U9l0-rEe-zhwzi^J1@hxM{wP&KC2hzVh_nyhyd=N;KI=E7xQgw;eK zjlkRji?h6I)TdZG{>Qx14#=Z*WyABS-)`Z!5qN zYaY6p(fnj~1?RThv4wj3JmQ3)f+~05M1|`s-ag~`%wNhL&I`w;L=Bzc*m@N~Nd0f} zJ93G^u;^rr_ZxT1p^m1;L0<4$`;gSWPDMlhW_%XIZr26Dv!6vX`j%N!qI$})nxz9- z%8U=ahQY1QQvJn5=j~SX3nyn3Sq|$xvxw+DBNM5Qj!>KqWra|32k|m*L}-hZAQGm2 zzuiaUzNZJ_X>VTK-%Ys%j&m70?bqgBc!*rgv?kK0GJNIHMdJ`Yr?pJ>EX*9$ek z7y|jtm1!Sr9JT{C|IM~fE`sP!xm5ygl1(34KJKM&Us-i{sSBkZF|>ib8*2&W3+STb z(6M*=e>-hoquQ+Wa7Jh|m{>(D$x`Q2AKN5-r@8`7 zqB}!%#qWk>vwNf8$JtgT+1sGi7(Eyin$l_rC|bTlW^1J@astxo0^4oBs;szViBbPv zCFiJ;?iXh(SUk^{<9iG0$cUvMG)*EVrNd>Yw0rbVbHn?t=hwrI@HY)-R^yz{^^%#( zkW^2v{T=I{2bpl}@YK z+nDOzS}0#n_yZGzj4r(@(}$iv()C<(V@)1@RcPY*p4(_hmbfqf3n=NaJBY8e3+<$ zn_N|@aTl0xQ&&U}*k$;7sHCl<1UuC>5&;EfjfAgP>gmlfd>2YmIt0!glbr_7p&? z;Pqb80yLf@xiC7nmPHGSomOZ`ak7o>+1+8WIROU*Ab;>+$tx^w!WA=%^)>W^ediW< z#GGtfMe(p@1t+enN8i|l;qT%Qj&)6l0;`E8&LOrbX=M6?WtgO=rfO>qH20+R$aYsju|P>w z56%`_>d1n|AtKSe7kZ`Ggq1lmACRgwz&cm!AH#{ye2_|vcAQHE10_4iqK?_qf3TJ} z;>qQFs8F3@NYF6iP3mRmmLmU)9{%c&gNnwS`Wb2VQHOYhcEx;Ri3Qpg$Ahb0TS+4V z4abuqO0#8DSU8vfl%yK#Er=b#Jl~iV zOEg#`uKg>{4_H_YDHlVeIw;sTVY*^Z%5?^<~4zydeE~RY`t>S69Wl$C9%%(Cnt4NfTvg>+FE*NP-1l3%hrGr;l;?yD-aQLa-_mbzz2wdOaM1NhE?47O zK$`&Y`r-mHUL+??S@f&0h5TFam9;rwf+4vKrwzy3L+q^5{lDCpA_&(BE>=@{;t+{LBMH8|w6q*N?({bHp&Ta3iTp+2o22tNV}kG<1i8GobrQnLKM8EbNdg@kk# z7I`asMF$ySRx`my#m*-_jcETu?4|!iinT~M&ZoGJ?VUEwPGQOP47`Zw*82aQ%PB1G z5^FhV`Wx4|dC{I9&^%~b%3_h|FxV~(k05+m2&sfXE8k|M_Xw?$Q@#yG#w#9KP$D<7 z&fdvk4WUGhqhfT!13 zm+I|-gGkLSMVjhfcMdjD8n4Zi5fbwsGK#Y1Qu}z?zcH2)p_&nJxMtTUIBLGC*5=5Q zBxUSM$b*Y^vz$}z02?m^*q~zfn&=MD>SN|WsEfQvq?XV~d)|c<7@8sNGZFa7YPSYyr4){3@toQ|V{(N*P zYu2XU8@5yj`w5jd@G$a+}33maBs7;=fzlXw4b$P`rv-u>BBW^v3-82-5i_%DRT*9*O z9|y%tW?Z*eju@%OJAyNyjAL(EoW!%ih&1h_U_ zEZYR;yDKv5u%{=-d@&jZ&71djI_rWxdgRODhzt2C~7e!$bq0zBF zoRuA9naxcpi>i$u!9*?{q;N(s6;@(vj!{OE0eS`t8K9_H>sHJ=@kA&Mxh~tv+n=_U zG1DJ~w%F^6ZkUg^<9PFmfk(@0#w%LcKc?*#Y$@A!BK6rF{qO}Xm{ne$?zIk?{F(Ia zpI|XrH>a!UXfdKs6SXZpeD%~q{p~yl+fzKz>ORzY8}9q6Y+Lk%imKt;NBm1`=2)99 zl-!SN#;3>~XgbxY2PTCUn!(40n9x)`!>Znj`+Z1&ORNYmG4+<9H*dgCjfSl5g*W%( z@~KEZ8B4sBi}hV-(EC16Js4o2F+beA6Yd$Fu;8IaGcR@*fGw4B24{I^7Cv{4zn1xn zBe+YU^88i*;ZmrWx@Jum(?cs(z~f>;x?0arslb#rdJFHvczx2o^dCmVS>4{vwmuaS za7_2sKpT}*C=ydPaD<_InFsUFl46#Mzy78*>B;}&XE!Y)-BOvl7v zK~G9+jktWQTAAD0Ycg(vbu7O1ste0a+I`0?E7}T!m9i=@)6m7x8i>WP8KH!36und= z`j)fEe&!>5+vl<%z~k5i zgV};^K%j0%oA)oF+?cKr^j(X9*eF76Rp(VlZBfs$!AO_qdD$P}QpG|oO%q#B;<9wt znahjHy~HSjK3ETBZ>r=gg8)btv#!3u7x)V}Diu>*8oY1+--2r&B_Xvs8Sx|i5qXPj zwBv4kDjJ;?7$=}f6C0B>TxYjvXk@Ri+}D-XVmMTwSI@*qM5LT!q&=2=;Q{B0zW@B{ zZyuEasEJm9se&@)k_2elXX1u7UFLfLUd~(ymUU?#bc5 zsBZ!ZasHTd2`>Qt_e#8fjQb-;OesPE*<)ckR?511HU)JTdK5mn$Nh&@08+0Z64rw5 z^3wM4iIbOGQ^j3zvaA>Gadxqod~g+Py^d@WU$!YU%3UrWHQI#E11ljxG-#u`;;o5u zyhrh_fKYAQqL&UciNquhdGGO7Ua$A*@v^S=DV^4SC|f<1xvk2B^sbXOG)$kCWC5u= zsw}0-pILKG(mg;O`7^fhJ3Bzphm3CeY@-)MIEJ9j5qsYQ=;Bo5EZcCl#oN=zgvb%X zarr;&8s|ajBH#GKn^N?VI9vbg{HvF9IrKmEs<-VACtYBOu>{K}T=Xr*B}s`J@?pNl zwK#9Is;?;p7e2Uh+LUR^yy|+TEW(<)St01NhBp7$zd-^*b)NbguAJT}e9HdM1Nc$W zLXy7?pN|Wy#6pu}-_LcoiUh+*qNxbvO`x}YWXrB%5kj{Zr^+8l80%`xZO=#KXcoL6 zdS?guEP5>W&MdIh(CPYsqokuy?dT3o2(^Wmh6JjR>03FO$D%(k_et|HopdCGP7npA6tm;Xm|~!EePYcpJgIURx7=YSc(Rj0dJ_Ygc;lA zq?(G366k4ELdvJgS?sapiPL%sV3hc&NFS6%a589p6QS1r#K)yZXR~Yqz#Yygf%o~` z$c?`<@4*mqbKpJ!tH0I?qzfK-KtSi0YNvb%vLAgk8eRS#-n$3$vV(1@`rgvL0cQLeU6lcgfv z9X_VPhpRrx@@hP3q#dRc;X|-UmvjS;qUIn>eS?5NzV^=xkkS~tM9z_1v~1nMZ||oL z^tU6(DhkmF_g=7uo(BB=lo=<)w1gNt zY*oJrlb-&}fD&g>F|<=UL~>D{JSoVBc{AP~oiZk(q%WhT81gMjW5JVniC-yA|X@Mg7;zRhzN5|&rJE?UWPu5ZMRm1oceqkUAh7c zHz&^`4Kdy!DD(?ah~4TbStS7ZtpMBO`R0{d&yT-?tm*b2afdB&P61z0oW`HXwb3=5 z(<|P}?a)I-UzMdARjwGC%+@A5T3q)SfB3*nBO^wvHtgCtyYY{1a3Bj4=pVZG&^&u>nEatR7D+wDXiv@5IC3KrI{RvsrHB6UJ4D# znmGI-Q_aZyn#-PG^#{h(z1LsOyoZ?*@AAabJkpv!WpX(}^;iBPpU(B*zua9&Z^!v9 z#;Fg^DMK0`QHAnDnTRTwG7bk*)43WSa36$keu%ZA7--II7(Sq-j6o|5;#EvrJO-Rh zb=Go-4%%?x;+gc+pdPTCMQ}XYn&V{ozMW{Vw-=8c31$X+M z`;WxdbHW3w*@!fntK+2E$R9=SPQcsD~dY}^j8S2jvC zv?0#elr~qy&>hX~9seZ^o@@`-Lt8noLMUo!xY2j0ulqD5$LP5FVkf|PXGU}+5_CN+ zQN+@T@~~6nxu_5Q1KPh@yi1i`@E?8B#UpT)c@9!EBIP6m^$4UaY{A6@JO)?-I@c( z#4kR+YMhW!h(4m|4(A|#26O1)6`Q^9Z%bSs-K0%uiw}}J_U-G`2af0{C#3ZofFKC=&8}P2%gDn9( z(>Q7QLaC%*Eovt*nZ6wDA9_2VEiweHfa7 z;a>%@tnR1a>v1H1m9iL+sWM#tJU{`T@a7y`aQ|p(4>@A>7)9Ee_Ok>5`7Y&l8Cm(| zu3|*Zb@-{$Y`;rFpq6H=a6OL14xtE6?>CIB2=asf#IE(hlaQ(~3Cm$FuQJ<%%Zmh_ z7&lNr%vSyTH!}?wwYUfjY-YaKL<%yqkUiOd7tFSdBPExumpf*siMPpA0b-8Q+ZR-! zsSZFAg;V$)ySFaSdmN@~>!K|-k2RZZQ^sA^2b>YY?@eFV{qLqk^Fm~JOw#pB0JQnJ*8Fp*jU}{8H5y_p1PwDo!o{(K^ zWAfxv<5NmInMPI-d($V#V^#hw`Npi&Q-~~NCW)_^uWuTD$6x9`UIw3`_Mdz{#Ph;2 zP4zs%6`kjNQ?=I%aYGc`aG_>vT6(EaNl*;Q7KZDucm_f>VHEOmvH}o-A4;my?P6rH z*y_qwUXb>3tRwiw4j99F7H)sB>!nv{AqEIx1^V+#h8nSU@BrdT=?~ zYej(QG;#LzOk`M%;64xVBY|Le8tDX?NK#;w)m@{_+2*u z_fLkI?zl3Qj(&s*!DQBQ^n3CLQg{nqUNnHqKlqvz95gwdL0@f%C38@m;cavd0 zP{?oWH3dczmb{?b_3249Fx_A+$HFTLq7@=2EjGBMyG{VZ1Z9SbSIV34#vq9PW2C(e zMEf9Xrmd0giejmgHzRm7DNg8#DiWq+Gf*M6UDCHZm>l{P(vl6h?GU>X5ej$p)=+gdMqdjQHmUgE0W zFS2SO1;~4wr}Bi1@TLc##fOiJRD_({ezyBvNz90m3S%1|q3dWd%lq!HQ-S%8VO0uY z9pm}m-d)x;VFI7(hPY-+N-4M~TD|Dn8SiECOb0LP`{)LS^llCB{tf1EcgzX)p}p7% zT{bB1o@Dj=v+&;$8#M$Ho-2A!(?-sCxP*9rfxg42vi>ye*5dz^?0t1q0^hcLMc=eI zvfRw4H!=PC(p!8O@XdlNVB`?F^oBs~S*(5<5Kjg&X#nq&^q7#YV~}lQ`N2CwVWeOg zcWenx_?=G7edfs(eJ%N?Wt}aDcXnNB2AaG+kKT**K#P)ar8t*8Qti_JLyhSdf{zG4 zbU{6~8>UsMDFtV?*8)W!{!|Q9T81u7n!w1)HYecGs5JrF^OM-E1^uHClcI zz7OBn#(#dPY~#y@YnL(-r{NVm4O=-k4EMgTfIby#}S!U@yH40*Uc&kYoU%^N7&($?G1&5wB&T$9>Z z@cxwcaFWPVN#vgp*vyXTbBr0N90s`eN2qbv!G|5HTu)mPo)PUJive;^m{x+sZFhqAAZ_v%Vkpe9hho{RjC zS_qi%=}KZUejHyb)s!v(#+imdQ0Gc&!HhwIs1)|CH2DnMIpG(znF)Ts_4R>x)Izmo=ZB1Y zT;V&N{7@S5mViT!Mca0T&d>P9*)l{b*8s05-jhI+&4m2R_YZz;quUD=058K z{pG;3zz~hM6QDacMe>4oTl)3>JSiIR^r69#|M|rna9n+HusfSTTXu{1f#_&Cv1mC1 z-NA9?E8IPIwMk2)Y!nHX2jMNG>K%SH3z+pdh;`@d@4=aBv)Bp}d3FD;lC)ou@PJ*= z@c3cIvD*2X=-optdBx|Dmr}*BY{g05{x;lc3XgK7AR-3ku z6ddzjl9o%V(Yy#LwRj1Oy5ow9x=?~e3+bDgTO~mMjgjKaYV38hNtznp<&Tuj&4Ur% zotd^)??Mc9Hk(!+TzCVQ0Y1AOiMbs*6{wBR?^dzz?ZeCjKHXwvtBM`AZ5OU4=5#bm z(&E6qF9Hv#^MEr^KQSu@b`p0scFYs()UXt`zI9V(J<+O6oLgDc-_^f_olUj{)xLZ7 zNT_|W-S&YC^Sd~)?li>5jZrDAECGDB#{nrJxPN9lDmeUW-NcHuL3Lj02yp9y4gm&r zOa7~4wmuK!o2X55Vm<<#F!_g7Qb^!Lr&OS6I>xEQ4IM$f6@mh!=#VNx=)JcWWwzm0 zREq+&*n=M*lJ`qk!5^u-Hpgv1&Geh3 z@rfE4mp|yxfPg(lV9g@bzu~j^a&Hi*GbP zbYQN*O6@ySq%n6=XzE0Ka-;u2z;l1(ri0;%!d)hEGK*|r1Dq$WY8pw;7LCDCl)76c zy!lbuEq&J&n>X9UpOJ0DJV{P^p!{`h!3$+I^AVY#&PkZ!Q=jPx=4$q{P&N6pUOSsc zb;A*JxUn7p?ikH7nTbjOS4+YN_M{#TnJ<%X>WbdLsm8eL;9@9@Yh zFKW~Ea$E~zgtO^ATFR(L5H=b4qX7IfwOd1Nj6d)S{ae})9!>vjqEQ4ra2SfHCK7Ps zCf6s+H4h<#$T6CNRor`#|3TdSQAmtgCyNT8j^0+VQm#>8iFur1xNUrPWH^vz4=+4kEdQPS=E}+|wAKF#c5~Zz)Hx+SCxKPY# zwm3ZD!RMn{-VIT{=fJb0dk$0IYy51z2SgPP|A_-pqk3v4CU~`&8#~(TfHnP$TG^cA zeo5ZiQ#|U0$KuaqsSX~h&w%N0(dSbS>f*f4qpb?ondKtp7#UVmxSHqyRuXpKk4FLhLt+GX#7)aJJYZTJ|u*-`yzg!bAVhpkhJ;u?!RAwH=1xSr2Vvgl|X2q z_a*IK%zIkR@8Un9Z_x4J%}3bRDcpnrZW?sX!~6Uj-7!j!m{EMiSX|8Wj9XPm5J&`y zN*|>>ogbga_Pkv|3QhYquH3eTU?TJeKluA+%4WVcAw71 zy3PN2r6oF;PuyN!$P8oXvNb`6!$H%^M|i~{>+`jtfYaMcyLxGt%Yp z&dG$Tl{8WH>v*cIG#TH9=}F4z4sC%7U*_b2fs|ahzZP6C39?fAFw6=k8YGLI(GL3r zQ%1?$ab;!g5#WMlYS5w_9O3CS=Nbo+TBTD;{>&C<`4s2>_SB0FTLErqD1lE*1c!Zk zd-`v-I-1RRJgN?%tr{eZJDuSnU`S`ItOi^`D8Zg_ZN34pmtBFL<$q&fb4} zn(760K>ZRoAG9wB)tG8RLTJivO@3^lW5RFRlW*p?{5#h9RZFRcFAoi8Q*p8j&vRsHx?#vN`%6CioGQ ztCV9_r9IIoYjrrng6wmc*=|d(S;6b{`{sn#V)ClO>G~jk?GIANO9r1Czv_Q%pDKM? zU1KV)whn~FS%KuY%t=0eumj;#SAIPWst;i^TXsmCdNPf$JR+W+vv05UuV%_v1RK+KP3ITGyN?{ zC$Poy{y%24>b8&Pe8E5PzXB6SkijT@k0&M9l%|;ssq*UYdlI&cWSh3J?Ff^qm^*QD zJQjVrE38q(kFu#4B!#!=wQBXXY{mJeQ#Bg%YX`Z?Oufq8&*105-kHW#EV`MjC#!3Dzoq??~Pc&3- z&1AzPK{Gyv(BtWY`e8l~Eqmi?zc()k$sGJ2xN80=F6wM4!>8!2?i%FfI464*je%rj zN!OeHjozGzXblxncmIeG|7n0$Blc|ew-sk8vn4F290lUEl|M@D^ha*Z-5ofE1Fs@>#m6gk;+{VOmZqeF1=Le8e@8JRb+O1q0?j? ztFD!I`n3jp2zuwu3(ncHLMc7Lt((>;(jcv z!_x9%WYM|zZ$a_+wte+kQtw>EjMImeV-wDg_@~TM_D?HK?as%kU8iFdKGYp;aGu8u zpOiTgl`G{|#s{{pJIqI5DCVH!vg6MrfEReoHO;gL-D&w8>(9#P6~;JGNRDq7RlFO2 zumfy~e!@t^AVP63RP2sD@ z6_4ry12wT5l)9$o8LRC)aFbS5KJLL!4!?T|i0HJDEZ0H_O&gc~{RGt(V z96@rL=Tn)VICkx>fb_C(G(<^{lrMV3A4~yKnK5Akn4-p4?eYC12jCSZk7^BFT@U;A zEf4t?Dvkymr(gDbjvqa5WOSKv%nq7^d6Srb_!`%FTYR73B>D`iJe2vqI0io*n5z8+ z5(fp259{E`3(R6Y_I(&`>eq;Fzal-|RlV%l>FXL9w~XHwmuFG6cwMTUxS5ouU)ESTL=l|aOm z+yh#)Hs-|3mg^3^FUgR+?uI|`_^5765yyxemZJopKyi3!d%hHf%E9FL!oh!(wKM0OQ?c!iUm8?=9$XLR{0XQ^@-_H8Oa28=qpbY6H_Ht+8 zb%((SyT15v^-f7o$cW07jDMQA-hk!0|6H!!u?LSHsT@OC`P953@sbjZp!_lv^_Iw>y?a_;;YWAy&^Sv~;2Y_fe`ZS=OZe>tWhWLQJ->Vx+Z3 zB6c-X{VBx1W*i6UX!`3_eF-opph{%IM#AK0i8m*;@P_am3ZnF}US@HU_leI)!LY3A zx2i6CAS7H7)G8JuQX}Pc(Bjy5_9V;Fd{TUbTD@tHZjJaQVvaxW2@9VSN8?ed_Sr9~ zGVvR!D{?P<*UsadI>%@+i<@ygGPj$rG^fmW#aZoF#}fFRjfUeH2+WIi+w;ci+dE_D zOnRa<#7O8d3VW-9On0ZNLiTW`?#*jh%ij|>dNu2D~4uVGP={v^cb>yC~L5B77#vtd%JDZVdx?##_COjGp6|NGNeV zA3lZ5eAE{EoN@Uu7VSB3XxCF_Ss&4NP}VDmTqZswY*i1`0CG#gBHk%%+PlB+w9F#Q z!h)Z--L5OoXVOlDy=c#H$w*_R>dBQ`>}a_yna`YA_U0k?RVNec-mc35mAvv~~&rN=3k*ajm1UMlU>=ug;K07Cgj%caW~ zkvO=NlZTJGxlN3@sZH~@0R8HofYT@OvUN_$B|ZaJ%L-Vtc4UtOAJhZbuBFA>xe_Ez z*U)A>*PgeISCPS09pF|tb=ZUl8spei=-)Yy?YuHu)$IVU8QEtY(jMfI)3xO`f-4-` h@{b}syB}W>J3U`&q%wAX!q0*u$V;n8RZDyc`5#y2EfoL& diff --git a/img/help/and.jpg b/img/help/and.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba92120c0a894295f638a88596ffa8b059a41435 GIT binary patch literal 22943 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 NYgMRiCd|D5Hvx0wolF1# literal 0 HcmV?d00001 diff --git a/img/help/not.jpg b/img/help/not.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48e8ed6aa2d5588a3ec975c8749b2db6f2f3251d GIT binary patch literal 22026 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 literal 0 HcmV?d00001 diff --git a/img/help/or.jpg b/img/help/or.jpg new file mode 100644 index 0000000000000000000000000000000000000000..abd7c135d2f5094bf6d279ec87d722672aaca0b6 GIT binary patch literal 20130 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 T{6oa`gn?hD=KoEYGx0wFci6!D literal 0 HcmV?d00001 diff --git a/img/id.png b/img/id.png deleted file mode 100644 index 1bb175c43cf3ada87523a3fe84471fc01022e97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9551 zcmaiaWmH_vwk^`QlZ3_{f_soaa1RpP-5r88ZVB$5KyVH2?)u>t+}&y1;q9Dv&KT#8 z`{VxDy+?J8s$H^b)|zvzurCTy7^sA(FfcF}GScG8z7g2>Qp8Rq*B<@@2&s;f@FXaEF(B{7I^=t(ZzTYqnR}=<5 z8zH_^>I?-W`ktCX*#FxXF_gAOLlYvM)0JeiYwK&@w$szwknNhWIqIc(xYad39{vXY z7XIO}ybA{;5=e!N zODyuAB1$y*-(u`K&>W}*iqejte-(iy|5e;E~ zTu2m*hePO5yU<*fZAHe-eIn*`3CpFqXcTMXBr_(Uo8-sR-)|mZrkObyoqC&HYD4nd zi@RrZA=m|@So%BDirhBQE|nTTtg(9Vn=+)@P;8V_DXE&eH<_wFF|0NbRSj*p`T_9p zhzXk)PS5*jj!v`0bTnTLd=qNk(U35HnXSV!*YFy=49BO(ok3vx?QE!OE>Gf zBraskxTC1$xUG^dLaYx~pSA1plhrW%{28Scj>pi4x{=L}@D%^`vt0P_r52~i`lKy= zSH`U3m!%er)^&{8;O?Rk(O`SRsoI3tEc$P$NmD%qg3IG6ZeCcc40>TavKm=^vpb(P z!p$0)Zke9!kNfB*3h$>p0>tdjxR0&xVVIM9VBp#!G|liXjPc0dn{!`XWV!vdkJr(UO z{@Tfw9W;j5K!UN$ebvmg@2XAyE-X8aA?|mWSp3IX3kek5<(LfpLWGKB?*QD!>u*Y7IrX|etseN23}Mofef29LOV7Z_-8IpOwWK~bZR=MwVl>T?cK zEp0ru3)__R@gF36>0JzwR@3CD`<@djQ0d+v$Pac$K@Lal8XNA+N=w&HQ!;*s_5A&S z#DX(90T<@(hVJ~@4PQM^2NCun&+o77%vOBWSJPb_FBPQ)6$EFAW&I&ZM-#Ru=-PPn zjQzYOnC3K*UE6nXkrAV`Jn_0inTW*W8$Cm=5W``ceW#yD*A3K-O_l_wKU@%U%&a?J zxzezV#GZvF?8{&fKNNlR;4m-HjY&^k@D<%cAl1>q+}H`qG;)2$gxqyn=Bxki_c%~- z6zP{6ks%Gi_jubzjJvEDVIP8mW$S@KrtXd8`-R#`Sy%AoPCs$*&>jd8|Yr0j4xwlN+&NY5VJW|sdh|~Js`Y$k3bqP+sr)1

`gyFQa+8-RP`KwRq|1+y&dE2 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 diff --git a/img/pilot-projects/DataDiscoveryIndex.png b/img/pilot-projects/DataDiscoveryIndex.png new file mode 100644 index 0000000000000000000000000000000000000000..b77e5fdbb6fca1a4318643c0db1ccfb6d69fa8ca GIT binary patch literal 6750 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 literal 0 HcmV?d00001 diff --git a/img/pilot-projects/datarank.png b/img/pilot-projects/datarank.png new file mode 100644 index 0000000000000000000000000000000000000000..64a4ad28bce8ab421cf0bbab9adb536113441e6c GIT binary patch literal 22090 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 literal 0 HcmV?d00001 diff --git a/img/pilot-projects/iSEE-DELVE.png b/img/pilot-projects/iSEE-DELVE.png new file mode 100644 index 0000000000000000000000000000000000000000..edc9bf2820b66085d85a3be2e2b673e3548ba916 GIT binary patch literal 8915 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 literal 0 HcmV?d00001 diff --git a/img/repositories/0002.png b/img/repositories/0002.png new file mode 100644 index 0000000000000000000000000000000000000000..cdcde9dd85692a6bdde59090de10ea637d8c73ce GIT binary patch literal 16065 zcmaKTWmH_vvMBBrB)B95C+OgVTLKJDaA%Oprf#B}03GVI|+}$05yYu+&J?Gx{ zCqu+H7}f5JrXvgtR?j~VY&;Vd>02c+L{bByVrvR|MfvLV)8=8TY!GSsL@1d=wU<0z&!U z7+8ZLhEz~%D;r0CsNl!{;>-V5{->JtBh`PQKr976{Whn zDsFBTb^sSQH#;*G2OB#FE8E-6{h1xW&&AEp!9(@0>*Jd=2NP3%WeKT&$$EnXKbk`z zcKocYE-o%CE}Sg34rZ+Ee0+TW@ZjM1{D$$_(bWcG2>op1Nd0dP5@1JT2Marhg{=+M zKO7B>Y@Hy2AKx_n?ZLR*@i;Cv95L-ucTRSRo z6>chekfE`K%|8_k|3v`;@qe{(gc#ZwgTG1$ethG>Vqsyz&%?(d$t5Mp#m6PV!Okwp zDGK1@5$6=+<6;*T~ z)|%?S8qII{kgPUi|!PIBt>FC;VZP{1G6(m5G&2?d@*HGgI#zDnP^TI~j{d&oJ?q zu9QqqX-&#q_OK}b8Navpo$t_D8i4;d)lUb`nDnIRBFlq2OnsOI7y6*z?8Lmh>Q&kOM2VhytQKB1Ol{zwa z9L1O@Dzm$c5gCoh%O|_QrJhIk?7Xt6cyYs_L*o&B`VIroe;&uC!sXWi~T>%u%^_irc0dx=vjfXsa{(AzwE>d=b|*J@ZM8js9rO z^<(LC?D2%_9}bunmFJGar*@Amw)7&4>>HNcJEDoEW=)e(W*))hHn(HI;Ss+iws5s9 zBLZ63^w%HA$Wt1x`E0LVTMIElKa6L{uYS(mIvCSbjG2U6n#jT9b^oRk$apyBHS{T= zEwczJsWB;={zL+#kDpYDvAFmlTJj}?WAc;Z&JA+Aj(r%G+H@tH6r(plB6d#RtXc5h zus`G|Dg3f}vJt}qz$_3i;DC!M^L4$##fJaxB*qiiQQMqr1GvwDwYMU=@1Anq;S@;- zdf(3!qBjpDcMbK&K?y9k zKFLZQqx>wJkysb6v$#=b zik#YzQMh;aPr!TS&-uMc+IUKnZk4+ zuvTH}uW`wfw8lL<3`~p!N099Fa?FsD2lAjEL*Hq<9l4$c`Ui(_uN+?FP?U%l0i9&*=V@b9->1LXR}I{Q zTQ^z&OSo|I6q=3az#0wY$lczSWnUwG4p)@$QH4U)jBnZ7L>pu4qjvo*mD7_GG~^r9 zglX@x?_dr$-(z(bRPCEoL(#k%!Fmr)>*dPKUw=u`lAfg%wMOtn8vSVku=~Q1d(He<({-LDcm>Oy?cr;};D)T? zI3tjM)inSZZ4a|)ES;wk#0liXUPR+4WfnV9=lquURlZ=A-#0^_GY5$G&TH^6`Ia?1 z3hNqGq^7Avl#C4smqfa(tj*xe3$!rSFTx1sd@rO?mJgBrDlu)RP!|Q7i;C(36UtUZ z720b;Nm8|GB z^VPZ}#WwqjfDx_uW~`Sobb`>@`Ebs=tm{egVLP$P>|t3EPIwPP6$*AEY_w`E=xS@O zg%lA#3`W8>m0seXR^-}#RIE%|uucyP0_t&GBh`y6i&`aQEHTw3(rpIyVnvA3BG78M zc0%=vV5JBlXAz>^2T)lK!Pad|x=&2?)%v3qYyxB`53nJG{q6~I zs-dJp@q^8i2hx$k(y7jr9Pb`r&n8o5T3`gcQz@{t`8(E<{aOs-Obe&keCY6Doj;Cz zZJbVt68&9=ugv4}@Y11MH29;lH7nj-89=RqC5?@)GBrI*Gx*D|&#!0Wr>+JO$TF_i zAC;$a#@Ykv$8RsZlZmJFzKB8=cmdt6ERRJ!9cgJ^(;4z(lkG4QAKZ5l+quKL1^>+UUhBr4*nO)L1qD){x?%f#V!E zS6@XgE$(WA3ZJ%^v$+P5+kd9ylxQ*p4&{*`gAs zuV1x1^QSNwoo>2nof-M_x^Lvr*p#Yg(uAozMZQOV7n!1KCo39}O0P8$Pb(RGpD);vEnh`Vk{hqRz%lwQau z)qsF(EF#xgO}u&e!wIHVl0o+PI?OLobmWdwDZ^QIsbfl7J3pvN^$?#*?^K}Jz z`TUe!n}-u)?{{tpyfGKkEkHdIqZGAPXQ4CKbIj>e#x??a2>amDydHk;mxd0c);(1o zOp0$JGu9IN52ItQ#>?$HzGrq}7pfhs02^K>^tUxq`{sfHaY5bR-FzCWW40g{6I~eE z;f}iFhVzB);(WS%eOb!fCoICW7UL0gn&4yNl3OnAty#A4)GY1jLVnymgA}KL{3N`F$(>*Cl z*Xp!Mcu_!zq}kkbfcyfVAr%ey@YIeA+E1SzFb6w#-nbF`ws*z#aIJXzR2-zo_a4i}m;pCILJaNgaMPsZin zDms*ApH0)q3m9_DRYmRIT;f~1g4}h%CV04c)cmh9GTC|f+{G5tD+>o(zZFxg;p<4h ze38j94iwne7j|F=5phmtldPw`7CDYmZc}0g)#o-WH~t#>sre47VQRi=UxMRb<pVo<|tU<8N1Z&Q0ay#*v=y}Q4n*KuiaVa`1|0JVk=w2 zxP9c&g4hflR;W?xyDus*ec|(^>4I^cI|7bX0VXkcE z7cigtJ2pOE0#M>0B!lMUXyJb}wu2=IOO9{lVfQ^V)HNo*{;ss;U>;6zSl_#1x;EszK(!ob&>m-Nme|5u#+Lg-yk0>q@_V zmFDiG-i#N0ooXyKwZ9*pl;k7jb#0P}?}XXDyOUtt7ZSZ)hBSV-@pI9=CtwWt7QN^L z5(kxeo_}?-JI4f=?W!t1t#3|q1C*Ss1<84}sjnUkp(~!y z>W>wIXYM$N5^M^kg&b4GLoiQ&7{Tx=O)-IWbcqr(v6O7{bGbNEDB~{X3 zX!>)|^DuEv+JPe}1^sr1lf>%vUHCk2hi(-WR!|q~z88nN1+@#B-uJTx>SI-#+8iHd z=S&W8<&zTv!`Q?9X_7C3N|DB&vS5fUiUIW0;T%(f{xq{Rj%JhC6c2#sC9{*PnCGPf zHdeX{y78JI%E!C4?d`E{=VlH&g#$SfiM8k6Sg}aVSiG|DRv9od-@D}K*clYdRC?w0R=Tgv+_)7{0jBko-t>rO8WMG&Vh zc!Dvn{>BF%@Yqsh@72eRbEYa(JXQerBHxv;j{EWMoDs}2rI0fFke)v@{iaOGlzqJ( z*kfR7)0HOzs;LtZAGOR__xDs4*D^(?6a277Z%V*$d0?-u@@4qsnS11eY+x)PJmqWyB8>k zPVDcn=+#_8LO3u;DuxGTfVLIJC`d;lv@CJZfXUGa29_CY0Lgu&LBfZt$lL zPbrcgY<>9SFs?foCuV#a1OMK&aeAS1h{H4|#-g^9yM^7;J)JsvN^ftf9+U}f(6c*j0Uhmue@}tnp z34PvpxlCLhd~|V*Jf|xZxtqcDO}@^D3Ok!$LW3=fPm^=LH+45}TUD#cfit~?tNII0 zP#`gm)x6M7G3a9gZZ?~zgrzoe=|WXvOjU3baM^<_IF*o;2fe?~^mg7?7f@%=Abvoe z^VH9n3QiX?gcjiB8jkofvXko;nycFIkC4SuM+%BBobz7wWG6#5@;aB<*<#~{nC#x! z<<0nY{tle*BWl-YU*`4bd}r#7RjjonU_Q6%9~Tw(5d*-=6`Ca{>Md&w4@$KQ8n;Sn z;MXQ@ll^3$8uPfzPp8h>uweS zuc*ODd}S%`xu5#ljzX87q#9Ullzq5{Zt?aZ&IbSeuk#C_D_AIi)f$qcRkz{<0fjbJ!NOCfBWT0y1I z;e3mn7+f(MNuZx2cyj9#bLdwxv%(S7wc#QA}DdmzK|?FOKp)?0%^k$ z%sEe-AC4B8YAbP;3TjBFM(`*qiPxu6uz3K5VT3WLHcA>A$}23pWwboDkmW=u-!=-; zcpXIr><>y{W6MO~O<3~#a!#>#T~S@(eu;)u>wgNI#W8%}%b^=tT@!Z%LrDm^$CoE% zx{>#q4GobToG*ST&yGvhp7Tw|3%}#x;_c~hymuvqR%7kk8Ef_a+=}gckD_bXe;KBX z8P~pOw{VUeii+4GuJMAeN7>1#L#4MTA0}g=lO0Nz=tIyW7mS z=f7TEL@2u%%Dy{={dpkC{e9_#2VK@;%yZzhZ$()mRPnoZ+^(=8jsjrx#b;Uw(XG+`r%;*HBqZ_m2;$ zx(HTMQWK0<<^r3CNCeWvWTii+Ij@V4{QC!Ug7VkT`MnP>U%+^&QhJ%`IX`K!?8Ul#;|Q*K z(fe=hKk7%E6As=f5vj1fCLM%i_XZtgGjN(tWgPNS2+DjMMz5$(7@s8Xt#Q_8IA-Dh zwbaY>i)3fde!5{^;Bla=)-z`piZJvatRQ$*L4Lii{~J(qfy+h0TYj zh(C}Qk$U;USZ0%jM<=LqM09>>uCg*c_!xmzY~HNY@sXKQgh|U9#@R`eoqVw}`ocj> zFK%~$+q>iDXKM1@W`+JeDFWXWre?7sg*>`f1gzC+ownookV7ca&bFeq`*w^vMMA)c z`g|Ki$)I0!m9~|OiTCV@%oH)jW0)%mN#XdLdfd1#dFuXn!JNh5y2QhS*-1_@ULP;} z19G*HVHjl$LngDu4ukpi3!|H<3j4E@%DXr3R{R9zriWeM7o`FXXovuojaN8jiYRpz zb)vKu-*PFc;l#5_b&=xNPE%3+vs9nQuQzWR4mnBuOMLNdtH)>Gs3 zNm?!?`l5tmDZBDRLcDVE^qqAd|y3Sjyj%N-7eZ!#%hW4HfnSv>D)` zctK)KKBch-*liyGn!5TQYlVeYDaA+)@6#Z1WPz1tWx(LAO;#oGo0rkn zGn(RM*+}mY=ZOuIj@^$Cp$vNv>2JUvaMlkxMV* zb^;QD{y2)9qh8I15+1l?ugY35c>Xr;hIeppM39!j+w6&=Vzu%1!7DYlIIgn95WjSh zQGz))5B*~9AwYM%RQzOPyN$GtMUt3#O;(q!=@s5n{d`vJXfEwa+B*2y7~jlPbS5EK zyM-{RD$)L~GANnX3MXBdJ@Y*)k-|?_Vpj5vmdZwXb1Q?{4iIaS`59V-lI)j)B6-9t z3%LeZE243r@h04Qw*3**jtOIhJ~hZv$mi?de4ouNzO0qhZjm{6E!t$N{B*vMY;Cu+ zKET%4e2SpakhLUDFR?A4Cb+ICs0h$oa7fbAt4`-W;U55_4bgDx?DTUK{;C{tndHQo z2Gmad>2tovl>pqKjY=755oB#R1F?Pkz`=!mNGP0jE`q;*YC9M=A3Opom z;95b*QX|3^T+nW9>MlCfa6xDJdAPNhT_7bqGry;_2geMAX7Z+rTdTV8N8O2_*huNb zDO2E^AJ9_TBjPMXP5Lh&VWp-)*ck)n5EtL6`c!s>m7Wu66ur(b}L;k?g zIDlm&aF4UaIzxuNM&g@W!;O`uc&eUvM4R1`+EsVCXTh9P{sn@L&5>eC*U%rG?CKzH zJ3x(-BQl$dr2jnw=n~~GzEJ}mV0KO!_w+JHbPJxMoh{{$WLHwTD-WM&LL}4^_w>WS zB^iBQqihZvnq#K#A$7AR#tR7<_tcwIKNiycsM#kDeUd%P6(`Vf_2iQ8{B-TFV zfbMxi%v!EET(AP(cJ{c(G*TQ7etUIp`1fCfz0(;c)F&L3*8YTx_K~7`;~Vlh;~vLP z$F7nGyDuQ1({4n5*JkYW^yCoX4fBtSt-kjKF~x}RkL!h)9^H;l<8t@I_r8-+X6{5< zUqyX_a*ED3lZ-5VVV6n`Y1?>One62H2$dYjbO-6jqO}?~nPej-7u7SeQ@WR2%Q@rP zE_W0rt>>uD0khczT3HRyRED-5IR;bwGsjWOC}mWE%*W7uPEC+4sw0-JK>@1p%~54I$|gow{unPgLQg4UI}t zxwILp=Z#?zyKdiioNUzoun&%Y$-W&+mE>X363GqfZ*wO{xF@Mep^-SGg$n>1bhN5`2 z!segdRgYj>Dlnj+U~`wtA!X zg-MvZSy-z{p)CzFLnO+ZjrBV9Znw#7=zB_BDix<5&c>i^!@LJa z)bS%%cfY!U*S%9bwrMAC;|#6YNMyqLQ}h-cu?H}mMfeC_SZ=_m6c?a)HSHm-uhkkN zrbmMym+_~LQ?Sl0RBRX6f5uED#|qL!E7!F5u_4<$gSP8~Vd(CvV*P&?VcJ$JykMwb zCw^g#F5RcYBipoLC}?5=n-Yb&Q-@wIEFb#JY!Vk(QPjNBD(=A8&JK75>}M-^-6c=$ zN5L0N6c1x-%7^m{0jC^+e=v$L>=<;ns`#g#-mTP_uQp=Q@aOIJZ5K`zwLo0$N-Ju7 zwH9;N4kHj-hJKp)HZ{3zhgVdJPp0Dt*WjRS1>Y@d=wW=urEL(kKu-WEyanszY96E+J@4Tpt`~QRP#8&@&DFp9+qPoQKLK~HjP@_y;m@OIItX5O{3M9oY0X`pZ2willqvV~Ekg5G$dp8U0@fx>E7h9IjdxPkOSG$@{T9h2N z?~itk9xnSn-gBD?uo}7v+)DFOSkiC2qa1^aci?A+EeD$A*#c?|87D|Ve&a#a-KuD{ z=bgE?XjFxR1W4M>Tijq|qkMGu6k~TK_+y4LTrkp+n{xdxtV7%h2`M@pue34%*X(4e zdVBfYgeLgvLMc?(R*|dc=Y%lE4vjhXSWpxJP{O7k37GOn^m^bf>=mk+zx5MSUEur+ zrX&v+r+^F{m$21k^{=TB)8nEA8zCbXP28^H=w44@6MvhTpno87Uac1> z$2*$v%Ikp%oWats8qvCjA{E{rmRV}Zg_CYpg47S96}8wfFnOXJ4A{EH{A~oazJf-V zTzr2yKK~*^E0q-y=zBRPwV3F21S5qYYJWRZ(mN4F=-z#G9-p3;vu9{AG6-5P^x&fG zP^cE4?}xp{^nBzZ(J!uC=pA!1>anr-ThP4&x>_7{aI?@xjXdnVBBWS&ZFnJijyFTT zJAZl_Y$Z@to)RMm;%;3bo?fqdDV?U8YQtV#N&U>OGwf}rQ;M#uBwr;lf+gXu&JUk>ewx#VYHhw2s*Ss5<``0u)=Yu9g7pAaR7@lMr zqXDbp)bxk7eP2rAA(hOdj!0E~fCY-Kusc48XmP1&(T0M$>OCAx@16Y&n|J6fnyStG zjk)C@&ML8l*YP>V{k{!;jnmCQs>S2rqPdzO!}0D8mYx725X(;c>5~~=nG~$%8H)5q z0vBY@DUsMHb3MNI?6LuAsIcRMxc2zsZty7x-BXB@!g z7}U6OO2O$#0)_D7!lGhweYk+il|EG-r=OFytTqML!InF1fh&tCg}Y`l*?lk{zMo0W zZrgjhH%dnElhT=H1*Gacdk)da(^7`;ea&mm%-(`CLk)GCLFtWVDnpX!DNJrAZ zQ-?181SjD2Le5iS8WG~T1(UiH9~fVAt%2zT$;c_!<@tPN7IGxeB2pt$W7zM?%HVzG z0)@2}8u)F~V1;-w_*1s!6pV`rFTG4&t3hgqP`z4*KN=NS@FYlb#LI_dRa9E=OVD=G z*87aBpikl2jiL7ZG?Rr%4<-X4l5nN+UdJ>QZ4!dUx~Wk-~su>(5$ zw-wkR zisCm)3-wwz7Fn2GbofR?)ChgsANY=$UGzv)cDt3sD1>teWKI5F*+qYyQ8=UB+t?+) zWMN}e&R$4&AZ9BX5ipQBOPRQ~T;=OmDhO2;a%irvS^eDeScrWY9yDP{Fu{Pr+$?wa z4dMBeHs?=}@&YGs+QhbV_t9O%(#J*-o%|)6%6q@}6$iXi{q+#%Qup+-6c_nSo&c7l z=s~QdZ;JWww8Dk4)kXtBgs)Z_pXHMM`e4&2Sn;x63?Q{LH0o{Z$vGMCnMEIOib8*< zLraJ=lLyA+qDl3j>F4sRJ*#dTM7Mvf=6hJyR9I|aG69`tsQSy_#OS_j?~rm#p;sL& zY9d0;lg0C>17O4baa41@<#mK&751rAeKj^eB`9L9!=)EdX(Gp}&od5Yi0$u3+IQv; zOfSrf`t`sJWCM*Y&h>LTFjbql&I3DRz;!@AtGJ3)+r?4E&dMDKsuAD|Cwrx z+G2JofZ*>l}PE8*ES4_*7zem93d;%i7d%W5Z<6Q2Q zOrhaHEeJU!r|lAr5&GD zDhrCVb|MN}B(%&PhYet_SSjkI>~))LHq6U1+Rt-&Le+qg&RO9(y3eH7O7#guu6WceP2_Z3iu9#XEWJgL9Agce!!l; z{%0<(E*A1?tv=y&nkh|u(CW?32RHm}_Mng9z6j$xyd8B4U83|9fJEQ?h<)R|W0139 zxaE5Otpkt8W>%~&d5z1ER?|jR<5j%E&FPgw93{0ICo9;mKZaWoby@n8JH#)#(c;3| zYk4C4W@1sJ0zHQfP$-6QwCg?oTzSlU%Cc?9F3qbgMe`fhs#v`HZj-^sJ1_7!p9j+D z&@FOc?-dE!t$Y?RADI+ZvC+YMK1$Wk`b`+*ZB(gXa5G66t|EuSm|aeWC4vsx!UgU1 zBHH(!Ap*j4JmQTu`~Sq0<+i4Cw>&V{s!`;QExQVWZyl*^cTwo*fY~AC)q%t%mt3P@ z;Gn+qteqcrf#~I~lK0iv*E5E@V6aGW0d`!?D_`7x zI$R;joNUL?#Z8}xu8WwT+f@9H)zSwASvIl1-ak2Uq^(t8=H3({K*4 zzuRh6R?)<$jYi7gWLZrQAoV7kuQp) zyJD%wnUpHRLg5|xC#1#U8bDUIo>gRKfpOx~k~3N4Md`Gnt|S3ngd+GWJ4nE|;t63w zmxuXqj(;ua_mi;c4ssa1*B$!E5QVdmYq`DXLmAhb4S|mZPg&K{Dm{ z*AL;=jpqgG((b85z}Tt9WeI!T(q)wN>6zJqzxVfmxcKLo1xokHpg-4{XP zaLk6CZSUhk+8#8#dTC_2er}s^-}#DE(!YU(tJXFa=25rh?)+Lsd#ZHl-z~F?x6sT_ zh8ZCDPkg}Yz;@;tb)p?x!yRwe%-B|4m@O6OO#BoNq{S=Ff)spa1T;ln3164Yd(<8{9h%rzm5b&U*M;P` z%vee4V5|am>fnhmhAoRPUS+Af=?Dq+JRT44_`X&eGI8OQzWr&ZBz{`@&nRu~f-z%m zOV7QWZnET(M@BRG!u!H0I@7n(87k?86F7ISt%Io4sq@e*mqY`4;n_6SQ2=*Y%Eper zTS}gseFi&EOWUTXS40$5weBOhq##!VDcpje11D8f)}m=Zwm!J;6V;yK2j2%#G*U*# zCDDU}o^O3lJL{%+!@X&ro`a*_3b*v~Os^JCQ=2sxnSH{a{{>JMJk2;^Laro;XQqR_ zTi)*DN`QdKj6}9I2 zk7fWPPM!z2-bu^Ju4*X!tvk*}`X|Jv2k z%&Uv*d4GaEl>`Sw*%KD`vL4Z{c_`J5ONiN|*mL4r%M?~s6>GmA^%sNxWl6eED*Rmf zWXHa_$vIbge0;T|uqoBK5d*q<$_*?m=&FUiEe1W z%y*~f8S?PlY@C}L|7%%49<^+B@4FRZ7KZP}JngXOl`z#>>zKJ6%&}>6D_LDIrH0P> zEpXVOPmgsx>n$OeOv?<5A zZXj}6EbnhzZH9(l-Eo$O8Z9(jOkN(O1QJfJiudo&{wACpZy|d)w|x-{3=ZE6*eE7k z%X*}^NA5_ouNa*kKY^V41N4qSB*lhNS^8lUlr$_RZ zF^`v`Y5s9wux>B%S#z^uk-~}_S2*QLeYyIc33g7TgERwBSq?cOBdgrw;+u@DY_>k| z+7B@P)n@!H`nCA!m!(xs__F& z$rTNOn$mq=7XkY2WPig77GeCP?wr0nr^dnQ>uzq1;iDd15ak`m<<6z)M47*|#p9~@ zm9J|xH9lnrE5oYiB>~U?Fd#5Y9h|b}nF{p65Ij3iZ7iv^TH9uP%a#kdlcNzTZ8UWM z;CU9)=n&leSCxk#UTvIwu5~SBK|ta@o9*rcQkV=jb6axTBdbgGMY|lS3%<-JL@7d# zxp%jR7mii=!Ma0ex5C~YzV7ygcth|A9#<}7U$+bZeX_ldX7cfK`(EeMxQ)>{9fiM? z_65qD)5@BUK9UF_xUg*PKVT2(kiboGwTM=de0J<3*jm~>ao%u}ve6=wq zWA+l6DQxjE2*woxfeg|U)p>|}s#S=2Jkg%)>qtAA$?eLs1qneGfKB&Yr=DhVz`X2^avCHjy zXU`pwFr7y=@mvoN3kXQx@-?ZV_!6jpG)EDjm5-w{V z>&s^XXgxH)LGO6;t1ym%BG179kf|7~g88VPsRvy&teh)Y;OcxA)gZ zd#X@eo~k(}4;JRWJs!G!v3Z{_;i{#Q=mwKun6y%uNnA`_X`n1{e{jh_WM9cG3|1?_ zypkJfNFneTKFeO7f7wAoJMZhW2DmPp5AKQ0cW~~$WkEsm8m2!p-x)TA1r3J{P}Y>~ z$p;gXKuq``EfPmmSx@t0dHv9Ac*?e36i8J;M%(4jLNdlblVz{JY%{)NI;UXkaY*Ag zPzS>1BA&-*kFoNgW_zczYx))eS|%wn<}8 z*;H2?$GI5*Q}<WZ|%M+k}$^U9+ z9};(bOqG@B_Zw>3ZQ4dN7&1+TRbL2{`M8hi0L4L~zZwh|fWAgcoHn27yyeFj53BI*<8hbjKW|&N$a&3X z_X#bC5ubq=YTOyd_6GZQ$y-&T1vl}I6 zYeloD)eP%La~m_3=_|@cMn>cCi0HvYR5JRZ{$sb+3$6P6%3x5sI3}`GsCfrRenU$r zMcb=1t_DFF)Vbh65JXAh*eINpE4BRkJcPd?L50k1#5N> zYVYS5*%Z-7@2iAS2oOc=8dJ_FvCgv3l^Ot$AeA7x!=pu7U`r>yz6AC<3=^Ykj7q|L zIpC+`Uw8!bJf%XbUk7p(2DWNW@fB%Hn*IG@eInGg)FeT`sxEwtp+b_38{_O-5{{up z$3nTN+J`T@AzNC^oJern!TH19K)d>qDes5JJvkAWqUNI#jEoI_jm}MzY432eJ@avg zEO?KrAjzu%Z$WuvSJWl#d$vn`4l`P{^Q_>B_V%+{IPS)Jz1pa@%Y22NmmWl(&77ZR zQ{gS_-EoVvHr(Re6+!))T(cXU2k3hp`+&W3dEq;1s*_;M!hXR#AIjq&yAv z+rIaIg!|2XY$ukRTR-8w_dUBi>aFot7{#jjD##_5?6!n;r&C!Uen>l0$ zBSFLvdUHK<)hJM&=wRR);5oHu?VdLNWggt{Sb$w+Gd(UY3=Km9_jnypaCUpv>xvVO zC4Z1U8F{`VR_-vT*u#Q-I|5414p>_mmh$)L3Ya@YXXOo!H(`E0oAXXMm_d^A8ph() z_qKmao%-%GqVqYDta5bJz8fyrjTyjID`UJr?B`A({d1@&I#Gpt5sCm;TAJuo==tgP znAJ;19{Zd1O@z=RJTr2oZ}s^$`p}N+Qw2|yoXfm;_B5W*d3QY~i>E5G&#t;&uo?5f} zs~T0l>+TG6eY7y7Xg^k7-uu}-!l|lS?SnmUosWi|flK`6x5jiW<&~1~+?I+SWS$!s zH!lKZg=TuXAmOK(%yc4(pxwOz*W1$!PqhO5-f~ya&qp*IAc-ACddHL&GrqcN@<=_` zWyxYoEa^gfoLH`Sh*9fGWHDcG;rHGEcItz_nQfjOk?1v5ayQYmrUU7ZSW}y%gpFt> z@GdszrU`JjY-fK19*vom?7H6n`2&9vy49C1m}F?z9qsJxOT%`kiTvX&v~<6y>g$%~ zcw?fE-0skMUln7H#fOFL$HUg%a7WwZGer4!6|L<)#9h2-X!uH%MA#JJZK0?+406Cx zX41YT%j0nk)$O8&l$e>zFv?F-W_asL?U?Clex?&5Oyi92yIg#ZWNrIE?ZM_4mX%C= zP$k-BfyAvxbY5A520!}B?zV-=uw2{y063z6i{Q(21;+#WZYdw}1Y049p4ZatF#^dq z_Eb_*R>L4>BlX~mpVC$ z*t?5c@2_i5%l-R!lsDe;*p@S9u4g_*C3~QcKJT96d3a<5z5klEqqj2YsHw2hS(Cb2 z1U<5M3gSk9UXO(-6S@wafiB^_C6-_)ofWZ~Y&ZAFbN`^o|A&>Y9OpHJ>k!SZrTJ&W8BqwyE5}xzjC)-l=L(JRj^)Oak!WKK^G+pfu-FH>GO z$n#Z?S<3-k7ci-Ik4OX&+HVkF%GX2 zcva=RrzKyjPLue+IrJC&Cn)I9&jJzBfMo{E)dL9<`o5k@>U=pU#n7s-Xf&I{XfnIx zBK(fe#fcC!ZudL}Egitcl`M6Mu}oUwEBSO^Jz8Ms?`SgRH8!IDr>&>GIeSK*FvE`*Y^1*t^9dDblm8qM|0*dj KQ6^^K_kRGkko9H& literal 0 HcmV?d00001 diff --git a/img/repositories/0003.png b/img/repositories/0003.png new file mode 100644 index 0000000000000000000000000000000000000000..b696a75ea355034004829eea20d84ca8724eaa3a GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/img/repositories/0004.png b/img/repositories/0004.png new file mode 100644 index 0000000000000000000000000000000000000000..24f2658136a4be3392234f8dbda081585d6d99e5 GIT binary patch literal 41063 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

em05Kq^34-6(L((cIF9Dfug_V11d@+*iO> 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 literal 0 HcmV?d00001 diff --git a/img/repositories/0006.png b/img/repositories/0006.png new file mode 100644 index 0000000000000000000000000000000000000000..7cceace4e004c5948f3688118aa722961c09941b GIT binary patch literal 4572 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 z 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 HjRO7$%P_`b literal 0 HcmV?d00001 diff --git a/img/repositories/0008.png b/img/repositories/0008.png new file mode 100644 index 0000000000000000000000000000000000000000..f79e81649bb1d5e8f2c52ba6430252475dac3bc9 GIT binary patch literal 523 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 literal 0 HcmV?d00001 diff --git a/img/repositories/0010.png b/img/repositories/0010.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ff9276d0162d11dc755de621d5e0da653ad8fa GIT binary patch literal 29771 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 b@B)Q|sodS>W!TtX>m3EGpaH4@nuq-l=or8z literal 0 HcmV?d00001 diff --git a/img/repositories/0012.png b/img/repositories/0012.png new file mode 100644 index 0000000000000000000000000000000000000000..712451106053dbcf0858c1e1baaa8ae3cd5f8c88 GIT binary patch literal 9648 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

$$fa_yyW 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

WoZROFZt5xiYwf55(rLT);in(m!D~IW-MYtz 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 literal 0 HcmV?d00001 diff --git a/img/repositories/0015.png b/img/repositories/0015.png new file mode 100644 index 0000000000000000000000000000000000000000..f084028ff8a90a71d707ce76046d13ec2e37f593 GIT binary patch literal 42409 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 Z`+tdU3<=eyZ6*K!002ovPDHLkV1f;CjN$+Q literal 0 HcmV?d00001 diff --git a/img/repositories/0016.png b/img/repositories/0016.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc841c0e4e3af5da3111dc57fb6df41470567e6 GIT binary patch literal 23513 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 literal 0 HcmV?d00001 diff --git a/img/repositories/0017.png b/img/repositories/0017.png new file mode 100644 index 0000000000000000000000000000000000000000..295484ed331bec30a867573a382399621864abcb GIT binary patch literal 14572 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%0AZCNRcCxK-pUKO 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

"; + foreach ($dr_results as $item) { + echo $item->title, "
\n"; + } + + echo "

Results Of YouTube Likes:

"; + foreach ($yt_results as $item) { + echo $item['snippet']['title'], "
\n"; + } + } ?> +
+ +'; //Client ID +$service_account_name = ''; //Email Address +$key_file_location = ''; //key.p12 + +echo pageHeader("Service Account Access"); +if ($client_id == '' + || !strlen($service_account_name) + || !strlen($key_file_location)) { + echo missingServiceAccountDetailsWarning(); +} + +$client = new Google_Client(); +$client->setApplicationName("Client_Library_Examples"); +$service = new Google_Service_Books($client); + +/************************************************ + If we have an access token, we can carry on. + Otherwise, we'll get one with the help of an + assertion credential. In other examples the list + of scopes was managed by the Client, but here + we have to list them manually. We also supply + the service account + ************************************************/ +if (isset($_SESSION['service_token'])) { + $client->setAccessToken($_SESSION['service_token']); +} +$key = file_get_contents($key_file_location); +$cred = new Google_Auth_AssertionCredentials( + $service_account_name, + array('https://www.googleapis.com/auth/books'), + $key +); +$client->setAssertionCredentials($cred); +if($client->getAuth()->isAccessTokenExpired()) { + $client->getAuth()->refreshTokenWithAssertion($cred); +} +$_SESSION['service_token'] = $client->getAccessToken(); + +/************************************************ + We're just going to make the same call as in the + simple query as an example. + ************************************************/ +$optParams = array('filter' => 'free-ebooks'); +$results = $service->volumes->listVolumes('Henry David Thoreau', $optParams); +echo "

Results Of Call:

"; +foreach ($results as $item) { + echo $item['volumeInfo']['title'], "
\n"; +} + +echo pageFooter(__FILE__); diff --git a/vendor/google/apiclient/examples/simple-query.php b/vendor/google/apiclient/examples/simple-query.php new file mode 100644 index 0000000..540fdea --- /dev/null +++ b/vendor/google/apiclient/examples/simple-query.php @@ -0,0 +1,88 @@ +setApplicationName("Client_Library_Examples"); +$apiKey = ""; // Change this line. +// Warn if the API key isn't changed. +if ($apiKey == '') { + echo missingApiKeyWarning(); +} +$client->setDeveloperKey($apiKey); + +$service = new Google_Service_Books($client); + +/************************************************ + We make a call to our service, which will + normally map to the structure of the API. + In this case $service is Books API, the + resource is volumes, and the method is + listVolumes. We pass it a required parameters + (the query), and an array of named optional + parameters. + ************************************************/ +$optParams = array('filter' => 'free-ebooks'); +$results = $service->volumes->listVolumes('Henry David Thoreau', $optParams); + +/************************************************ + This call returns a list of volumes, so we + can iterate over them as normal with any + array. + Some calls will return a single item which we + can immediately use. The individual responses + are typed as Google_Service_Books_Volume, but + can be treated as an array. + ***********************************************/ +echo "

Results Of Call:

"; +foreach ($results as $item) { + echo $item['volumeInfo']['title'], "
\n"; +} + +/************************************************ + This is an example of deferring a call. + ***********************************************/ +$client->setDefer(true); +$optParams = array('filter' => 'free-ebooks'); +$request = $service->volumes->listVolumes('Henry David Thoreau', $optParams); +$results = $client->execute($request); + +echo "

Results Of Deferred Call:

"; +foreach ($results as $item) { + echo $item['volumeInfo']['title'], "
\n"; +} + +echo pageFooter(__FILE__); diff --git a/vendor/google/apiclient/examples/simplefileupload.php b/vendor/google/apiclient/examples/simplefileupload.php new file mode 100644 index 0000000..cb5fc45 --- /dev/null +++ b/vendor/google/apiclient/examples/simplefileupload.php @@ -0,0 +1,124 @@ +'; +$client_secret = ''; +$redirect_uri = ''; + +$client = new Google_Client(); +$client->setClientId($client_id); +$client->setClientSecret($client_secret); +$client->setRedirectUri($redirect_uri); +$client->addScope("https://www.googleapis.com/auth/drive"); +$service = new Google_Service_Drive($client); + +if (isset($_REQUEST['logout'])) { + unset($_SESSION['upload_token']); +} + +if (isset($_GET['code'])) { + $client->authenticate($_GET['code']); + $_SESSION['upload_token'] = $client->getAccessToken(); + $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; + header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); +} + +if (isset($_SESSION['upload_token']) && $_SESSION['upload_token']) { + $client->setAccessToken($_SESSION['upload_token']); + if ($client->isAccessTokenExpired()) { + unset($_SESSION['upload_token']); + } +} else { + $authUrl = $client->createAuthUrl(); +} + +/************************************************ + If we're signed in then lets try to upload our + file. For larger files, see fileupload.php. + ************************************************/ +if ($client->getAccessToken()) { + // This is uploading a file directly, with no metadata associated. + $file = new Google_Service_Drive_DriveFile(); + $result = $service->files->insert( + $file, + array( + 'data' => file_get_contents(TESTFILE), + 'mimeType' => 'application/octet-stream', + 'uploadType' => 'media' + ) + ); + + // Now lets try and send the metadata as well using multipart! + $file = new Google_Service_Drive_DriveFile(); + $file->setTitle("Hello World!"); + $result2 = $service->files->insert( + $file, + array( + 'data' => file_get_contents(TESTFILE), + 'mimeType' => 'application/octet-stream', + 'uploadType' => 'multipart' + ) + ); +} + +echo pageHeader("File Upload - Uploading a small file"); +if ( + $client_id == '' + || $client_secret == '' + || $redirect_uri == '') { + echo missingClientSecretsWarning(); +} +?> +
+
+ + + +
+ + +
+ title); ?> + title); ?> +
+ +
+ + + + " . $title . " + + + \n"; + if ($_SERVER['PHP_SELF'] != "/index.php") { + $ret .= "

Back

"; + } + $ret .= "

" . $title . "

"; + } + return $ret; +} + + +function pageFooter($file = null) +{ + $ret = ""; + if (isWebRequest()) { + // Echo the code if in an example. + if ($file) { + $ret .= "

Code:

"; + $ret .= "
";
+      $ret .= htmlspecialchars(file_get_contents($file));
+      $ret .= "
"; + } + $ret .= ""; + } + return $ret; +} + +function missingApiKeyWarning() +{ + $ret = ""; + if (isWebRequest()) { + $ret = " +

+ Warning: You need to set a Simple API Access key from the + Google API console +

"; + } else { + $ret = "Warning: You need to set a Simple API Access key from the Google API console:"; + $ret .= "\nhttp://developers.google.com/console"; + } + return $ret; +} + +function missingClientSecretsWarning() +{ + $ret = ""; + if (isWebRequest()) { + $ret = " +

+ Warning: You need to set Client ID, Client Secret and Redirect URI from the + Google API console +

"; + } else { + $ret = "Warning: You need to set Client ID, Client Secret and Redirect URI from the"; + $ret .= "Google API console:\nhttp://developers.google.com/console"; + } + return $ret; +} + +function missingServiceAccountDetailsWarning() +{ + $ret = ""; + if (isWebRequest()) { + $ret = " +

+ Warning: You need to set Client ID, Email address and the location of the Key from the + Google API console +

"; + } else { + $ret = "Warning: You need to set Client ID, Email address and the location of the Key from the"; + $ret .= "Google API console:\nhttp://developers.google.com/console"; + } + return $ret; +} diff --git a/vendor/google/apiclient/examples/user-example.php b/vendor/google/apiclient/examples/user-example.php new file mode 100644 index 0000000..fbb1897 --- /dev/null +++ b/vendor/google/apiclient/examples/user-example.php @@ -0,0 +1,130 @@ +'; + $client_secret = ''; + $redirect_uri = ''; + +/************************************************ + Make an API request on behalf of a user. In + this case we need to have a valid OAuth 2.0 + token for the user, so we need to send them + through a login flow. To do this we need some + information from our API console project. + ************************************************/ +$client = new Google_Client(); +$client->setClientId($client_id); +$client->setClientSecret($client_secret); +$client->setRedirectUri($redirect_uri); +$client->addScope("https://www.googleapis.com/auth/urlshortener"); + +/************************************************ + When we create the service here, we pass the + client to it. The client then queries the service + for the required scopes, and uses that when + generating the authentication URL later. + ************************************************/ +$service = new Google_Service_Urlshortener($client); + +/************************************************ + If we're logging out we just need to clear our + local access token in this case + ************************************************/ +if (isset($_REQUEST['logout'])) { + unset($_SESSION['access_token']); +} + +/************************************************ + If we have a code back from the OAuth 2.0 flow, + we need to exchange that with the authenticate() + function. We store the resultant access token + bundle in the session, and redirect to ourself. + ************************************************/ +if (isset($_GET['code'])) { + $client->authenticate($_GET['code']); + $_SESSION['access_token'] = $client->getAccessToken(); + $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; + header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); +} + +/************************************************ + If we have an access token, we can make + requests, else we generate an authentication URL. + ************************************************/ +if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { + $client->setAccessToken($_SESSION['access_token']); +} else { + $authUrl = $client->createAuthUrl(); +} + +/************************************************ + If we're signed in and have a request to shorten + a URL, then we create a new URL object, set the + unshortened URL, and call the 'insert' method on + the 'url' resource. Note that we re-store the + access_token bundle, just in case anything + changed during the request - the main thing that + might happen here is the access token itself is + refreshed if the application has offline access. + ************************************************/ +if ($client->getAccessToken() && isset($_GET['url'])) { + $url = new Google_Service_Urlshortener_Url(); + $url->longUrl = $_GET['url']; + $short = $service->url->insert($url); + $_SESSION['access_token'] = $client->getAccessToken(); +} + +echo pageHeader("User Query - URL Shortener"); +if ( + $client_id == '' + || $client_secret == '' + || $redirect_uri == '') { + echo missingClientSecretsWarning(); +} +?> +
+
+ + + +
+ + +
+ Logout + +
+ + +
+ +
+ +
+ + * + */ +abstract class Google_Auth_Abstract +{ + /** + * An utility function that first calls $this->auth->sign($request) and then + * executes makeRequest() on that signed request. Used for when a request + * should be authenticated + * @param Google_Http_Request $request + * @return Google_Http_Request $request + */ + abstract public function authenticatedRequest(Google_Http_Request $request); + abstract public function sign(Google_Http_Request $request); +} diff --git a/vendor/google/apiclient/src/Google/Auth/AppIdentity.php b/vendor/google/apiclient/src/Google/Auth/AppIdentity.php new file mode 100644 index 0000000..0be5917 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Auth/AppIdentity.php @@ -0,0 +1,100 @@ +client = $client; + } + + /** + * Retrieve an access token for the scopes supplied. + */ + public function authenticateForScope($scopes) + { + if ($this->token && $this->tokenScopes == $scopes) { + return $this->token; + } + $memcache = new Memcached(); + $this->token = $memcache->get(self::CACHE_PREFIX . $scopes); + if (!$this->token) { + $this->token = AppIdentityService::getAccessToken($scopes); + if ($this->token) { + $memcache_key = self::CACHE_PREFIX; + if (is_string($scopes)) { + $memcache_key .= $scopes; + } else if (is_array($scopes)) { + $memcache_key .= implode(":", $scopes); + } + $memcache->set($memcache_key, $this->token, self::CACHE_LIFETIME); + } + } + $this->tokenScopes = $scopes; + return $this->token; + } + + /** + * Perform an authenticated / signed apiHttpRequest. + * This function takes the apiHttpRequest, calls apiAuth->sign on it + * (which can modify the request in what ever way fits the auth mechanism) + * and then calls apiCurlIO::makeRequest on the signed request + * + * @param Google_Http_Request $request + * @return Google_Http_Request The resulting HTTP response including the + * responseHttpCode, responseHeaders and responseBody. + */ + public function authenticatedRequest(Google_Http_Request $request) + { + $request = $this->sign($request); + return $this->io->makeRequest($request); + } + + public function sign(Google_Http_Request $request) + { + if (!$this->token) { + // No token, so nothing to do. + return $request; + } + // Add the OAuth2 header to the request + $request->setRequestHeaders( + array('Authorization' => 'Bearer ' . $this->token['access_token']) + ); + + return $request; + } +} diff --git a/vendor/google/apiclient/src/Google/Auth/AssertionCredentials.php b/vendor/google/apiclient/src/Google/Auth/AssertionCredentials.php new file mode 100644 index 0000000..3db0a77 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Auth/AssertionCredentials.php @@ -0,0 +1,138 @@ + + */ +class Google_Auth_AssertionCredentials +{ + const MAX_TOKEN_LIFETIME_SECS = 3600; + + public $serviceAccountName; + public $scopes; + public $privateKey; + public $privateKeyPassword; + public $assertionType; + public $sub; + /** + * @deprecated + * @link http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06 + */ + public $prn; + private $useCache; + + /** + * @param $serviceAccountName + * @param $scopes array List of scopes + * @param $privateKey + * @param string $privateKeyPassword + * @param string $assertionType + * @param bool|string $sub The email address of the user for which the + * application is requesting delegated access. + * @param bool useCache Whether to generate a cache key and allow + * automatic caching of the generated token. + */ + public function __construct( + $serviceAccountName, + $scopes, + $privateKey, + $privateKeyPassword = 'notasecret', + $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer', + $sub = false, + $useCache = true + ) { + $this->serviceAccountName = $serviceAccountName; + $this->scopes = is_string($scopes) ? $scopes : implode(' ', $scopes); + $this->privateKey = $privateKey; + $this->privateKeyPassword = $privateKeyPassword; + $this->assertionType = $assertionType; + $this->sub = $sub; + $this->prn = $sub; + $this->useCache = $useCache; + } + + /** + * Generate a unique key to represent this credential. + * @return string + */ + public function getCacheKey() + { + if (!$this->useCache) { + return false; + } + $h = $this->sub; + $h .= $this->assertionType; + $h .= $this->privateKey; + $h .= $this->scopes; + $h .= $this->serviceAccountName; + return md5($h); + } + + public function generateAssertion() + { + $now = time(); + + $jwtParams = array( + 'aud' => Google_Auth_OAuth2::OAUTH2_TOKEN_URI, + 'scope' => $this->scopes, + 'iat' => $now, + 'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS, + 'iss' => $this->serviceAccountName, + ); + + if ($this->sub !== false) { + $jwtParams['sub'] = $this->sub; + } else if ($this->prn !== false) { + $jwtParams['prn'] = $this->prn; + } + + return $this->makeSignedJwt($jwtParams); + } + + /** + * Creates a signed JWT. + * @param array $payload + * @return string The signed JWT. + */ + private function makeSignedJwt($payload) + { + $header = array('typ' => 'JWT', 'alg' => 'RS256'); + + $payload = json_encode($payload); + // Handle some overzealous escaping in PHP json that seemed to cause some errors + // with claimsets. + $payload = str_replace('\/', '/', $payload); + + $segments = array( + Google_Utils::urlSafeB64Encode(json_encode($header)), + Google_Utils::urlSafeB64Encode($payload) + ); + + $signingInput = implode('.', $segments); + $signer = new Google_Signer_P12($this->privateKey, $this->privateKeyPassword); + $signature = $signer->sign($signingInput); + $segments[] = Google_Utils::urlSafeB64Encode($signature); + + return implode(".", $segments); + } +} diff --git a/vendor/google/apiclient/src/Google/Auth/Exception.php b/vendor/google/apiclient/src/Google/Auth/Exception.php new file mode 100644 index 0000000..65067ee --- /dev/null +++ b/vendor/google/apiclient/src/Google/Auth/Exception.php @@ -0,0 +1,22 @@ + + */ +class Google_Auth_LoginTicket +{ + const USER_ATTR = "sub"; + + // Information from id token envelope. + private $envelope; + + // Information from id token payload. + private $payload; + + /** + * Creates a user based on the supplied token. + * + * @param string $envelope Header from a verified authentication token. + * @param string $payload Information from a verified authentication token. + */ + public function __construct($envelope, $payload) + { + $this->envelope = $envelope; + $this->payload = $payload; + } + + /** + * Returns the numeric identifier for the user. + * @throws Google_Auth_Exception + * @return + */ + public function getUserId() + { + if (array_key_exists(self::USER_ATTR, $this->payload)) { + return $this->payload[self::USER_ATTR]; + } + throw new Google_Auth_Exception("No user_id in token"); + } + + /** + * Returns attributes from the login ticket. This can contain + * various information about the user session. + * @return array + */ + public function getAttributes() + { + return array("envelope" => $this->envelope, "payload" => $this->payload); + } +} diff --git a/vendor/google/apiclient/src/Google/Auth/OAuth2.php b/vendor/google/apiclient/src/Google/Auth/OAuth2.php new file mode 100644 index 0000000..5630d75 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Auth/OAuth2.php @@ -0,0 +1,620 @@ + + * @author Chirag Shah + * + */ +class Google_Auth_OAuth2 extends Google_Auth_Abstract +{ + const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke'; + const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token'; + const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth'; + const CLOCK_SKEW_SECS = 300; // five minutes in seconds + const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds + const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds + const OAUTH2_ISSUER = 'accounts.google.com'; + + /** @var Google_Auth_AssertionCredentials $assertionCredentials */ + private $assertionCredentials; + + /** + * @var string The state parameters for CSRF and other forgery protection. + */ + private $state; + + /** + * @var array The token bundle. + */ + private $token = array(); + + /** + * @var Google_Client the base client + */ + private $client; + + /** + * Instantiates the class, but does not initiate the login flow, leaving it + * to the discretion of the caller. + */ + public function __construct(Google_Client $client) + { + $this->client = $client; + } + + /** + * Perform an authenticated / signed apiHttpRequest. + * This function takes the apiHttpRequest, calls apiAuth->sign on it + * (which can modify the request in what ever way fits the auth mechanism) + * and then calls apiCurlIO::makeRequest on the signed request + * + * @param Google_Http_Request $request + * @return Google_Http_Request The resulting HTTP response including the + * responseHttpCode, responseHeaders and responseBody. + */ + public function authenticatedRequest(Google_Http_Request $request) + { + $request = $this->sign($request); + return $this->client->getIo()->makeRequest($request); + } + + /** + * @param string $code + * @throws Google_Auth_Exception + * @return string + */ + public function authenticate($code) + { + if (strlen($code) == 0) { + throw new Google_Auth_Exception("Invalid code"); + } + + // We got here from the redirect from a successful authorization grant, + // fetch the access token + $request = new Google_Http_Request( + self::OAUTH2_TOKEN_URI, + 'POST', + array(), + array( + 'code' => $code, + 'grant_type' => 'authorization_code', + 'redirect_uri' => $this->client->getClassConfig($this, 'redirect_uri'), + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'client_secret' => $this->client->getClassConfig($this, 'client_secret') + ) + ); + $request->disableGzip(); + $response = $this->client->getIo()->makeRequest($request); + + if ($response->getResponseHttpCode() == 200) { + $this->setAccessToken($response->getResponseBody()); + $this->token['created'] = time(); + return $this->getAccessToken(); + } else { + $decodedResponse = json_decode($response->getResponseBody(), true); + if ($decodedResponse != null && $decodedResponse['error']) { + $decodedResponse = $decodedResponse['error']; + if (isset($decodedResponse['error_description'])) { + $decodedResponse .= ": " . $decodedResponse['error_description']; + } + } + throw new Google_Auth_Exception( + sprintf( + "Error fetching OAuth2 access token, message: '%s'", + $decodedResponse + ), + $response->getResponseHttpCode() + ); + } + } + + /** + * Create a URL to obtain user authorization. + * The authorization endpoint allows the user to first + * authenticate, and then grant/deny the access request. + * @param string $scope The scope is expressed as a list of space-delimited strings. + * @return string + */ + public function createAuthUrl($scope) + { + $params = array( + 'response_type' => 'code', + 'redirect_uri' => $this->client->getClassConfig($this, 'redirect_uri'), + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'scope' => $scope, + 'access_type' => $this->client->getClassConfig($this, 'access_type'), + ); + + $params = $this->maybeAddParam($params, 'approval_prompt'); + $params = $this->maybeAddParam($params, 'login_hint'); + $params = $this->maybeAddParam($params, 'hd'); + $params = $this->maybeAddParam($params, 'openid.realm'); + $params = $this->maybeAddParam($params, 'prompt'); + $params = $this->maybeAddParam($params, 'include_granted_scopes'); + + // If the list of scopes contains plus.login, add request_visible_actions + // to auth URL. + $rva = $this->client->getClassConfig($this, 'request_visible_actions'); + if (strpos($scope, 'plus.login') && strlen($rva) > 0) { + $params['request_visible_actions'] = $rva; + } + + if (isset($this->state)) { + $params['state'] = $this->state; + } + + return self::OAUTH2_AUTH_URL . "?" . http_build_query($params, '', '&'); + } + + /** + * @param string $token + * @throws Google_Auth_Exception + */ + public function setAccessToken($token) + { + $token = json_decode($token, true); + if ($token == null) { + throw new Google_Auth_Exception('Could not json decode the token'); + } + if (! isset($token['access_token'])) { + throw new Google_Auth_Exception("Invalid token format"); + } + $this->token = $token; + } + + public function getAccessToken() + { + return json_encode($this->token); + } + + public function getRefreshToken() + { + if (array_key_exists('refresh_token', $this->token)) { + return $this->token['refresh_token']; + } else { + return null; + } + } + + public function setState($state) + { + $this->state = $state; + } + + public function setAssertionCredentials(Google_Auth_AssertionCredentials $creds) + { + $this->assertionCredentials = $creds; + } + + /** + * Include an accessToken in a given apiHttpRequest. + * @param Google_Http_Request $request + * @return Google_Http_Request + * @throws Google_Auth_Exception + */ + public function sign(Google_Http_Request $request) + { + // add the developer key to the request before signing it + if ($this->client->getClassConfig($this, 'developer_key')) { + $request->setQueryParam('key', $this->client->getClassConfig($this, 'developer_key')); + } + + // Cannot sign the request without an OAuth access token. + if (null == $this->token && null == $this->assertionCredentials) { + return $request; + } + + // Check if the token is set to expire in the next 30 seconds + // (or has already expired). + if ($this->isAccessTokenExpired()) { + if ($this->assertionCredentials) { + $this->refreshTokenWithAssertion(); + } else { + if (! array_key_exists('refresh_token', $this->token)) { + throw new Google_Auth_Exception( + "The OAuth 2.0 access token has expired," + ." and a refresh token is not available. Refresh tokens" + ." are not returned for responses that were auto-approved." + ); + } + $this->refreshToken($this->token['refresh_token']); + } + } + + // Add the OAuth2 header to the request + $request->setRequestHeaders( + array('Authorization' => 'Bearer ' . $this->token['access_token']) + ); + + return $request; + } + + /** + * Fetches a fresh access token with the given refresh token. + * @param string $refreshToken + * @return void + */ + public function refreshToken($refreshToken) + { + $this->refreshTokenRequest( + array( + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'client_secret' => $this->client->getClassConfig($this, 'client_secret'), + 'refresh_token' => $refreshToken, + 'grant_type' => 'refresh_token' + ) + ); + } + + /** + * Fetches a fresh access token with a given assertion token. + * @param Google_Auth_AssertionCredentials $assertionCredentials optional. + * @return void + */ + public function refreshTokenWithAssertion($assertionCredentials = null) + { + if (!$assertionCredentials) { + $assertionCredentials = $this->assertionCredentials; + } + + $cacheKey = $assertionCredentials->getCacheKey(); + + if ($cacheKey) { + // We can check whether we have a token available in the + // cache. If it is expired, we can retrieve a new one from + // the assertion. + $token = $this->client->getCache()->get($cacheKey); + if ($token) { + $this->setAccessToken($token); + } + if (!$this->isAccessTokenExpired()) { + return; + } + } + + $this->refreshTokenRequest( + array( + 'grant_type' => 'assertion', + 'assertion_type' => $assertionCredentials->assertionType, + 'assertion' => $assertionCredentials->generateAssertion(), + ) + ); + + if ($cacheKey) { + // Attempt to cache the token. + $this->client->getCache()->set( + $cacheKey, + $this->getAccessToken() + ); + } + } + + private function refreshTokenRequest($params) + { + $http = new Google_Http_Request( + self::OAUTH2_TOKEN_URI, + 'POST', + array(), + $params + ); + $http->disableGzip(); + $request = $this->client->getIo()->makeRequest($http); + + $code = $request->getResponseHttpCode(); + $body = $request->getResponseBody(); + if (200 == $code) { + $token = json_decode($body, true); + if ($token == null) { + throw new Google_Auth_Exception("Could not json decode the access token"); + } + + if (! isset($token['access_token']) || ! isset($token['expires_in'])) { + throw new Google_Auth_Exception("Invalid token format"); + } + + if (isset($token['id_token'])) { + $this->token['id_token'] = $token['id_token']; + } + $this->token['access_token'] = $token['access_token']; + $this->token['expires_in'] = $token['expires_in']; + $this->token['created'] = time(); + } else { + throw new Google_Auth_Exception("Error refreshing the OAuth2 token, message: '$body'", $code); + } + } + + /** + * Revoke an OAuth2 access token or refresh token. This method will revoke the current access + * token, if a token isn't provided. + * @throws Google_Auth_Exception + * @param string|null $token The token (access token or a refresh token) that should be revoked. + * @return boolean Returns True if the revocation was successful, otherwise False. + */ + public function revokeToken($token = null) + { + if (!$token) { + if (!$this->token) { + // Not initialized, no token to actually revoke + return false; + } elseif (array_key_exists('refresh_token', $this->token)) { + $token = $this->token['refresh_token']; + } else { + $token = $this->token['access_token']; + } + } + $request = new Google_Http_Request( + self::OAUTH2_REVOKE_URI, + 'POST', + array(), + "token=$token" + ); + $request->disableGzip(); + $response = $this->client->getIo()->makeRequest($request); + $code = $response->getResponseHttpCode(); + if ($code == 200) { + $this->token = null; + return true; + } + + return false; + } + + /** + * Returns if the access_token is expired. + * @return bool Returns True if the access_token is expired. + */ + public function isAccessTokenExpired() + { + if (!$this->token || !isset($this->token['created'])) { + return true; + } + + // If the token is set to expire in the next 30 seconds. + $expired = ($this->token['created'] + + ($this->token['expires_in'] - 30)) < time(); + + return $expired; + } + + // Gets federated sign-on certificates to use for verifying identity tokens. + // Returns certs as array structure, where keys are key ids, and values + // are PEM encoded certificates. + private function getFederatedSignOnCerts() + { + return $this->retrieveCertsFromLocation( + $this->client->getClassConfig($this, 'federated_signon_certs_url') + ); + } + + /** + * Retrieve and cache a certificates file. + * @param $url location + * @return array certificates + */ + public function retrieveCertsFromLocation($url) + { + // If we're retrieving a local file, just grab it. + if ("http" != substr($url, 0, 4)) { + $file = file_get_contents($url); + if ($file) { + return json_decode($file, true); + } else { + throw new Google_Auth_Exception( + "Failed to retrieve verification certificates: '" . + $url . "'." + ); + } + } + + // This relies on makeRequest caching certificate responses. + $request = $this->client->getIo()->makeRequest( + new Google_Http_Request( + $url + ) + ); + if ($request->getResponseHttpCode() == 200) { + $certs = json_decode($request->getResponseBody(), true); + if ($certs) { + return $certs; + } + } + throw new Google_Auth_Exception( + "Failed to retrieve verification certificates: '" . + $request->getResponseBody() . "'.", + $request->getResponseHttpCode() + ); + } + + /** + * Verifies an id token and returns the authenticated apiLoginTicket. + * Throws an exception if the id token is not valid. + * The audience parameter can be used to control which id tokens are + * accepted. By default, the id token must have been issued to this OAuth2 client. + * + * @param $id_token + * @param $audience + * @return Google_Auth_LoginTicket + */ + public function verifyIdToken($id_token = null, $audience = null) + { + if (!$id_token) { + $id_token = $this->token['id_token']; + } + $certs = $this->getFederatedSignonCerts(); + if (!$audience) { + $audience = $this->client->getClassConfig($this, 'client_id'); + } + + return $this->verifySignedJwtWithCerts($id_token, $certs, $audience, self::OAUTH2_ISSUER); + } + + /** + * Verifies the id token, returns the verified token contents. + * + * @param $jwt the token + * @param $certs array of certificates + * @param $required_audience the expected consumer of the token + * @param [$issuer] the expected issues, defaults to Google + * @param [$max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS + * @return token information if valid, false if not + */ + public function verifySignedJwtWithCerts( + $jwt, + $certs, + $required_audience, + $issuer = null, + $max_expiry = null + ) { + if (!$max_expiry) { + // Set the maximum time we will accept a token for. + $max_expiry = self::MAX_TOKEN_LIFETIME_SECS; + } + + $segments = explode(".", $jwt); + if (count($segments) != 3) { + throw new Google_Auth_Exception("Wrong number of segments in token: $jwt"); + } + $signed = $segments[0] . "." . $segments[1]; + $signature = Google_Utils::urlSafeB64Decode($segments[2]); + + // Parse envelope. + $envelope = json_decode(Google_Utils::urlSafeB64Decode($segments[0]), true); + if (!$envelope) { + throw new Google_Auth_Exception("Can't parse token envelope: " . $segments[0]); + } + + // Parse token + $json_body = Google_Utils::urlSafeB64Decode($segments[1]); + $payload = json_decode($json_body, true); + if (!$payload) { + throw new Google_Auth_Exception("Can't parse token payload: " . $segments[1]); + } + + // Check signature + $verified = false; + foreach ($certs as $keyName => $pem) { + $public_key = new Google_Verifier_Pem($pem); + if ($public_key->verify($signed, $signature)) { + $verified = true; + break; + } + } + + if (!$verified) { + throw new Google_Auth_Exception("Invalid token signature: $jwt"); + } + + // Check issued-at timestamp + $iat = 0; + if (array_key_exists("iat", $payload)) { + $iat = $payload["iat"]; + } + if (!$iat) { + throw new Google_Auth_Exception("No issue time in token: $json_body"); + } + $earliest = $iat - self::CLOCK_SKEW_SECS; + + // Check expiration timestamp + $now = time(); + $exp = 0; + if (array_key_exists("exp", $payload)) { + $exp = $payload["exp"]; + } + if (!$exp) { + throw new Google_Auth_Exception("No expiration time in token: $json_body"); + } + if ($exp >= $now + $max_expiry) { + throw new Google_Auth_Exception( + sprintf("Expiration time too far in future: %s", $json_body) + ); + } + + $latest = $exp + self::CLOCK_SKEW_SECS; + if ($now < $earliest) { + throw new Google_Auth_Exception( + sprintf( + "Token used too early, %s < %s: %s", + $now, + $earliest, + $json_body + ) + ); + } + if ($now > $latest) { + throw new Google_Auth_Exception( + sprintf( + "Token used too late, %s > %s: %s", + $now, + $latest, + $json_body + ) + ); + } + + $iss = $payload['iss']; + if ($issuer && $iss != $issuer) { + throw new Google_Auth_Exception( + sprintf( + "Invalid issuer, %s != %s: %s", + $iss, + $issuer, + $json_body + ) + ); + } + + // Check audience + $aud = $payload["aud"]; + if ($aud != $required_audience) { + throw new Google_Auth_Exception( + sprintf( + "Wrong recipient, %s != %s:", + $aud, + $required_audience, + $json_body + ) + ); + } + + // All good. + return new Google_Auth_LoginTicket($envelope, $payload); + } + + /** + * Add a parameter to the auth params if not empty string. + */ + private function maybeAddParam($params, $name) + { + $param = $this->client->getClassConfig($this, $name); + if ($param != '') { + $params[$name] = $param; + } + return $params; + } +} diff --git a/vendor/google/apiclient/src/Google/Auth/Simple.php b/vendor/google/apiclient/src/Google/Auth/Simple.php new file mode 100644 index 0000000..e83900f --- /dev/null +++ b/vendor/google/apiclient/src/Google/Auth/Simple.php @@ -0,0 +1,62 @@ + + * @author Chirag Shah + */ +class Google_Auth_Simple extends Google_Auth_Abstract +{ + private $key = null; + private $client; + + public function __construct(Google_Client $client, $config = null) + { + $this->client = $client; + } + + /** + * Perform an authenticated / signed apiHttpRequest. + * This function takes the apiHttpRequest, calls apiAuth->sign on it + * (which can modify the request in what ever way fits the auth mechanism) + * and then calls apiCurlIO::makeRequest on the signed request + * + * @param Google_Http_Request $request + * @return Google_Http_Request The resulting HTTP response including the + * responseHttpCode, responseHeaders and responseBody. + */ + public function authenticatedRequest(Google_Http_Request $request) + { + $request = $this->sign($request); + return $this->io->makeRequest($request); + } + + public function sign(Google_Http_Request $request) + { + $key = $this->client->getClassConfig($this, 'developer_key'); + if ($key) { + $request->setQueryParam('key', $key); + } + return $request; + } +} diff --git a/vendor/google/apiclient/src/Google/Cache/Abstract.php b/vendor/google/apiclient/src/Google/Cache/Abstract.php new file mode 100644 index 0000000..ff19f36 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Cache/Abstract.php @@ -0,0 +1,53 @@ + + */ +abstract class Google_Cache_Abstract +{ + + abstract public function __construct(Google_Client $client); + + /** + * Retrieves the data for the given key, or false if they + * key is unknown or expired + * + * @param String $key The key who's data to retrieve + * @param boolean|int $expiration Expiration time in seconds + * + */ + abstract public function get($key, $expiration = false); + + /** + * Store the key => $value set. The $value is serialized + * by this function so can be of any type + * + * @param string $key Key of the data + * @param string $value data + */ + abstract public function set($key, $value); + + /** + * Removes the key/data pair for the given $key + * + * @param String $key + */ + abstract public function delete($key); +} diff --git a/vendor/google/apiclient/src/Google/Cache/Apc.php b/vendor/google/apiclient/src/Google/Cache/Apc.php new file mode 100644 index 0000000..051b537 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Cache/Apc.php @@ -0,0 +1,73 @@ + + */ +class Google_Cache_Apc extends Google_Cache_Abstract +{ + public function __construct(Google_Client $client) + { + if (! function_exists('apc_add') ) { + throw new Google_Cache_Exception("Apc functions not available"); + } + } + + /** + * @inheritDoc + */ + public function get($key, $expiration = false) + { + $ret = apc_fetch($key); + if ($ret === false) { + return false; + } + if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) { + $this->delete($key); + return false; + } + return $ret['data']; + } + + /** + * @inheritDoc + */ + public function set($key, $value) + { + $rc = apc_store($key, array('time' => time(), 'data' => $value)); + if ($rc == false) { + throw new Google_Cache_Exception("Couldn't store data"); + } + } + + /** + * @inheritDoc + * @param String $key + */ + public function delete($key) + { + apc_delete($key); + } +} diff --git a/vendor/google/apiclient/src/Google/Cache/Exception.php b/vendor/google/apiclient/src/Google/Cache/Exception.php new file mode 100644 index 0000000..23b6246 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Cache/Exception.php @@ -0,0 +1,21 @@ + + */ +class Google_Cache_File extends Google_Cache_Abstract +{ + const MAX_LOCK_RETRIES = 10; + private $path; + private $fh; + + public function __construct(Google_Client $client) + { + $this->path = $client->getClassConfig($this, 'directory'); + } + + public function get($key, $expiration = false) + { + $storageFile = $this->getCacheFile($key); + $data = false; + + if (!file_exists($storageFile)) { + return false; + } + + if ($expiration) { + $mtime = filemtime($storageFile); + if ((time() - $mtime) >= $expiration) { + $this->delete($key); + return false; + } + } + + if ($this->acquireReadLock($storageFile)) { + $data = fread($this->fh, filesize($storageFile)); + $data = unserialize($data); + $this->unlock($storageFile); + } + + return $data; + } + + public function set($key, $value) + { + $storageFile = $this->getWriteableCacheFile($key); + if ($this->acquireWriteLock($storageFile)) { + // We serialize the whole request object, since we don't only want the + // responseContent but also the postBody used, headers, size, etc. + $data = serialize($value); + $result = fwrite($this->fh, $data); + $this->unlock($storageFile); + } + } + + public function delete($key) + { + $file = $this->getCacheFile($key); + if (file_exists($file) && !unlink($file)) { + throw new Google_Cache_Exception("Cache file could not be deleted"); + } + } + + private function getWriteableCacheFile($file) + { + return $this->getCacheFile($file, true); + } + + private function getCacheFile($file, $forWrite = false) + { + return $this->getCacheDir($file, $forWrite) . '/' . md5($file); + } + + private function getCacheDir($file, $forWrite) + { + // use the first 2 characters of the hash as a directory prefix + // this should prevent slowdowns due to huge directory listings + // and thus give some basic amount of scalability + $storageDir = $this->path . '/' . substr(md5($file), 0, 2); + if ($forWrite && ! is_dir($storageDir)) { + if (! mkdir($storageDir, 0755, true)) { + throw new Google_Cache_Exception("Could not create storage directory: $storageDir"); + } + } + return $storageDir; + } + + private function acquireReadLock($storageFile) + { + return $this->acquireLock(LOCK_SH, $storageFile); + } + + private function acquireWriteLock($storageFile) + { + $rc = $this->acquireLock(LOCK_EX, $storageFile); + if (!$rc) { + $this->delete($storageFile); + } + return $rc; + } + + private function acquireLock($type, $storageFile) + { + $mode = $type == LOCK_EX ? "w" : "r"; + $this->fh = fopen($storageFile, $mode); + $count = 0; + while (!flock($this->fh, $type | LOCK_NB)) { + // Sleep for 10ms. + usleep(10000); + if (++$count < self::MAX_LOCK_RETRIES) { + return false; + } + } + return true; + } + + public function unlock($storageFile) + { + if ($this->fh) { + flock($this->fh, LOCK_UN); + } + } +} diff --git a/vendor/google/apiclient/src/Google/Cache/Memcache.php b/vendor/google/apiclient/src/Google/Cache/Memcache.php new file mode 100644 index 0000000..1104afb --- /dev/null +++ b/vendor/google/apiclient/src/Google/Cache/Memcache.php @@ -0,0 +1,137 @@ + + */ +class Google_Cache_Memcache extends Google_Cache_Abstract +{ + private $connection = false; + private $mc = false; + private $host; + private $port; + + public function __construct(Google_Client $client) + { + if (!function_exists('memcache_connect') && !class_exists("Memcached")) { + throw new Google_Cache_Exception("Memcache functions not available"); + } + if ($client->isAppEngine()) { + // No credentials needed for GAE. + $this->mc = new Memcached(); + $this->connection = true; + } else { + $this->host = $client->getClassConfig($this, 'host'); + $this->port = $client->getClassConfig($this, 'port'); + if (empty($this->host) || (empty($this->port) && (string) $this->port != "0")) { + throw new Google_Cache_Exception("You need to supply a valid memcache host and port"); + } + } + } + + /** + * @inheritDoc + */ + public function get($key, $expiration = false) + { + $this->connect(); + $ret = false; + if ($this->mc) { + $ret = $this->mc->get($key); + } else { + $ret = memcache_get($this->connection, $key); + } + if ($ret === false) { + return false; + } + if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) { + $this->delete($key); + return false; + } + return $ret['data']; + } + + /** + * @inheritDoc + * @param string $key + * @param string $value + * @throws Google_Cache_Exception + */ + public function set($key, $value) + { + $this->connect(); + // we store it with the cache_time default expiration so objects will at + // least get cleaned eventually. + $data = array('time' => time(), 'data' => $value); + $rc = false; + if ($this->mc) { + $rc = $this->mc->set($key, $data); + } else { + $rc = memcache_set($this->connection, $key, $data, false); + } + if ($rc == false) { + throw new Google_Cache_Exception("Couldn't store data in cache"); + } + } + + /** + * @inheritDoc + * @param String $key + */ + public function delete($key) + { + $this->connect(); + if ($this->mc) { + $this->mc->delete($key, 0); + } else { + memcache_delete($this->connection, $key, 0); + } + } + + /** + * Lazy initialiser for memcache connection. Uses pconnect for to take + * advantage of the persistence pool where possible. + */ + private function connect() + { + if ($this->connection) { + return; + } + + if (class_exists("Memcached")) { + $this->mc = new Memcached(); + $this->mc->addServer($this->host, $this->port); + $this->connection = true; + } else { + $this->connection = memcache_pconnect($this->host, $this->port); + } + + if (! $this->connection) { + throw new Google_Cache_Exception("Couldn't connect to memcache server"); + } + } +} diff --git a/vendor/google/apiclient/src/Google/Cache/Null.php b/vendor/google/apiclient/src/Google/Cache/Null.php new file mode 100644 index 0000000..0e33631 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Cache/Null.php @@ -0,0 +1,56 @@ + + * @author Chirag Shah + */ +class Google_Client +{ + const LIBVER = "1.0.6-beta"; + const USER_AGENT_SUFFIX = "google-api-php-client/"; + /** + * @var Google_Auth_Abstract $auth + */ + private $auth; + + /** + * @var Google_IO_Abstract $io + */ + private $io; + + /** + * @var Google_Cache_Abstract $cache + */ + private $cache; + + /** + * @var Google_Config $config + */ + private $config; + + /** + * @var boolean $deferExecution + */ + private $deferExecution = false; + + /** @var array $scopes */ + // Scopes requested by the client + protected $requestedScopes = array(); + + // definitions of services that are discovered. + protected $services = array(); + + // Used to track authenticated state, can't discover services after doing authenticate() + private $authenticated = false; + + /** + * Construct the Google Client. + * + * @param $config Google_Config or string for the ini file to load + */ + public function __construct($config = null) + { + if (is_string($config) && strlen($config)) { + $config = new Google_Config($config); + } else if ( !($config instanceof Google_Config)) { + $config = new Google_Config(); + + if ($this->isAppEngine()) { + // Automatically use Memcache if we're in AppEngine. + $config->setCacheClass('Google_Cache_Memcache'); + } + + if (version_compare(phpversion(), "5.3.4", "<=") || $this->isAppEngine()) { + // Automatically disable compress.zlib, as currently unsupported. + $config->setClassConfig('Google_Http_Request', 'disable_gzip', true); + } + } + + if ($config->getIoClass() == Google_Config::USE_AUTO_IO_SELECTION) { + if (function_exists('curl_version') && function_exists('curl_exec')) { + $config->setIoClass("Google_IO_Curl"); + } else { + $config->setIoClass("Google_IO_Stream"); + } + } + + $this->config = $config; + } + + /** + * Get a string containing the version of the library. + * + * @return string + */ + public function getLibraryVersion() + { + return self::LIBVER; + } + + /** + * Attempt to exchange a code for an valid authentication token. + * Helper wrapped around the OAuth 2.0 implementation. + * + * @param $code string code from accounts.google.com + * @return string token + */ + public function authenticate($code) + { + $this->authenticated = true; + return $this->getAuth()->authenticate($code); + } + + /** + * Set the auth config from the JSON string provided. + * This structure should match the file downloaded from + * the "Download JSON" button on in the Google Developer + * Console. + * @param string $json the configuration json + */ + public function setAuthConfig($json) + { + $data = json_decode($json); + $key = isset($data->installed) ? 'installed' : 'web'; + if (!isset($data->$key)) { + throw new Google_Exception("Invalid client secret JSON file."); + } + $this->setClientId($data->$key->client_id); + $this->setClientSecret($data->$key->client_secret); + if (isset($data->$key->redirect_uris)) { + $this->setRedirectUri($data->$key->redirect_uris[0]); + } + } + + /** + * Set the auth config from the JSON file in the path + * provided. This should match the file downloaded from + * the "Download JSON" button on in the Google Developer + * Console. + * @param string $file the file location of the client json + */ + public function setAuthConfigFile($file) + { + $this->setAuthConfig(file_get_contents($file)); + } + + /** + * @return array + * @visible For Testing + */ + public function prepareScopes() + { + if (empty($this->requestedScopes)) { + throw new Google_Auth_Exception("No scopes specified"); + } + $scopes = implode(' ', $this->requestedScopes); + return $scopes; + } + + /** + * Set the OAuth 2.0 access token using the string that resulted from calling createAuthUrl() + * or Google_Client#getAccessToken(). + * @param string $accessToken JSON encoded string containing in the following format: + * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer", + * "expires_in":3600, "id_token":"TOKEN", "created":1320790426} + */ + public function setAccessToken($accessToken) + { + if ($accessToken == 'null') { + $accessToken = null; + } + $this->getAuth()->setAccessToken($accessToken); + } + + + + /** + * Set the authenticator object + * @param Google_Auth_Abstract $auth + */ + public function setAuth(Google_Auth_Abstract $auth) + { + $this->config->setAuthClass(get_class($auth)); + $this->auth = $auth; + } + + /** + * Set the IO object + * @param Google_Io_Abstract $auth + */ + public function setIo(Google_Io_Abstract $io) + { + $this->config->setIoClass(get_class($io)); + $this->io = $io; + } + + /** + * Set the Cache object + * @param Google_Cache_Abstract $auth + */ + public function setCache(Google_Cache_Abstract $cache) + { + $this->config->setCacheClass(get_class($cache)); + $this->cache = $cache; + } + + /** + * Construct the OAuth 2.0 authorization request URI. + * @return string + */ + public function createAuthUrl() + { + $scopes = $this->prepareScopes(); + return $this->getAuth()->createAuthUrl($scopes); + } + + /** + * Get the OAuth 2.0 access token. + * @return string $accessToken JSON encoded string in the following format: + * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer", + * "expires_in":3600,"id_token":"TOKEN", "created":1320790426} + */ + public function getAccessToken() + { + $token = $this->getAuth()->getAccessToken(); + // The response is json encoded, so could be the string null. + // It is arguable whether this check should be here or lower + // in the library. + return (null == $token || 'null' == $token || '[]' == $token) ? null : $token; + } + + /** + * Get the OAuth 2.0 refresh token. + * @return string $refreshToken refresh token or null if not available + */ + public function getRefreshToken() + { + return $this->getAuth()->getRefreshToken(); + } + + /** + * Returns if the access_token is expired. + * @return bool Returns True if the access_token is expired. + */ + public function isAccessTokenExpired() + { + return $this->getAuth()->isAccessTokenExpired(); + } + + /** + * Set OAuth 2.0 "state" parameter to achieve per-request customization. + * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2 + * @param string $state + */ + public function setState($state) + { + $this->getAuth()->setState($state); + } + + /** + * @param string $accessType Possible values for access_type include: + * {@code "offline"} to request offline access from the user. + * {@code "online"} to request online access from the user. + */ + public function setAccessType($accessType) + { + $this->config->setAccessType($accessType); + } + + /** + * @param string $approvalPrompt Possible values for approval_prompt include: + * {@code "force"} to force the approval UI to appear. (This is the default value) + * {@code "auto"} to request auto-approval when possible. + */ + public function setApprovalPrompt($approvalPrompt) + { + $this->config->setApprovalPrompt($approvalPrompt); + } + + /** + * Set the login hint, email address or sub id. + * @param string $loginHint + */ + public function setLoginHint($loginHint) + { + $this->config->setLoginHint($loginHint); + } + + /** + * Set the application name, this is included in the User-Agent HTTP header. + * @param string $applicationName + */ + public function setApplicationName($applicationName) + { + $this->config->setApplicationName($applicationName); + } + + /** + * Set the OAuth 2.0 Client ID. + * @param string $clientId + */ + public function setClientId($clientId) + { + $this->config->setClientId($clientId); + } + + /** + * Set the OAuth 2.0 Client Secret. + * @param string $clientSecret + */ + public function setClientSecret($clientSecret) + { + $this->config->setClientSecret($clientSecret); + } + + /** + * Set the OAuth 2.0 Redirect URI. + * @param string $redirectUri + */ + public function setRedirectUri($redirectUri) + { + $this->config->setRedirectUri($redirectUri); + } + + /** + * If 'plus.login' is included in the list of requested scopes, you can use + * this method to define types of app activities that your app will write. + * You can find a list of available types here: + * @link https://developers.google.com/+/api/moment-types + * + * @param array $requestVisibleActions Array of app activity types + */ + public function setRequestVisibleActions($requestVisibleActions) + { + if (is_array($requestVisibleActions)) { + $requestVisibleActions = join(" ", $requestVisibleActions); + } + $this->config->setRequestVisibleActions($requestVisibleActions); + } + + /** + * Set the developer key to use, these are obtained through the API Console. + * @see http://code.google.com/apis/console-help/#generatingdevkeys + * @param string $developerKey + */ + public function setDeveloperKey($developerKey) + { + $this->config->setDeveloperKey($developerKey); + } + + /** + * Set the hd (hosted domain) parameter streamlines the login process for + * Google Apps hosted accounts. By including the domain of the user, you + * restrict sign-in to accounts at that domain. + * @param $hd string - the domain to use. + */ + public function setHostedDomain($hd) + { + $this->config->setHostedDomain($hd); + } + + /** + * Set the prompt hint. Valid values are none, consent and select_account. + * If no value is specified and the user has not previously authorized + * access, then the user is shown a consent screen. + * @param $prompt string + */ + public function setPrompt($prompt) + { + $this->config->setPrompt($prompt); + } + + /** + * openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth + * 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which + * an authentication request is valid. + * @param $realm string - the URL-space to use. + */ + public function setOpenidRealm($realm) + { + $this->config->setOpenidRealm($realm); + } + + /** + * If this is provided with the value true, and the authorization request is + * granted, the authorization will include any previous authorizations + * granted to this user/application combination for other scopes. + * @param $include boolean - the URL-space to use. + */ + public function setIncludeGrantedScopes($include) + { + $this->config->setIncludeGrantedScopes($include); + } + + /** + * Fetches a fresh OAuth 2.0 access token with the given refresh token. + * @param string $refreshToken + * @return void + */ + public function refreshToken($refreshToken) + { + return $this->getAuth()->refreshToken($refreshToken); + } + + /** + * Revoke an OAuth2 access token or refresh token. This method will revoke the current access + * token, if a token isn't provided. + * @throws Google_Auth_Exception + * @param string|null $token The token (access token or a refresh token) that should be revoked. + * @return boolean Returns True if the revocation was successful, otherwise False. + */ + public function revokeToken($token = null) + { + return $this->getAuth()->revokeToken($token); + } + + /** + * Verify an id_token. This method will verify the current id_token, if one + * isn't provided. + * @throws Google_Auth_Exception + * @param string|null $token The token (id_token) that should be verified. + * @return Google_Auth_LoginTicket Returns an apiLoginTicket if the verification was + * successful. + */ + public function verifyIdToken($token = null) + { + return $this->getAuth()->verifyIdToken($token); + } + + /** + * Verify a JWT that was signed with your own certificates. + * + * @param $jwt the token + * @param $certs array of certificates + * @param $required_audience the expected consumer of the token + * @param [$issuer] the expected issues, defaults to Google + * @param [$max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS + * @return token information if valid, false if not + */ + public function verifySignedJwt($id_token, $cert_location, $audience, $issuer, $max_expiry = null) + { + $auth = new Google_Auth_OAuth2($this); + $certs = $auth->retrieveCertsFromLocation($cert_location); + return $auth->verifySignedJwtWithCerts($id_token, $certs, $audience, $issuer, $max_expiry); + } + + /** + * @param Google_Auth_AssertionCredentials $creds + * @return void + */ + public function setAssertionCredentials(Google_Auth_AssertionCredentials $creds) + { + $this->getAuth()->setAssertionCredentials($creds); + } + + /** + * Set the scopes to be requested. Must be called before createAuthUrl(). + * Will remove any previously configured scopes. + * @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.login', + * 'https://www.googleapis.com/auth/moderator') + */ + public function setScopes($scopes) + { + $this->requestedScopes = array(); + $this->addScope($scopes); + } + + /** + * This functions adds a scope to be requested as part of the OAuth2.0 flow. + * Will append any scopes not previously requested to the scope parameter. + * A single string will be treated as a scope to request. An array of strings + * will each be appended. + * @param $scope_or_scopes string|array e.g. "profile" + */ + public function addScope($scope_or_scopes) + { + if (is_string($scope_or_scopes) && !in_array($scope_or_scopes, $this->requestedScopes)) { + $this->requestedScopes[] = $scope_or_scopes; + } else if (is_array($scope_or_scopes)) { + foreach ($scope_or_scopes as $scope) { + $this->addScope($scope); + } + } + } + + /** + * Returns the list of scopes requested by the client + * @return array the list of scopes + * + */ + public function getScopes() + { + return $this->requestedScopes; + } + + /** + * Declare whether batch calls should be used. This may increase throughput + * by making multiple requests in one connection. + * + * @param boolean $useBatch True if the batch support should + * be enabled. Defaults to False. + */ + public function setUseBatch($useBatch) + { + // This is actually an alias for setDefer. + $this->setDefer($useBatch); + } + + /** + * Declare whether making API calls should make the call immediately, or + * return a request which can be called with ->execute(); + * + * @param boolean $defer True if calls should not be executed right away. + */ + public function setDefer($defer) + { + $this->deferExecution = $defer; + } + + /** + * Helper method to execute deferred HTTP requests. + * + * @return object of the type of the expected class or array. + */ + public function execute($request) + { + if ($request instanceof Google_Http_Request) { + $request->setUserAgent( + $this->getApplicationName() + . " " . self::USER_AGENT_SUFFIX + . $this->getLibraryVersion() + ); + if (!$this->getClassConfig("Google_Http_Request", "disable_gzip")) { + $request->enableGzip(); + } + $request->maybeMoveParametersToBody(); + return Google_Http_REST::execute($this, $request); + } else if ($request instanceof Google_Http_Batch) { + return $request->execute(); + } else { + throw new Google_Exception("Do not know how to execute this type of object."); + } + } + + /** + * Whether or not to return raw requests + * @return boolean + */ + public function shouldDefer() + { + return $this->deferExecution; + } + + /** + * @return Google_Auth_Abstract Authentication implementation + */ + public function getAuth() + { + if (!isset($this->auth)) { + $class = $this->config->getAuthClass(); + $this->auth = new $class($this); + } + return $this->auth; + } + + /** + * @return Google_IO_Abstract IO implementation + */ + public function getIo() + { + if (!isset($this->io)) { + $class = $this->config->getIoClass(); + $this->io = new $class($this); + } + return $this->io; + } + + /** + * @return Google_Cache_Abstract Cache implementation + */ + public function getCache() + { + if (!isset($this->cache)) { + $class = $this->config->getCacheClass(); + $this->cache = new $class($this); + } + return $this->cache; + } + + /** + * Retrieve custom configuration for a specific class. + * @param $class string|object - class or instance of class to retrieve + * @param $key string optional - key to retrieve + */ + public function getClassConfig($class, $key = null) + { + if (!is_string($class)) { + $class = get_class($class); + } + return $this->config->getClassConfig($class, $key); + } + + /** + * Set configuration specific to a given class. + * $config->setClassConfig('Google_Cache_File', + * array('directory' => '/tmp/cache')); + * @param $class The class name for the configuration + * @param $config string key or an array of configuration values + * @param $value optional - if $config is a key, the value + * + */ + public function setClassConfig($class, $config, $value = null) + { + if (!is_string($class)) { + $class = get_class($class); + } + return $this->config->setClassConfig($class, $config, $value); + + } + + /** + * @return string the base URL to use for calls to the APIs + */ + public function getBasePath() + { + return $this->config->getBasePath(); + } + + /** + * @return string the name of the application + */ + public function getApplicationName() + { + return $this->config->getApplicationName(); + } + + /** + * Are we running in Google AppEngine? + * return bool + */ + public function isAppEngine() + { + return (isset($_SERVER['SERVER_SOFTWARE']) && + strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine') !== false); + } +} diff --git a/vendor/google/apiclient/src/Google/Collection.php b/vendor/google/apiclient/src/Google/Collection.php new file mode 100644 index 0000000..6e7bf9b --- /dev/null +++ b/vendor/google/apiclient/src/Google/Collection.php @@ -0,0 +1,96 @@ +modelData[$this->collection_key]) + && is_array($this->modelData[$this->collection_key])) { + reset($this->modelData[$this->collection_key]); + } + } + + public function current() + { + $this->coerceType($this->key()); + if (is_array($this->modelData[$this->collection_key])) { + return current($this->modelData[$this->collection_key]); + } + } + + public function key() + { + if (isset($this->modelData[$this->collection_key]) + && is_array($this->modelData[$this->collection_key])) { + return key($this->modelData[$this->collection_key]); + } + } + + public function next() + { + return next($this->modelData[$this->collection_key]); + } + + public function valid() + { + $key = $this->key(); + return $key !== null && $key !== false; + } + + public function count() + { + return count($this->modelData[$this->collection_key]); + } + + public function offsetExists ($offset) + { + if (!is_numeric($offset)) { + return parent::offsetExists($offset); + } + return isset($this->modelData[$this->collection_key][$offset]); + } + + public function offsetGet($offset) + { + if (!is_numeric($offset)) { + return parent::offsetGet($offset); + } + $this->coerceType($offset); + return $this->modelData[$this->collection_key][$offset]; + } + + public function offsetSet($offset, $value) + { + if (!is_numeric($offset)) { + return parent::offsetSet($offset, $value); + } + $this->modelData[$this->collection_key][$offset] = $value; + } + + public function offsetUnset($offset) + { + if (!is_numeric($offset)) { + return parent::offsetUnset($offset); + } + unset($this->modelData[$this->collection_key][$offset]); + } + + private function coerceType($offset) + { + $typeKey = $this->keyType($this->collection_key); + if (isset($this->$typeKey) && !is_object($this->modelData[$this->collection_key][$offset])) { + $type = $this->$typeKey; + $this->modelData[$this->collection_key][$offset] = + new $type($this->modelData[$this->collection_key][$offset]); + } + } +} diff --git a/vendor/google/apiclient/src/Google/Config.php b/vendor/google/apiclient/src/Google/Config.php new file mode 100644 index 0000000..8408305 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Config.php @@ -0,0 +1,371 @@ +configuration = array( + // The application_name is included in the User-Agent HTTP header. + 'application_name' => '', + + // Which Authentication, Storage and HTTP IO classes to use. + 'auth_class' => 'Google_Auth_OAuth2', + 'io_class' => self::USE_AUTO_IO_SELECTION, + 'cache_class' => 'Google_Cache_File', + + // Don't change these unless you're working against a special development + // or testing environment. + 'base_path' => 'https://www.googleapis.com', + + // Definition of class specific values, like file paths and so on. + 'classes' => array( + 'Google_IO_Abstract' => array( + 'request_timeout_seconds' => 100, + ), + 'Google_Http_Request' => array( + // Disable the use of gzip on calls if set to true. Defaults to false. + 'disable_gzip' => self::GZIP_ENABLED, + + // We default gzip to disabled on uploads even if gzip is otherwise + // enabled, due to some issues seen with small packet sizes for uploads. + // Please test with this option before enabling gzip for uploads in + // a production environment. + 'enable_gzip_for_uploads' => self::GZIP_UPLOADS_DISABLED, + ), + // If you want to pass in OAuth 2.0 settings, they will need to be + // structured like this. + 'Google_Auth_OAuth2' => array( + // Keys for OAuth 2.0 access, see the API console at + // https://developers.google.com/console + 'client_id' => '', + 'client_secret' => '', + 'redirect_uri' => '', + + // Simple API access key, also from the API console. Ensure you get + // a Server key, and not a Browser key. + 'developer_key' => '', + + // Other parameters. + 'hd' => '', + 'prompt' => '', + 'openid.realm' => '', + 'include_granted_scopes' => '', + 'login_hint' => '', + 'request_visible_actions' => '', + 'access_type' => 'online', + 'approval_prompt' => 'auto', + 'federated_signon_certs_url' => + 'https://www.googleapis.com/oauth2/v1/certs', + ), + // Set a default directory for the file cache. + 'Google_Cache_File' => array( + 'directory' => sys_get_temp_dir() . '/Google_Client' + ) + ), + ); + if ($ini_file_location) { + $ini = parse_ini_file($ini_file_location, true); + if (is_array($ini) && count($ini)) { + $this->configuration = array_merge($this->configuration, $ini); + } + } + } + + /** + * Set configuration specific to a given class. + * $config->setClassConfig('Google_Cache_File', + * array('directory' => '/tmp/cache')); + * @param $class The class name for the configuration + * @param $config string key or an array of configuration values + * @param $value optional - if $config is a key, the value + */ + public function setClassConfig($class, $config, $value = null) + { + if (!is_array($config)) { + if (!isset($this->configuration['classes'][$class])) { + $this->configuration['classes'][$class] = array(); + } + $this->configuration['classes'][$class][$config] = $value; + } else { + $this->configuration['classes'][$class] = $config; + } + } + + public function getClassConfig($class, $key = null) + { + if (!isset($this->configuration['classes'][$class])) { + return null; + } + if ($key === null) { + return $this->configuration['classes'][$class]; + } else { + return $this->configuration['classes'][$class][$key]; + } + } + + /** + * Return the configured cache class. + * @return string + */ + public function getCacheClass() + { + return $this->configuration['cache_class']; + } + + /** + * Return the configured Auth class. + * @return string + */ + public function getAuthClass() + { + return $this->configuration['auth_class']; + } + + /** + * Set the auth class. + * + * @param $class the class name to set + */ + public function setAuthClass($class) + { + $prev = $this->configuration['auth_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['auth_class'] = $class; + } + + /** + * Set the IO class. + * + * @param $class the class name to set + */ + public function setIoClass($class) + { + $prev = $this->configuration['io_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['io_class'] = $class; + } + + /** + * Set the cache class. + * + * @param $class the class name to set + */ + public function setCacheClass($class) + { + $prev = $this->configuration['cache_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['cache_class'] = $class; + } + + /** + * Return the configured IO class. + * @return string + */ + public function getIoClass() + { + return $this->configuration['io_class']; + } + + /** + * Set the application name, this is included in the User-Agent HTTP header. + * @param string $name + */ + public function setApplicationName($name) + { + $this->configuration['application_name'] = $name; + } + + /** + * @return string the name of the application + */ + public function getApplicationName() + { + return $this->configuration['application_name']; + } + + /** + * Set the client ID for the auth class. + * @param $key string - the API console client ID + */ + public function setClientId($clientId) + { + $this->setAuthConfig('client_id', $clientId); + } + + /** + * Set the client secret for the auth class. + * @param $key string - the API console client secret + */ + public function setClientSecret($secret) + { + $this->setAuthConfig('client_secret', $secret); + } + + /** + * Set the redirect uri for the auth class. Note that if using the + * Javascript based sign in flow, this should be the string 'postmessage'. + * @param $key string - the URI that users should be redirected to + */ + public function setRedirectUri($uri) + { + $this->setAuthConfig('redirect_uri', $uri); + } + + /** + * Set the app activities for the auth class. + * @param $rva string a space separated list of app activity types + */ + public function setRequestVisibleActions($rva) + { + $this->setAuthConfig('request_visible_actions', $rva); + } + + /** + * Set the the access type requested (offline or online.) + * @param $access string - the access type + */ + public function setAccessType($access) + { + $this->setAuthConfig('access_type', $access); + } + + /** + * Set when to show the approval prompt (auto or force) + * @param $approval string - the approval request + */ + public function setApprovalPrompt($approval) + { + $this->setAuthConfig('approval_prompt', $approval); + } + + /** + * Set the login hint (email address or sub identifier) + * @param $hint string + */ + public function setLoginHint($hint) + { + $this->setAuthConfig('login_hint', $hint); + } + + /** + * Set the developer key for the auth class. Note that this is separate value + * from the client ID - if it looks like a URL, its a client ID! + * @param $key string - the API console developer key + */ + public function setDeveloperKey($key) + { + $this->setAuthConfig('developer_key', $key); + } + + /** + * Set the hd (hosted domain) parameter streamlines the login process for + * Google Apps hosted accounts. By including the domain of the user, you + * restrict sign-in to accounts at that domain. + * @param $hd string - the domain to use. + */ + public function setHostedDomain($hd) + { + $this->setAuthConfig('hd', $hd); + } + + /** + * Set the prompt hint. Valid values are none, consent and select_account. + * If no value is specified and the user has not previously authorized + * access, then the user is shown a consent screen. + * @param $prompt string + */ + public function setPrompt($prompt) + { + $this->setAuthConfig('prompt', $prompt); + } + + /** + * openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth + * 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which + * an authentication request is valid. + * @param $realm string - the URL-space to use. + */ + public function setOpenidRealm($realm) + { + $this->setAuthConfig('openid.realm', $realm); + } + + /** + * If this is provided with the value true, and the authorization request is + * granted, the authorization will include any previous authorizations + * granted to this user/application combination for other scopes. + * @param $include boolean - the URL-space to use. + */ + public function setIncludeGrantedScopes($include) + { + $this->setAuthConfig( + 'include_granted_scopes', + $include ? "true" : "false" + ); + } + + /** + * @return string the base URL to use for API calls + */ + public function getBasePath() + { + return $this->configuration['base_path']; + } + + /** + * Set the auth configuration for the current auth class. + * @param $key - the key to set + * @param $value - the parameter value + */ + private function setAuthConfig($key, $value) + { + if (!isset($this->configuration['classes'][$this->getAuthClass()])) { + $this->configuration['classes'][$this->getAuthClass()] = array(); + } + $this->configuration['classes'][$this->getAuthClass()][$key] = $value; + } +} diff --git a/vendor/google/apiclient/src/Google/Exception.php b/vendor/google/apiclient/src/Google/Exception.php new file mode 100644 index 0000000..af80269 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Exception.php @@ -0,0 +1,20 @@ + + */ +class Google_Http_Batch +{ + /** @var string Multipart Boundary. */ + private $boundary; + + /** @var array service requests to be executed. */ + private $requests = array(); + + /** @var Google_Client */ + private $client; + + private $expected_classes = array(); + + private $base_path; + + public function __construct(Google_Client $client, $boundary = false) + { + $this->client = $client; + $this->base_path = $this->client->getBasePath(); + $this->expected_classes = array(); + $boundary = (false == $boundary) ? mt_rand() : $boundary; + $this->boundary = str_replace('"', '', $boundary); + } + + public function add(Google_Http_Request $request, $key = false) + { + if (false == $key) { + $key = mt_rand(); + } + + $this->requests[$key] = $request; + } + + public function execute() + { + $body = ''; + + /** @var Google_Http_Request $req */ + foreach ($this->requests as $key => $req) { + $body .= "--{$this->boundary}\n"; + $body .= $req->toBatchString($key) . "\n"; + $this->expected_classes["response-" . $key] = $req->getExpectedClass(); + } + + $body = rtrim($body); + $body .= "\n--{$this->boundary}--"; + + $url = $this->base_path . '/batch'; + $httpRequest = new Google_Http_Request($url, 'POST'); + $httpRequest->setRequestHeaders( + array('Content-Type' => 'multipart/mixed; boundary=' . $this->boundary) + ); + + $httpRequest->setPostBody($body); + $response = $this->client->getIo()->makeRequest($httpRequest); + + return $this->parseResponse($response); + } + + public function parseResponse(Google_Http_Request $response) + { + $contentType = $response->getResponseHeader('content-type'); + $contentType = explode(';', $contentType); + $boundary = false; + foreach ($contentType as $part) { + $part = (explode('=', $part, 2)); + if (isset($part[0]) && 'boundary' == trim($part[0])) { + $boundary = $part[1]; + } + } + + $body = $response->getResponseBody(); + if ($body) { + $body = str_replace("--$boundary--", "--$boundary", $body); + $parts = explode("--$boundary", $body); + $responses = array(); + + foreach ($parts as $part) { + $part = trim($part); + if (!empty($part)) { + list($metaHeaders, $part) = explode("\r\n\r\n", $part, 2); + $metaHeaders = $this->client->getIo()->getHttpResponseHeaders($metaHeaders); + + $status = substr($part, 0, strpos($part, "\n")); + $status = explode(" ", $status); + $status = $status[1]; + + list($partHeaders, $partBody) = $this->client->getIo()->ParseHttpResponse($part, false); + $response = new Google_Http_Request(""); + $response->setResponseHttpCode($status); + $response->setResponseHeaders($partHeaders); + $response->setResponseBody($partBody); + + // Need content id. + $key = $metaHeaders['content-id']; + + if (isset($this->expected_classes[$key]) && + strlen($this->expected_classes[$key]) > 0) { + $class = $this->expected_classes[$key]; + $response->setExpectedClass($class); + } + + try { + $response = Google_Http_REST::decodeHttpResponse($response); + $responses[$key] = $response; + } catch (Google_Service_Exception $e) { + // Store the exception as the response, so succesful responses + // can be processed. + $responses[$key] = $e; + } + } + } + + return $responses; + } + + return null; + } +} diff --git a/vendor/google/apiclient/src/Google/Http/CacheParser.php b/vendor/google/apiclient/src/Google/Http/CacheParser.php new file mode 100644 index 0000000..83f1c8d --- /dev/null +++ b/vendor/google/apiclient/src/Google/Http/CacheParser.php @@ -0,0 +1,184 @@ + + */ +class Google_Http_CacheParser +{ + public static $CACHEABLE_HTTP_METHODS = array('GET', 'HEAD'); + public static $CACHEABLE_STATUS_CODES = array('200', '203', '300', '301'); + + /** + * Check if an HTTP request can be cached by a private local cache. + * + * @static + * @param Google_Http_Request $resp + * @return bool True if the request is cacheable. + * False if the request is uncacheable. + */ + public static function isRequestCacheable(Google_Http_Request $resp) + { + $method = $resp->getRequestMethod(); + if (! in_array($method, self::$CACHEABLE_HTTP_METHODS)) { + return false; + } + + // Don't cache authorized requests/responses. + // [rfc2616-14.8] When a shared cache receives a request containing an + // Authorization field, it MUST NOT return the corresponding response + // as a reply to any other request... + if ($resp->getRequestHeader("authorization")) { + return false; + } + + return true; + } + + /** + * Check if an HTTP response can be cached by a private local cache. + * + * @static + * @param Google_Http_Request $resp + * @return bool True if the response is cacheable. + * False if the response is un-cacheable. + */ + public static function isResponseCacheable(Google_Http_Request $resp) + { + // First, check if the HTTP request was cacheable before inspecting the + // HTTP response. + if (false == self::isRequestCacheable($resp)) { + return false; + } + + $code = $resp->getResponseHttpCode(); + if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) { + return false; + } + + // The resource is uncacheable if the resource is already expired and + // the resource doesn't have an ETag for revalidation. + $etag = $resp->getResponseHeader("etag"); + if (self::isExpired($resp) && $etag == false) { + return false; + } + + // [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT + // store any part of either this response or the request that elicited it. + $cacheControl = $resp->getParsedCacheControl(); + if (isset($cacheControl['no-store'])) { + return false; + } + + // Pragma: no-cache is an http request directive, but is occasionally + // used as a response header incorrectly. + $pragma = $resp->getResponseHeader('pragma'); + if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) { + return false; + } + + // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that + // a cache cannot determine from the request headers of a subsequent request + // whether this response is the appropriate representation." + // Given this, we deem responses with the Vary header as uncacheable. + $vary = $resp->getResponseHeader('vary'); + if ($vary) { + return false; + } + + return true; + } + + /** + * @static + * @param Google_Http_Request $resp + * @return bool True if the HTTP response is considered to be expired. + * False if it is considered to be fresh. + */ + public static function isExpired(Google_Http_Request $resp) + { + // HTTP/1.1 clients and caches MUST treat other invalid date formats, + // especially including the value “0”, as in the past. + $parsedExpires = false; + $responseHeaders = $resp->getResponseHeaders(); + + if (isset($responseHeaders['expires'])) { + $rawExpires = $responseHeaders['expires']; + // Check for a malformed expires header first. + if (empty($rawExpires) || (is_numeric($rawExpires) && $rawExpires <= 0)) { + return true; + } + + // See if we can parse the expires header. + $parsedExpires = strtotime($rawExpires); + if (false == $parsedExpires || $parsedExpires <= 0) { + return true; + } + } + + // Calculate the freshness of an http response. + $freshnessLifetime = false; + $cacheControl = $resp->getParsedCacheControl(); + if (isset($cacheControl['max-age'])) { + $freshnessLifetime = $cacheControl['max-age']; + } + + $rawDate = $resp->getResponseHeader('date'); + $parsedDate = strtotime($rawDate); + + if (empty($rawDate) || false == $parsedDate) { + // We can't default this to now, as that means future cache reads + // will always pass with the logic below, so we will require a + // date be injected if not supplied. + throw new Google_Exception("All cacheable requests must have creation dates."); + } + + if (false == $freshnessLifetime && isset($responseHeaders['expires'])) { + $freshnessLifetime = $parsedExpires - $parsedDate; + } + + if (false == $freshnessLifetime) { + return true; + } + + // Calculate the age of an http response. + $age = max(0, time() - $parsedDate); + if (isset($responseHeaders['age'])) { + $age = max($age, strtotime($responseHeaders['age'])); + } + + return $freshnessLifetime <= $age; + } + + /** + * Determine if a cache entry should be revalidated with by the origin. + * + * @param Google_Http_Request $response + * @return bool True if the entry is expired, else return false. + */ + public static function mustRevalidate(Google_Http_Request $response) + { + // [13.3] When a cache has a stale entry that it would like to use as a + // response to a client's request, it first has to check with the origin + // server to see if its cached entry is still usable. + return self::isExpired($response); + } +} diff --git a/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php b/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php new file mode 100644 index 0000000..8005db4 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Http/MediaFileUpload.php @@ -0,0 +1,301 @@ + + * + */ +class Google_Http_MediaFileUpload +{ + const UPLOAD_MEDIA_TYPE = 'media'; + const UPLOAD_MULTIPART_TYPE = 'multipart'; + const UPLOAD_RESUMABLE_TYPE = 'resumable'; + + /** @var string $mimeType */ + private $mimeType; + + /** @var string $data */ + private $data; + + /** @var bool $resumable */ + private $resumable; + + /** @var int $chunkSize */ + private $chunkSize; + + /** @var int $size */ + private $size; + + /** @var string $resumeUri */ + private $resumeUri; + + /** @var int $progress */ + private $progress; + + /** @var Google_Client */ + private $client; + + /** @var Google_Http_Request */ + private $request; + + /** @var string */ + private $boundary; + + /** + * Result code from last HTTP call + * @var int + */ + private $httpResultCode; + + /** + * @param $mimeType string + * @param $data string The bytes you want to upload. + * @param $resumable bool + * @param bool $chunkSize File will be uploaded in chunks of this many bytes. + * only used if resumable=True + */ + public function __construct( + Google_Client $client, + Google_Http_Request $request, + $mimeType, + $data, + $resumable = false, + $chunkSize = false, + $boundary = false + ) { + $this->client = $client; + $this->request = $request; + $this->mimeType = $mimeType; + $this->data = $data; + $this->size = strlen($this->data); + $this->resumable = $resumable; + if (!$chunkSize) { + $chunkSize = 256 * 1024; + } + $this->chunkSize = $chunkSize; + $this->progress = 0; + $this->boundary = $boundary; + + // Process Media Request + $this->process(); + } + + /** + * Set the size of the file that is being uploaded. + * @param $size - int file size in bytes + */ + public function setFileSize($size) + { + $this->size = $size; + } + + /** + * Return the progress on the upload + * @return int progress in bytes uploaded. + */ + public function getProgress() + { + return $this->progress; + } + + /** + * Return the HTTP result code from the last call made. + * @return int code + */ + public function getHttpResultCode() + { + return $this->httpResultCode; + } + + /** + * Send the next part of the file to upload. + * @param [$chunk] the next set of bytes to send. If false will used $data passed + * at construct time. + */ + public function nextChunk($chunk = false) + { + if (false == $this->resumeUri) { + $this->resumeUri = $this->getResumeUri(); + } + + if (false == $chunk) { + $chunk = substr($this->data, $this->progress, $this->chunkSize); + } + + $lastBytePos = $this->progress + strlen($chunk) - 1; + $headers = array( + 'content-range' => "bytes $this->progress-$lastBytePos/$this->size", + 'content-type' => $this->request->getRequestHeader('content-type'), + 'content-length' => $this->chunkSize, + 'expect' => '', + ); + + $httpRequest = new Google_Http_Request( + $this->resumeUri, + 'PUT', + $headers, + $chunk + ); + + if ($this->client->getClassConfig("Google_Http_Request", "enable_gzip_for_uploads")) { + $httpRequest->enableGzip(); + } else { + $httpRequest->disableGzip(); + } + + $response = $this->client->getIo()->makeRequest($httpRequest); + $response->setExpectedClass($this->request->getExpectedClass()); + $code = $response->getResponseHttpCode(); + $this->httpResultCode = $code; + + if (308 == $code) { + // Track the amount uploaded. + $range = explode('-', $response->getResponseHeader('range')); + $this->progress = $range[1] + 1; + + // Allow for changing upload URLs. + $location = $response->getResponseHeader('location'); + if ($location) { + $this->resumeUri = $location; + } + + // No problems, but upload not complete. + return false; + } else { + return Google_Http_REST::decodeHttpResponse($response); + } + } + + /** + * @param $meta + * @param $params + * @return array|bool + * @visible for testing + */ + private function process() + { + $postBody = false; + $contentType = false; + + $meta = $this->request->getPostBody(); + $meta = is_string($meta) ? json_decode($meta, true) : $meta; + + $uploadType = $this->getUploadType($meta); + $this->request->setQueryParam('uploadType', $uploadType); + $this->transformToUploadUrl(); + $mimeType = $this->mimeType ? + $this->mimeType : + $this->request->getRequestHeader('content-type'); + + if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) { + $contentType = $mimeType; + $postBody = is_string($meta) ? $meta : json_encode($meta); + } else if (self::UPLOAD_MEDIA_TYPE == $uploadType) { + $contentType = $mimeType; + $postBody = $this->data; + } else if (self::UPLOAD_MULTIPART_TYPE == $uploadType) { + // This is a multipart/related upload. + $boundary = $this->boundary ? $this->boundary : mt_rand(); + $boundary = str_replace('"', '', $boundary); + $contentType = 'multipart/related; boundary=' . $boundary; + $related = "--$boundary\r\n"; + $related .= "Content-Type: application/json; charset=UTF-8\r\n"; + $related .= "\r\n" . json_encode($meta) . "\r\n"; + $related .= "--$boundary\r\n"; + $related .= "Content-Type: $mimeType\r\n"; + $related .= "Content-Transfer-Encoding: base64\r\n"; + $related .= "\r\n" . base64_encode($this->data) . "\r\n"; + $related .= "--$boundary--"; + $postBody = $related; + } + + $this->request->setPostBody($postBody); + + if (isset($contentType) && $contentType) { + $contentTypeHeader['content-type'] = $contentType; + $this->request->setRequestHeaders($contentTypeHeader); + } + } + + private function transformToUploadUrl() + { + $base = $this->request->getBaseComponent(); + $this->request->setBaseComponent($base . '/upload'); + } + + /** + * Valid upload types: + * - resumable (UPLOAD_RESUMABLE_TYPE) + * - media (UPLOAD_MEDIA_TYPE) + * - multipart (UPLOAD_MULTIPART_TYPE) + * @param $meta + * @return string + * @visible for testing + */ + public function getUploadType($meta) + { + if ($this->resumable) { + return self::UPLOAD_RESUMABLE_TYPE; + } + + if (false == $meta && $this->data) { + return self::UPLOAD_MEDIA_TYPE; + } + + return self::UPLOAD_MULTIPART_TYPE; + } + + private function getResumeUri() + { + $result = null; + $body = $this->request->getPostBody(); + if ($body) { + $headers = array( + 'content-type' => 'application/json; charset=UTF-8', + 'content-length' => Google_Utils::getStrLen($body), + 'x-upload-content-type' => $this->mimeType, + 'x-upload-content-length' => $this->size, + 'expect' => '', + ); + $this->request->setRequestHeaders($headers); + } + + $response = $this->client->getIo()->makeRequest($this->request); + $location = $response->getResponseHeader('location'); + $code = $response->getResponseHttpCode(); + + if (200 == $code && true == $location) { + return $location; + } + $message = $code; + $body = @json_decode($response->getResponseBody()); + if (!empty( $body->error->errors ) ) { + $message .= ': '; + foreach ($body->error->errors as $error) { + $message .= "{$error->domain}, {$error->message};"; + } + $message = rtrim($message, ';'); + } + throw new Google_Exception("Failed to start the resumable upload (HTTP {$message})"); + } +} diff --git a/vendor/google/apiclient/src/Google/Http/REST.php b/vendor/google/apiclient/src/Google/Http/REST.php new file mode 100644 index 0000000..3c318e4 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Http/REST.php @@ -0,0 +1,139 @@ + + * @author Chirag Shah + */ +class Google_Http_REST +{ + /** + * Executes a Google_Http_Request + * + * @param Google_Client $client + * @param Google_Http_Request $req + * @return array decoded result + * @throws Google_Service_Exception on server side error (ie: not authenticated, + * invalid or malformed post body, invalid url) + */ + public static function execute(Google_Client $client, Google_Http_Request $req) + { + $httpRequest = $client->getIo()->makeRequest($req); + $httpRequest->setExpectedClass($req->getExpectedClass()); + return self::decodeHttpResponse($httpRequest); + } + + /** + * Decode an HTTP Response. + * @static + * @throws Google_Service_Exception + * @param Google_Http_Request $response The http response to be decoded. + * @return mixed|null + */ + public static function decodeHttpResponse($response) + { + $code = $response->getResponseHttpCode(); + $body = $response->getResponseBody(); + $decoded = null; + + if ((intVal($code)) >= 300) { + $decoded = json_decode($body, true); + $err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl(); + if (isset($decoded['error']) && + isset($decoded['error']['message']) && + isset($decoded['error']['code'])) { + // if we're getting a json encoded error definition, use that instead of the raw response + // body for improved readability + $err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}"; + } else { + $err .= ": ($code) $body"; + } + + $errors = null; + // Specific check for APIs which don't return error details, such as Blogger. + if (isset($decoded['error']) && isset($decoded['error']['errors'])) { + $errors = $decoded['error']['errors']; + } + + throw new Google_Service_Exception($err, $code, null, $errors); + } + + // Only attempt to decode the response, if the response code wasn't (204) 'no content' + if ($code != '204') { + $decoded = json_decode($body, true); + if ($decoded === null || $decoded === "") { + throw new Google_Service_Exception("Invalid json in service response: $body"); + } + + if ($response->getExpectedClass()) { + $class = $response->getExpectedClass(); + $decoded = new $class($decoded); + } + } + return $decoded; + } + + /** + * Parse/expand request parameters and create a fully qualified + * request uri. + * @static + * @param string $servicePath + * @param string $restPath + * @param array $params + * @return string $requestUrl + */ + public static function createRequestUri($servicePath, $restPath, $params) + { + $requestUrl = $servicePath . $restPath; + $uriTemplateVars = array(); + $queryVars = array(); + foreach ($params as $paramName => $paramSpec) { + if ($paramSpec['type'] == 'boolean') { + $paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false'; + } + if ($paramSpec['location'] == 'path') { + $uriTemplateVars[$paramName] = $paramSpec['value']; + } else if ($paramSpec['location'] == 'query') { + if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) { + foreach ($paramSpec['value'] as $value) { + $queryVars[] = $paramName . '=' . rawurlencode($value); + } + } else { + $queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']); + } + } + } + + if (count($uriTemplateVars)) { + $uriTemplateParser = new Google_Utils_URITemplate(); + $requestUrl = $uriTemplateParser->parse($requestUrl, $uriTemplateVars); + } + + if (count($queryVars)) { + $requestUrl .= '?' . implode($queryVars, '&'); + } + + return $requestUrl; + } +} diff --git a/vendor/google/apiclient/src/Google/Http/Request.php b/vendor/google/apiclient/src/Google/Http/Request.php new file mode 100644 index 0000000..8643694 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Http/Request.php @@ -0,0 +1,476 @@ + + * @author Chirag Shah + * + */ +class Google_Http_Request +{ + const GZIP_UA = " (gzip)"; + + private $batchHeaders = array( + 'Content-Type' => 'application/http', + 'Content-Transfer-Encoding' => 'binary', + 'MIME-Version' => '1.0', + ); + + protected $queryParams; + protected $requestMethod; + protected $requestHeaders; + protected $baseComponent = null; + protected $path; + protected $postBody; + protected $userAgent; + protected $canGzip = null; + + protected $responseHttpCode; + protected $responseHeaders; + protected $responseBody; + + protected $expectedClass; + + public $accessKey; + + public function __construct( + $url, + $method = 'GET', + $headers = array(), + $postBody = null + ) { + $this->setUrl($url); + $this->setRequestMethod($method); + $this->setRequestHeaders($headers); + $this->setPostBody($postBody); + } + + /** + * Misc function that returns the base url component of the $url + * used by the OAuth signing class to calculate the base string + * @return string The base url component of the $url. + */ + public function getBaseComponent() + { + return $this->baseComponent; + } + + /** + * Set the base URL that path and query parameters will be added to. + * @param $baseComponent string + */ + public function setBaseComponent($baseComponent) + { + $this->baseComponent = $baseComponent; + } + + /** + * Enable support for gzipped responses with this request. + */ + public function enableGzip() + { + $this->setRequestHeaders(array("Accept-Encoding" => "gzip")); + $this->canGzip = true; + $this->setUserAgent($this->userAgent); + } + + /** + * Disable support for gzip responses with this request. + */ + public function disableGzip() + { + if ( + isset($this->requestHeaders['accept-encoding']) && + $this->requestHeaders['accept-encoding'] == "gzip" + ) { + unset($this->requestHeaders['accept-encoding']); + } + $this->canGzip = false; + $this->userAgent = str_replace(self::GZIP_UA, "", $this->userAgent); + } + + /** + * Can this request accept a gzip response? + * @return bool + */ + public function canGzip() + { + return $this->canGzip; + } + + /** + * Misc function that returns an array of the query parameters of the current + * url used by the OAuth signing class to calculate the signature + * @return array Query parameters in the query string. + */ + public function getQueryParams() + { + return $this->queryParams; + } + + /** + * Set a new query parameter. + * @param $key - string to set, does not need to be URL encoded + * @param $value - string to set, does not need to be URL encoded + */ + public function setQueryParam($key, $value) + { + $this->queryParams[$key] = $value; + } + + /** + * @return string HTTP Response Code. + */ + public function getResponseHttpCode() + { + return (int) $this->responseHttpCode; + } + + /** + * @param int $responseHttpCode HTTP Response Code. + */ + public function setResponseHttpCode($responseHttpCode) + { + $this->responseHttpCode = $responseHttpCode; + } + + /** + * @return $responseHeaders (array) HTTP Response Headers. + */ + public function getResponseHeaders() + { + return $this->responseHeaders; + } + + /** + * @return string HTTP Response Body + */ + public function getResponseBody() + { + return $this->responseBody; + } + + /** + * Set the class the response to this request should expect. + * + * @param $class string the class name + */ + public function setExpectedClass($class) + { + $this->expectedClass = $class; + } + + /** + * Retrieve the expected class the response should expect. + * @return string class name + */ + public function getExpectedClass() + { + return $this->expectedClass; + } + + /** + * @param array $headers The HTTP response headers + * to be normalized. + */ + public function setResponseHeaders($headers) + { + $headers = Google_Utils::normalize($headers); + if ($this->responseHeaders) { + $headers = array_merge($this->responseHeaders, $headers); + } + + $this->responseHeaders = $headers; + } + + /** + * @param string $key + * @return array|boolean Returns the requested HTTP header or + * false if unavailable. + */ + public function getResponseHeader($key) + { + return isset($this->responseHeaders[$key]) + ? $this->responseHeaders[$key] + : false; + } + + /** + * @param string $responseBody The HTTP response body. + */ + public function setResponseBody($responseBody) + { + $this->responseBody = $responseBody; + } + + /** + * @return string $url The request URL. + */ + public function getUrl() + { + return $this->baseComponent . $this->path . + (count($this->queryParams) ? + "?" . $this->buildQuery($this->queryParams) : + ''); + } + + /** + * @return string $method HTTP Request Method. + */ + public function getRequestMethod() + { + return $this->requestMethod; + } + + /** + * @return array $headers HTTP Request Headers. + */ + public function getRequestHeaders() + { + return $this->requestHeaders; + } + + /** + * @param string $key + * @return array|boolean Returns the requested HTTP header or + * false if unavailable. + */ + public function getRequestHeader($key) + { + return isset($this->requestHeaders[$key]) + ? $this->requestHeaders[$key] + : false; + } + + /** + * @return string $postBody HTTP Request Body. + */ + public function getPostBody() + { + return $this->postBody; + } + + /** + * @param string $url the url to set + */ + public function setUrl($url) + { + if (substr($url, 0, 4) != 'http') { + // Force the path become relative. + if (substr($url, 0, 1) !== '/') { + $url = '/' . $url; + } + } + $parts = parse_url($url); + if (isset($parts['host'])) { + $this->baseComponent = sprintf( + "%s%s%s", + isset($parts['scheme']) ? $parts['scheme'] . "://" : '', + isset($parts['host']) ? $parts['host'] : '', + isset($parts['port']) ? ":" . $parts['port'] : '' + ); + } + $this->path = isset($parts['path']) ? $parts['path'] : ''; + $this->queryParams = array(); + if (isset($parts['query'])) { + $this->queryParams = $this->parseQuery($parts['query']); + } + } + + /** + * @param string $method Set he HTTP Method and normalize + * it to upper-case, as required by HTTP. + * + */ + public function setRequestMethod($method) + { + $this->requestMethod = strtoupper($method); + } + + /** + * @param array $headers The HTTP request headers + * to be set and normalized. + */ + public function setRequestHeaders($headers) + { + $headers = Google_Utils::normalize($headers); + if ($this->requestHeaders) { + $headers = array_merge($this->requestHeaders, $headers); + } + $this->requestHeaders = $headers; + } + + /** + * @param string $postBody the postBody to set + */ + public function setPostBody($postBody) + { + $this->postBody = $postBody; + } + + /** + * Set the User-Agent Header. + * @param string $userAgent The User-Agent. + */ + public function setUserAgent($userAgent) + { + $this->userAgent = $userAgent; + if ($this->canGzip) { + $this->userAgent = $userAgent . self::GZIP_UA; + } + } + + /** + * @return string The User-Agent. + */ + public function getUserAgent() + { + return $this->userAgent; + } + + /** + * Returns a cache key depending on if this was an OAuth signed request + * in which case it will use the non-signed url and access key to make this + * cache key unique per authenticated user, else use the plain request url + * @return string The md5 hash of the request cache key. + */ + public function getCacheKey() + { + $key = $this->getUrl(); + + if (isset($this->accessKey)) { + $key .= $this->accessKey; + } + + if (isset($this->requestHeaders['authorization'])) { + $key .= $this->requestHeaders['authorization']; + } + + return md5($key); + } + + public function getParsedCacheControl() + { + $parsed = array(); + $rawCacheControl = $this->getResponseHeader('cache-control'); + if ($rawCacheControl) { + $rawCacheControl = str_replace(', ', '&', $rawCacheControl); + parse_str($rawCacheControl, $parsed); + } + + return $parsed; + } + + /** + * @param string $id + * @return string A string representation of the HTTP Request. + */ + public function toBatchString($id) + { + $str = ''; + $path = parse_url($this->getUrl(), PHP_URL_PATH) . "?" . + http_build_query($this->queryParams); + $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n"; + + foreach ($this->getRequestHeaders() as $key => $val) { + $str .= $key . ': ' . $val . "\n"; + } + + if ($this->getPostBody()) { + $str .= "\n"; + $str .= $this->getPostBody(); + } + + $headers = ''; + foreach ($this->batchHeaders as $key => $val) { + $headers .= $key . ': ' . $val . "\n"; + } + + $headers .= "Content-ID: $id\n"; + $str = $headers . "\n" . $str; + + return $str; + } + + /** + * Our own version of parse_str that allows for multiple variables + * with the same name. + * @param $string - the query string to parse + */ + private function parseQuery($string) + { + $return = array(); + $parts = explode("&", $string); + foreach ($parts as $part) { + list($key, $value) = explode('=', $part, 2); + $value = urldecode($value); + if (isset($return[$key])) { + if (!is_array($return[$key])) { + $return[$key] = array($return[$key]); + } + $return[$key][] = $value; + } else { + $return[$key] = $value; + } + } + return $return; + } + + /** + * A version of build query that allows for multiple + * duplicate keys. + * @param $parts array of key value pairs + */ + private function buildQuery($parts) + { + $return = array(); + foreach ($parts as $key => $value) { + if (is_array($value)) { + foreach ($value as $v) { + $return[] = urlencode($key) . "=" . urlencode($v); + } + } else { + $return[] = urlencode($key) . "=" . urlencode($value); + } + } + return implode('&', $return); + } + + /** + * If we're POSTing and have no body to send, we can send the query + * parameters in there, which avoids length issues with longer query + * params. + */ + public function maybeMoveParametersToBody() + { + if ($this->getRequestMethod() == "POST" && empty($this->postBody)) { + $this->setRequestHeaders( + array( + "content-type" => + "application/x-www-form-urlencoded; charset=UTF-8" + ) + ); + $this->setPostBody($this->buildQuery($this->queryParams)); + $this->queryParams = array(); + } + } +} diff --git a/vendor/google/apiclient/src/Google/IO/Abstract.php b/vendor/google/apiclient/src/Google/IO/Abstract.php new file mode 100644 index 0000000..a4025e8 --- /dev/null +++ b/vendor/google/apiclient/src/Google/IO/Abstract.php @@ -0,0 +1,332 @@ + null, "PUT" => null); + + /** @var Google_Client */ + protected $client; + + public function __construct(Google_Client $client) + { + $this->client = $client; + $timeout = $client->getClassConfig('Google_IO_Abstract', 'request_timeout_seconds'); + if ($timeout > 0) { + $this->setTimeout($timeout); + } + } + + /** + * Executes a Google_Http_Request and returns the resulting populated Google_Http_Request + * @param Google_Http_Request $request + * @return Google_Http_Request $request + */ + abstract public function executeRequest(Google_Http_Request $request); + + /** + * Set options that update the transport implementation's behavior. + * @param $options + */ + abstract public function setOptions($options); + + /** + * Set the maximum request time in seconds. + * @param $timeout in seconds + */ + abstract public function setTimeout($timeout); + + /** + * Get the maximum request time in seconds. + * @return timeout in seconds + */ + abstract public function getTimeout(); + + /** + * Test for the presence of a cURL header processing bug + * + * The cURL bug was present in versions prior to 7.30.0 and caused the header + * length to be miscalculated when a "Connection established" header added by + * some proxies was present. + * + * @return boolean + */ + abstract protected function needsQuirk(); + + /** + * @visible for testing. + * Cache the response to an HTTP request if it is cacheable. + * @param Google_Http_Request $request + * @return bool Returns true if the insertion was successful. + * Otherwise, return false. + */ + public function setCachedRequest(Google_Http_Request $request) + { + // Determine if the request is cacheable. + if (Google_Http_CacheParser::isResponseCacheable($request)) { + $this->client->getCache()->set($request->getCacheKey(), $request); + return true; + } + + return false; + } + + /** + * Execute an HTTP Request + * + * @param Google_HttpRequest $request the http request to be executed + * @return Google_HttpRequest http request with the response http code, + * response headers and response body filled in + * @throws Google_IO_Exception on curl or IO error + */ + public function makeRequest(Google_Http_Request $request) + { + // First, check to see if we have a valid cached version. + $cached = $this->getCachedRequest($request); + if ($cached !== false && $cached instanceof Google_Http_Request) { + if (!$this->checkMustRevalidateCachedRequest($cached, $request)) { + return $cached; + } + } + + if (array_key_exists($request->getRequestMethod(), self::$ENTITY_HTTP_METHODS)) { + $request = $this->processEntityRequest($request); + } + + list($responseData, $responseHeaders, $respHttpCode) = $this->executeRequest($request); + + if ($respHttpCode == 304 && $cached) { + // If the server responded NOT_MODIFIED, return the cached request. + $this->updateCachedRequest($cached, $responseHeaders); + return $cached; + } + + if (!isset($responseHeaders['Date']) && !isset($responseHeaders['date'])) { + $responseHeaders['Date'] = date("r"); + } + + $request->setResponseHttpCode($respHttpCode); + $request->setResponseHeaders($responseHeaders); + $request->setResponseBody($responseData); + // Store the request in cache (the function checks to see if the request + // can actually be cached) + $this->setCachedRequest($request); + return $request; + } + + /** + * @visible for testing. + * @param Google_Http_Request $request + * @return Google_Http_Request|bool Returns the cached object or + * false if the operation was unsuccessful. + */ + public function getCachedRequest(Google_Http_Request $request) + { + if (false === Google_Http_CacheParser::isRequestCacheable($request)) { + return false; + } + + return $this->client->getCache()->get($request->getCacheKey()); + } + + /** + * @visible for testing + * Process an http request that contains an enclosed entity. + * @param Google_Http_Request $request + * @return Google_Http_Request Processed request with the enclosed entity. + */ + public function processEntityRequest(Google_Http_Request $request) + { + $postBody = $request->getPostBody(); + $contentType = $request->getRequestHeader("content-type"); + + // Set the default content-type as application/x-www-form-urlencoded. + if (false == $contentType) { + $contentType = self::FORM_URLENCODED; + $request->setRequestHeaders(array('content-type' => $contentType)); + } + + // Force the payload to match the content-type asserted in the header. + if ($contentType == self::FORM_URLENCODED && is_array($postBody)) { + $postBody = http_build_query($postBody, '', '&'); + $request->setPostBody($postBody); + } + + // Make sure the content-length header is set. + if (!$postBody || is_string($postBody)) { + $postsLength = strlen($postBody); + $request->setRequestHeaders(array('content-length' => $postsLength)); + } + + return $request; + } + + /** + * Check if an already cached request must be revalidated, and if so update + * the request with the correct ETag headers. + * @param Google_Http_Request $cached A previously cached response. + * @param Google_Http_Request $request The outbound request. + * return bool If the cached object needs to be revalidated, false if it is + * still current and can be re-used. + */ + protected function checkMustRevalidateCachedRequest($cached, $request) + { + if (Google_Http_CacheParser::mustRevalidate($cached)) { + $addHeaders = array(); + if ($cached->getResponseHeader('etag')) { + // [13.3.4] If an entity tag has been provided by the origin server, + // we must use that entity tag in any cache-conditional request. + $addHeaders['If-None-Match'] = $cached->getResponseHeader('etag'); + } elseif ($cached->getResponseHeader('date')) { + $addHeaders['If-Modified-Since'] = $cached->getResponseHeader('date'); + } + + $request->setRequestHeaders($addHeaders); + return true; + } else { + return false; + } + } + + /** + * Update a cached request, using the headers from the last response. + * @param Google_HttpRequest $cached A previously cached response. + * @param mixed Associative array of response headers from the last request. + */ + protected function updateCachedRequest($cached, $responseHeaders) + { + if (isset($responseHeaders['connection'])) { + $hopByHop = array_merge( + self::$HOP_BY_HOP, + explode( + ',', + $responseHeaders['connection'] + ) + ); + + $endToEnd = array(); + foreach ($hopByHop as $key) { + if (isset($responseHeaders[$key])) { + $endToEnd[$key] = $responseHeaders[$key]; + } + } + $cached->setResponseHeaders($endToEnd); + } + } + + /** + * Used by the IO lib and also the batch processing. + * + * @param $respData + * @param $headerSize + * @return array + */ + public function parseHttpResponse($respData, $headerSize) + { + // check proxy header + foreach (self::$CONNECTION_ESTABLISHED_HEADERS as $established_header) { + if (stripos($respData, $established_header) !== false) { + // existed, remove it + $respData = str_ireplace($established_header, '', $respData); + // Subtract the proxy header size unless the cURL bug prior to 7.30.0 + // is present which prevented the proxy header size from being taken into + // account. + if (!$this->needsQuirk()) { + $headerSize -= strlen($established_header); + } + break; + } + } + + if ($headerSize) { + $responseBody = substr($respData, $headerSize); + $responseHeaders = substr($respData, 0, $headerSize); + } else { + $responseSegments = explode("\r\n\r\n", $respData, 2); + $responseHeaders = $responseSegments[0]; + $responseBody = isset($responseSegments[1]) ? $responseSegments[1] : + null; + } + + $responseHeaders = $this->getHttpResponseHeaders($responseHeaders); + return array($responseHeaders, $responseBody); + } + + /** + * Parse out headers from raw headers + * @param rawHeaders array or string + * @return array + */ + public function getHttpResponseHeaders($rawHeaders) + { + if (is_array($rawHeaders)) { + return $this->parseArrayHeaders($rawHeaders); + } else { + return $this->parseStringHeaders($rawHeaders); + } + } + + private function parseStringHeaders($rawHeaders) + { + $headers = array(); + $responseHeaderLines = explode("\r\n", $rawHeaders); + foreach ($responseHeaderLines as $headerLine) { + if ($headerLine && strpos($headerLine, ':') !== false) { + list($header, $value) = explode(': ', $headerLine, 2); + $header = strtolower($header); + if (isset($headers[$header])) { + $headers[$header] .= "\n" . $value; + } else { + $headers[$header] = $value; + } + } + } + return $headers; + } + + private function parseArrayHeaders($rawHeaders) + { + $header_count = count($rawHeaders); + $headers = array(); + + for ($i = 0; $i < $header_count; $i++) { + $header = $rawHeaders[$i]; + // Times will have colons in - so we just want the first match. + $header_parts = explode(': ', $header, 2); + if (count($header_parts) == 2) { + $headers[$header_parts[0]] = $header_parts[1]; + } + } + + return $headers; + } +} diff --git a/vendor/google/apiclient/src/Google/IO/Curl.php b/vendor/google/apiclient/src/Google/IO/Curl.php new file mode 100644 index 0000000..57a0571 --- /dev/null +++ b/vendor/google/apiclient/src/Google/IO/Curl.php @@ -0,0 +1,137 @@ + + */ + +require_once 'Google/IO/Abstract.php'; + +class Google_IO_Curl extends Google_IO_Abstract +{ + // cURL hex representation of version 7.30.0 + const NO_QUIRK_VERSION = 0x071E00; + + private $options = array(); + /** + * Execute an HTTP Request + * + * @param Google_HttpRequest $request the http request to be executed + * @return Google_HttpRequest http request with the response http code, + * response headers and response body filled in + * @throws Google_IO_Exception on curl or IO error + */ + public function executeRequest(Google_Http_Request $request) + { + $curl = curl_init(); + + if ($request->getPostBody()) { + curl_setopt($curl, CURLOPT_POSTFIELDS, $request->getPostBody()); + } + + $requestHeaders = $request->getRequestHeaders(); + if ($requestHeaders && is_array($requestHeaders)) { + $curlHeaders = array(); + foreach ($requestHeaders as $k => $v) { + $curlHeaders[] = "$k: $v"; + } + curl_setopt($curl, CURLOPT_HTTPHEADER, $curlHeaders); + } + + curl_setopt($curl, CURLOPT_URL, $request->getUrl()); + + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod()); + curl_setopt($curl, CURLOPT_USERAGENT, $request->getUserAgent()); + + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_HEADER, true); + + if ($request->canGzip()) { + curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); + } + + foreach ($this->options as $key => $var) { + curl_setopt($curl, $key, $var); + } + + if (!isset($this->options[CURLOPT_CAINFO])) { + curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem'); + } + + $response = curl_exec($curl); + if ($response === false) { + throw new Google_IO_Exception(curl_error($curl)); + } + $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE); + + list($responseHeaders, $responseBody) = $this->parseHttpResponse($response, $headerSize); + + $responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + + return array($responseBody, $responseHeaders, $responseCode); + } + + /** + * Set options that update the transport implementation's behavior. + * @param $options + */ + public function setOptions($options) + { + $this->options = $options + $this->options; + } + + /** + * Set the maximum request time in seconds. + * @param $timeout in seconds + */ + public function setTimeout($timeout) + { + // Since this timeout is really for putting a bound on the time + // we'll set them both to the same. If you need to specify a longer + // CURLOPT_TIMEOUT, or a tigher CONNECTTIMEOUT, the best thing to + // do is use the setOptions method for the values individually. + $this->options[CURLOPT_CONNECTTIMEOUT] = $timeout; + $this->options[CURLOPT_TIMEOUT] = $timeout; + } + + /** + * Get the maximum request time in seconds. + * @return timeout in seconds + */ + public function getTimeout() + { + return $this->options[CURLOPT_TIMEOUT]; + } + + /** + * Test for the presence of a cURL header processing bug + * + * {@inheritDoc} + * + * @return boolean + */ + protected function needsQuirk() + { + $ver = curl_version(); + $versionNum = $ver['version_number']; + return $versionNum < Google_IO_Curl::NO_QUIRK_VERSION; + } +} diff --git a/vendor/google/apiclient/src/Google/IO/Exception.php b/vendor/google/apiclient/src/Google/IO/Exception.php new file mode 100644 index 0000000..28c2d8c --- /dev/null +++ b/vendor/google/apiclient/src/Google/IO/Exception.php @@ -0,0 +1,22 @@ + + */ + +require_once 'Google/IO/Abstract.php'; + +class Google_IO_Stream extends Google_IO_Abstract +{ + const TIMEOUT = "timeout"; + const ZLIB = "compress.zlib://"; + private $options = array(); + private $trappedErrorNumber; + private $trappedErrorString; + + private static $DEFAULT_HTTP_CONTEXT = array( + "follow_location" => 0, + "ignore_errors" => 1, + ); + + private static $DEFAULT_SSL_CONTEXT = array( + "verify_peer" => true, + ); + + /** + * Execute an HTTP Request + * + * @param Google_HttpRequest $request the http request to be executed + * @return Google_HttpRequest http request with the response http code, + * response headers and response body filled in + * @throws Google_IO_Exception on curl or IO error + */ + public function executeRequest(Google_Http_Request $request) + { + $default_options = stream_context_get_options(stream_context_get_default()); + + $requestHttpContext = array_key_exists('http', $default_options) ? + $default_options['http'] : array(); + + if ($request->getPostBody()) { + $requestHttpContext["content"] = $request->getPostBody(); + } + + $requestHeaders = $request->getRequestHeaders(); + if ($requestHeaders && is_array($requestHeaders)) { + $headers = ""; + foreach ($requestHeaders as $k => $v) { + $headers .= "$k: $v\r\n"; + } + $requestHttpContext["header"] = $headers; + } + + $requestHttpContext["method"] = $request->getRequestMethod(); + $requestHttpContext["user_agent"] = $request->getUserAgent(); + + $requestSslContext = array_key_exists('ssl', $default_options) ? + $default_options['ssl'] : array(); + + if (!array_key_exists("cafile", $requestSslContext)) { + $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem'; + } + + $options = array( + "http" => array_merge( + self::$DEFAULT_HTTP_CONTEXT, + $requestHttpContext + ), + "ssl" => array_merge( + self::$DEFAULT_SSL_CONTEXT, + $requestSslContext + ) + ); + + $context = stream_context_create($options); + + $url = $request->getUrl(); + + if ($request->canGzip()) { + $url = self::ZLIB . $url; + } + + // We are trapping any thrown errors in this method only and + // throwing an exception. + $this->trappedErrorNumber = null; + $this->trappedErrorString = null; + + // START - error trap. + set_error_handler(array($this, 'trapError')); + $fh = fopen($url, 'r', false, $context); + restore_error_handler(); + // END - error trap. + + if ($this->trappedErrorNumber) { + throw new Google_IO_Exception( + sprintf( + "HTTP Error: Unable to connect: '%s'", + $this->trappedErrorString + ), + $this->trappedErrorNumber + ); + } + + $response_data = false; + $respHttpCode = self::UNKNOWN_CODE; + if ($fh) { + if (isset($this->options[self::TIMEOUT])) { + stream_set_timeout($fh, $this->options[self::TIMEOUT]); + } + + $response_data = stream_get_contents($fh); + fclose($fh); + + $respHttpCode = $this->getHttpResponseCode($http_response_header); + } + + if (false === $response_data) { + throw new Google_IO_Exception( + sprintf( + "HTTP Error: Unable to connect: '%s'", + $respHttpCode + ), + $respHttpCode + ); + } + + $responseHeaders = $this->getHttpResponseHeaders($http_response_header); + + return array($response_data, $responseHeaders, $respHttpCode); + } + + /** + * Set options that update the transport implementation's behavior. + * @param $options + */ + public function setOptions($options) + { + $this->options = $options + $this->options; + } + + /** + * Method to handle errors, used for error handling around + * stream connection methods. + */ + public function trapError($errno, $errstr) + { + $this->trappedErrorNumber = $errno; + $this->trappedErrorString = $errstr; + } + + /** + * Set the maximum request time in seconds. + * @param $timeout in seconds + */ + public function setTimeout($timeout) + { + $this->options[self::TIMEOUT] = $timeout; + } + + /** + * Get the maximum request time in seconds. + * @return timeout in seconds + */ + public function getTimeout() + { + return $this->options[self::TIMEOUT]; + } + + /** + * Test for the presence of a cURL header processing bug + * + * {@inheritDoc} + * + * @return boolean + */ + protected function needsQuirk() + { + return false; + } + + protected function getHttpResponseCode($response_headers) + { + $header_count = count($response_headers); + + for ($i = 0; $i < $header_count; $i++) { + $header = $response_headers[$i]; + if (strncasecmp("HTTP", $header, strlen("HTTP")) == 0) { + $response = explode(' ', $header); + return $response[1]; + } + } + return self::UNKNOWN_CODE; + } +} diff --git a/vendor/google/apiclient/src/Google/IO/cacerts.pem b/vendor/google/apiclient/src/Google/IO/cacerts.pem new file mode 100644 index 0000000..70990f1 --- /dev/null +++ b/vendor/google/apiclient/src/Google/IO/cacerts.pem @@ -0,0 +1,2183 @@ +# Issuer: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc. +# Subject: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc. +# Label: "GTE CyberTrust Global Root" +# Serial: 421 +# MD5 Fingerprint: ca:3d:d3:68:f1:03:5c:d0:32:fa:b8:2b:59:e8:5a:db +# SHA1 Fingerprint: 97:81:79:50:d8:1c:96:70:cc:34:d8:09:cf:79:44:31:36:7e:f4:74 +# SHA256 Fingerprint: a5:31:25:18:8d:21:10:aa:96:4b:02:c7:b7:c6:da:32:03:17:08:94:e5:fb:71:ff:fb:66:67:d5:e6:81:0a:36 +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD +VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv +bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv +b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV +UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU +cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds +b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH +iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS +r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4 +04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r +GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9 +3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P +lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- + +# Issuer: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division +# Subject: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division +# Label: "Thawte Server CA" +# Serial: 1 +# MD5 Fingerprint: c5:70:c4:a2:ed:53:78:0c:c8:10:53:81:64:cb:d0:1d +# SHA1 Fingerprint: 23:e5:94:94:51:95:f2:41:48:03:b4:d5:64:d2:a3:a3:f5:d8:8b:8c +# SHA256 Fingerprint: b4:41:0b:73:e2:e6:ea:ca:47:fb:c4:2f:8f:a4:01:8a:f4:38:1d:c5:4c:fa:a8:44:50:46:1e:ed:09:45:4d:e9 +-----BEGIN CERTIFICATE----- +MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx +FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD +VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm +MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx +MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3 +dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl +cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3 +DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD +gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91 +yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX +L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj +EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG +7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e +QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ +qdq5snUb9kLy78fyGPmJvKP/iiMucEc= +-----END CERTIFICATE----- + +# Issuer: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division +# Subject: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division +# Label: "Thawte Premium Server CA" +# Serial: 1 +# MD5 Fingerprint: 06:9f:69:79:16:66:90:02:1b:8c:8c:a2:c3:07:6f:3a +# SHA1 Fingerprint: 62:7f:8d:78:27:65:63:99:d2:7d:7f:90:44:c9:fe:b3:f3:3e:fa:9a +# SHA256 Fingerprint: ab:70:36:36:5c:71:54:aa:29:c2:c2:9f:5d:41:91:16:3b:16:2a:22:25:01:13:57:d5:6d:07:ff:a7:bc:1f:72 +-----BEGIN CERTIFICATE----- +MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx +FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD +VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy +dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t +MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB +MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG +A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp +b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl +cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv +bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE +VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ +ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR +uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG +9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI +hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM +pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg== +-----END CERTIFICATE----- + +# Issuer: O=Equifax OU=Equifax Secure Certificate Authority +# Subject: O=Equifax OU=Equifax Secure Certificate Authority +# Label: "Equifax Secure CA" +# Serial: 903804111 +# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4 +# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a +# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----END CERTIFICATE----- + +# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Label: "Verisign Class 3 Public Primary Certification Authority" +# Serial: 149843929435818692848040365716851702463 +# MD5 Fingerprint: 10:fc:63:5d:f6:26:3e:0d:f3:25:be:5f:79:cd:67:67 +# SHA1 Fingerprint: 74:2c:31:92:e6:07:e4:24:eb:45:49:54:2b:e1:bb:c5:3e:61:74:e2 +# SHA256 Fingerprint: e7:68:56:34:ef:ac:f6:9a:ce:93:9a:6b:25:5b:7b:4f:ab:ef:42:93:5b:50:a2:65:ac:b5:cb:60:27:e4:4e:70 +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG +A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz +cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 +MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV +BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE +BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is +I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G +CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do +lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc +AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k +-----END CERTIFICATE----- + +# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network +# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network +# Label: "Verisign Class 3 Public Primary Certification Authority - G2" +# Serial: 167285380242319648451154478808036881606 +# MD5 Fingerprint: a2:33:9b:4c:74:78:73:d4:6c:e7:c1:f3:8d:cb:5c:e9 +# SHA1 Fingerprint: 85:37:1c:a6:e5:50:14:3d:ce:28:03:47:1b:de:3a:09:e8:f8:77:0f +# SHA256 Fingerprint: 83:ce:3c:12:29:68:8a:59:3d:48:5f:81:97:3c:0f:91:95:43:1e:da:37:cc:5e:36:43:0e:79:c7:a8:88:63:8b +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ +BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh +c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy +MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp +emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X +DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw +FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg +UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo +YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 +MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4 +pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0 +13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID +AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk +U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i +F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY +oJ2daZH9 +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Label: "GlobalSign Root CA" +# Serial: 4835703278459707669005204 +# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a +# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c +# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99 +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw +MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT +aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ +jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp +xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp +1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG +snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ +U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 +9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B +AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz +yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE +38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP +AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad +DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME +HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Label: "GlobalSign Root CA - R2" +# Serial: 4835703278459682885658125 +# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30 +# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe +# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority +# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority +# Label: "ValiCert Class 1 VA" +# Serial: 1 +# MD5 Fingerprint: 65:58:ab:15:ad:57:6c:1e:a8:a7:b5:69:ac:bf:ff:eb +# SHA1 Fingerprint: e5:df:74:3c:b6:01:c4:9b:98:43:dc:ab:8c:e8:6a:81:10:9f:e4:8e +# SHA256 Fingerprint: f4:c1:49:55:1a:30:13:a3:5b:c7:bf:fe:17:a7:f3:44:9b:c1:ab:5b:5a:0a:e7:4b:06:c2:3b:90:00:4c:01:04 +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy +NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y +LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+ +TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y +TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0 +LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW +I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw +nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI +-----END CERTIFICATE----- + +# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority +# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority +# Label: "ValiCert Class 2 VA" +# Serial: 1 +# MD5 Fingerprint: a9:23:75:9b:ba:49:36:6e:31:c2:db:f2:e7:66:ba:87 +# SHA1 Fingerprint: 31:7a:2a:d0:7f:2b:33:5e:f5:a1:c3:4e:4b:57:e8:b7:d8:f1:fc:a6 +# SHA256 Fingerprint: 58:d0:17:27:9c:d4:dc:63:ab:dd:b1:96:a6:c9:90:6c:30:c4:e0:87:83:ea:e8:c1:60:99:54:d6:93:55:59:6b +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy +NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY +dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 +WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS +v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v +UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu +IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC +W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd +-----END CERTIFICATE----- + +# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority +# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority +# Label: "RSA Root Certificate 1" +# Serial: 1 +# MD5 Fingerprint: a2:6f:53:b7:ee:40:db:4a:68:e7:fa:18:d9:10:4b:72 +# SHA1 Fingerprint: 69:bd:8c:f4:9c:d3:00:fb:59:2e:17:93:ca:55:6a:f3:ec:aa:35:fb +# SHA256 Fingerprint: bc:23:f9:8a:31:3c:b9:2d:e3:bb:fc:3a:5a:9f:44:61:ac:39:49:4c:4a:e1:5a:9e:9d:f1:31:e9:9b:73:01:9a +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy +NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD +cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs +2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY +JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE +Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ +n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A +PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only +# Label: "Verisign Class 3 Public Primary Certification Authority - G3" +# Serial: 206684696279472310254277870180966723415 +# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09 +# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6 +# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44 +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl +cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu +LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT +aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD +VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT +aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ +bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu +IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b +N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t +KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu +kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm +CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ +Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu +imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te +2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe +DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p +F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt +TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only +# Label: "Verisign Class 4 Public Primary Certification Authority - G3" +# Serial: 314531972711909413743075096039378935511 +# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df +# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d +# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06 +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl +cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu +LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT +aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD +VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT +aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ +bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu +IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1 +GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ ++mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd +U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm +NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY +ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ +ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1 +CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq +g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c +2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/ +bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Subject: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Label: "Entrust.net Secure Server CA" +# Serial: 927650371 +# MD5 Fingerprint: df:f2:80:73:cc:f1:e6:61:73:fc:f5:42:e9:c5:7c:ee +# SHA1 Fingerprint: 99:a6:9b:e6:1a:fe:88:6b:4d:2b:82:00:7c:b8:54:fc:31:7e:15:39 +# SHA256 Fingerprint: 62:f2:40:27:8c:56:4c:4d:d8:bf:7d:9d:4f:6f:36:6e:a8:94:d2:2f:5f:34:d9:89:a9:83:ac:ec:2f:ff:ed:50 +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC +VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u +ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc +KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u +ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1 +MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE +ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j +b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg +U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/ +I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3 +wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC +AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb +oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5 +BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p +dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk +MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp +b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0 +MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi +E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa +MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI +hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN +95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd +2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- + +# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Label: "Entrust.net Premium 2048 Secure Server CA" +# Serial: 946059622 +# MD5 Fingerprint: ba:21:ea:20:d6:dd:db:8f:c1:57:8b:40:ad:a1:fc:fc +# SHA1 Fingerprint: 80:1d:62:d0:7b:44:9d:5c:5c:03:5c:98:ea:61:fa:44:3c:2a:58:fe +# SHA256 Fingerprint: d1:c3:39:ea:27:84:eb:87:0f:93:4f:c5:63:4e:4a:a9:ad:55:05:01:64:01:f2:64:65:d3:7a:57:46:63:35:9f +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML +RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp +bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 +IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy +MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 +LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp +YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG +A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq +K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe +sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX +MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT +XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ +HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH +4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA +vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G +CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA +WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ +h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18 +f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN +B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy +vUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Label: "Baltimore CyberTrust Root" +# Serial: 33554617 +# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4 +# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74 +# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ +RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD +VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX +DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y +ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy +VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr +mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr +IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK +mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu +XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy +dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye +jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 +BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 +DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 +9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx +jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 +Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz +ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS +R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +# Issuer: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc. +# Subject: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc. +# Label: "Equifax Secure Global eBusiness CA" +# Serial: 1 +# MD5 Fingerprint: 8f:5d:77:06:27:c4:98:3c:5b:93:78:e7:d7:7d:9b:cc +# SHA1 Fingerprint: 7e:78:4a:10:1c:82:65:cc:2d:e1:f1:6d:47:b4:40:ca:d9:0a:19:45 +# SHA256 Fingerprint: 5f:0b:62:ea:b5:e3:53:ea:65:21:65:16:58:fb:b6:53:59:f4:43:28:0a:4a:fb:d1:04:d7:7d:10:f9:f0:4c:07 +-----BEGIN CERTIFICATE----- +MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc +MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT +ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw +MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj +dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l +c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC +UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc +58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/ +o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH +MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr +aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA +A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA +Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv +8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV +-----END CERTIFICATE----- + +# Issuer: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc. +# Subject: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc. +# Label: "Equifax Secure eBusiness CA 1" +# Serial: 4 +# MD5 Fingerprint: 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d +# SHA1 Fingerprint: da:40:18:8b:91:89:a3:ed:ee:ae:da:97:fe:2f:9d:f5:b7:d1:8a:41 +# SHA256 Fingerprint: cf:56:ff:46:a4:a1:86:10:9d:d9:65:84:b5:ee:b5:8a:51:0c:42:75:b0:e5:f9:4f:40:bb:ae:86:5e:19:f6:73 +-----BEGIN CERTIFICATE----- +MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc +MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT +ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw +MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j +LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo +RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu +WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw +Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD +AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK +eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM +zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+ +WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN +/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ== +-----END CERTIFICATE----- + +# Issuer: O=Equifax Secure OU=Equifax Secure eBusiness CA-2 +# Subject: O=Equifax Secure OU=Equifax Secure eBusiness CA-2 +# Label: "Equifax Secure eBusiness CA 2" +# Serial: 930140085 +# MD5 Fingerprint: aa:bf:bf:64:97:da:98:1d:6f:c6:08:3a:95:70:33:ca +# SHA1 Fingerprint: 39:4f:f6:85:0b:06:be:52:e5:18:56:cc:10:e1:80:e8:82:b3:85:cc +# SHA256 Fingerprint: 2f:27:4e:48:ab:a4:ac:7b:76:59:33:10:17:75:50:6d:c3:0e:e3:8e:f6:ac:d5:c0:49:32:cf:e0:41:23:42:20 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj +dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0 +NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD +VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G +vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/ +BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX +MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl +IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw +NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq +y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy +0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1 +E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network +# Subject: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network +# Label: "AddTrust Low-Value Services Root" +# Serial: 1 +# MD5 Fingerprint: 1e:42:95:02:33:92:6b:b9:5f:c0:7f:da:d6:b2:4b:fc +# SHA1 Fingerprint: cc:ab:0e:a0:4c:23:01:d6:69:7b:dd:37:9f:cd:12:eb:24:e3:94:9d +# SHA256 Fingerprint: 8c:72:09:27:9a:c0:4e:27:5e:16:d0:7f:d3:b7:75:e8:01:54:b5:96:80:46:e3:1f:52:dd:25:76:63:24:e9:a7 +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw +MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD +VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul +CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n +tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl +dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch +PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC ++Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O +BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl +MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk +ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X +7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz +43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl +pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA +WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network +# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network +# Label: "AddTrust External Root" +# Serial: 1 +# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f +# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68 +# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2 +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs +IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 +MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h +bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt +H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 +uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX +mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX +a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN +E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 +WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD +VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 +Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU +cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx +IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN +AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH +YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC +Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX +c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a +mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network +# Subject: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network +# Label: "AddTrust Public Services Root" +# Serial: 1 +# MD5 Fingerprint: c1:62:3e:23:c5:82:73:9c:03:59:4b:2b:e9:77:49:7f +# SHA1 Fingerprint: 2a:b6:28:48:5e:78:fb:f3:ad:9e:79:10:dd:6b:df:99:72:2c:96:e5 +# SHA256 Fingerprint: 07:91:ca:07:49:b2:07:82:aa:d3:c7:d7:bd:0c:df:c9:48:58:35:84:3e:b2:d7:99:60:09:ce:43:ab:6c:69:27 +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx +MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB +ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV +BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV +6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX +GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP +dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH +1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF +62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW +BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL +MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU +cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv +b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6 +IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/ +iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh +4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm +XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network +# Subject: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network +# Label: "AddTrust Qualified Certificates Root" +# Serial: 1 +# MD5 Fingerprint: 27:ec:39:47:cd:da:5a:af:e2:9a:01:65:21:a9:4c:bb +# SHA1 Fingerprint: 4d:23:78:ec:91:95:39:b5:00:7f:75:8f:03:3b:21:1e:c5:4d:8b:cf +# SHA256 Fingerprint: 80:95:21:08:05:db:4b:bc:35:5e:44:28:d8:fd:6e:c2:cd:e3:ab:5f:b9:7a:99:42:98:8e:b8:f4:dc:d0:60:16 +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1 +MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK +EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh +BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq +xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G +87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i +2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U +WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1 +0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G +A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr +pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL +ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm +aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv +hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm +hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3 +P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y +iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no +xqE= +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Label: "Entrust Root Certification Authority" +# Serial: 1164660820 +# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 +# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 +# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc. +# Subject: CN=GeoTrust Global CA O=GeoTrust Inc. +# Label: "GeoTrust Global CA" +# Serial: 144470 +# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5 +# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12 +# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT +MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i +YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg +R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 +9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq +fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv +iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU +1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ +bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW +MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA +ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l +uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn +Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS +tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF +PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un +hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV +5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Global CA 2 O=GeoTrust Inc. +# Subject: CN=GeoTrust Global CA 2 O=GeoTrust Inc. +# Label: "GeoTrust Global CA 2" +# Serial: 1 +# MD5 Fingerprint: 0e:40:a7:6c:de:03:5d:8f:d1:0f:e4:d1:8d:f9:6c:a9 +# SHA1 Fingerprint: a9:e9:78:08:14:37:58:88:f2:05:19:b0:6d:2b:0d:2b:60:16:90:7d +# SHA256 Fingerprint: ca:2d:82:a0:86:77:07:2f:8a:b6:76:4f:f0:35:67:6c:fe:3e:5e:32:5e:01:21:72:df:3f:92:09:6d:b7:9b:85 +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs +IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg +R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A +PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8 +Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL +TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL +5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7 +S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe +2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap +EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td +EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv +/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN +A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0 +abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF +I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz +4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc. +# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc. +# Label: "GeoTrust Universal CA" +# Serial: 1 +# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48 +# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79 +# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12 +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy +c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0 +IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV +VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8 +cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT +QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh +F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v +c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w +mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd +VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX +teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ +f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe +Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+ +nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB +/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY +MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX +IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn +ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z +uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN +Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja +QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW +koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9 +ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt +DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm +bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. +# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. +# Label: "GeoTrust Universal CA 2" +# Serial: 1 +# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7 +# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79 +# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy +c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD +VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1 +c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81 +WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG +FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq +XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL +se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb +KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd +IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73 +y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt +hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc +QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4 +Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV +HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ +KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ +L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr +Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo +ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY +T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz +GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m +1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV +OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH +6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX +QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +# Issuer: CN=America Online Root Certification Authority 1 O=America Online Inc. +# Subject: CN=America Online Root Certification Authority 1 O=America Online Inc. +# Label: "America Online Root Certification Authority 1" +# Serial: 1 +# MD5 Fingerprint: 14:f1:08:ad:9d:fa:64:e2:89:e7:1c:cf:a8:ad:7d:5e +# SHA1 Fingerprint: 39:21:c1:15:c1:5d:0e:ca:5c:cb:5b:c4:f0:7d:21:d8:05:0b:56:6a +# SHA256 Fingerprint: 77:40:73:12:c6:3a:15:3d:5b:c0:0b:4e:51:75:9c:df:da:c2:37:dc:2a:33:b6:79:46:e9:8e:9b:fa:68:0a:e3 +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc +MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP +bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2 +MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft +ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk +hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym +1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW +OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb +2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko +O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU +AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF +Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb +LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir +oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C +MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +# Issuer: CN=America Online Root Certification Authority 2 O=America Online Inc. +# Subject: CN=America Online Root Certification Authority 2 O=America Online Inc. +# Label: "America Online Root Certification Authority 2" +# Serial: 1 +# MD5 Fingerprint: d6:ed:3c:ca:e2:66:0f:af:10:43:0d:77:9b:04:09:bf +# SHA1 Fingerprint: 85:b5:ff:67:9b:0c:79:96:1f:c8:6e:44:22:00:46:13:db:17:92:84 +# SHA256 Fingerprint: 7d:3b:46:5a:60:14:e5:26:c0:af:fc:ee:21:27:d2:31:17:27:ad:81:1c:26:84:2d:00:6a:f3:73:06:cc:80:bd +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc +MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP +bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2 +MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft +ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC +206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci +KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2 +JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9 +BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e +Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B +PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67 +Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq +Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ +o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3 ++L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj +YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj +FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn +xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2 +LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc +obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8 +CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe +IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA +DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F +AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX +Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb +AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl +Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw +RY8mkaKO/qk= +-----END CERTIFICATE----- + +# Issuer: CN=AAA Certificate Services O=Comodo CA Limited +# Subject: CN=AAA Certificate Services O=Comodo CA Limited +# Label: "Comodo AAA Services root" +# Serial: 1 +# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0 +# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49 +# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4 +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj +YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM +GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua +BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe +3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 +YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR +rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm +ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU +oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v +QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t +b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF +AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q +GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 +G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi +l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 +smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +# Issuer: CN=Secure Certificate Services O=Comodo CA Limited +# Subject: CN=Secure Certificate Services O=Comodo CA Limited +# Label: "Comodo Secure Services root" +# Serial: 1 +# MD5 Fingerprint: d3:d9:bd:ae:9f:ac:67:24:b3:c8:1b:52:e1:b9:a9:bd +# SHA1 Fingerprint: 4a:65:d5:f4:1d:ef:39:b8:b8:90:4a:4a:d3:64:81:33:cf:c7:a1:d1 +# SHA256 Fingerprint: bd:81:ce:3b:4f:65:91:d1:1a:67:b5:fc:7a:47:fd:ef:25:52:1b:f9:aa:4e:18:b9:e3:df:2e:34:a7:80:3b:e8 +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp +ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow +fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV +BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM +cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S +HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996 +CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk +3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz +6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV +HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv +Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw +Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww +DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0 +5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI +gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ +aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl +izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk= +-----END CERTIFICATE----- + +# Issuer: CN=Trusted Certificate Services O=Comodo CA Limited +# Subject: CN=Trusted Certificate Services O=Comodo CA Limited +# Label: "Comodo Trusted Services root" +# Serial: 1 +# MD5 Fingerprint: 91:1b:3f:6e:cd:9e:ab:ee:07:fe:1f:71:d2:b3:61:27 +# SHA1 Fingerprint: e1:9f:e3:0e:8b:84:60:9e:80:9b:17:0d:72:a8:c5:ba:6e:14:09:bd +# SHA256 Fingerprint: 3f:06:e5:56:81:d4:96:f5:be:16:9e:b5:38:9f:9f:2b:8f:f6:1e:17:08:df:68:81:72:48:49:cd:5d:27:cb:69 +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0 +aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla +MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO +BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD +VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW +fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt +TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL +fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW +1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7 +kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G +A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v +ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo +dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu +Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/ +HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS +jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+ +xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn +dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com +# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com +# Label: "UTN DATACorp SGC Root CA" +# Serial: 91374294542884689855167577680241077609 +# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06 +# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4 +# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48 +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB +kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug +Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw +IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG +EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD +VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu +dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6 +E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ +D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK +4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq +lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW +bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB +o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT +MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js +LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr +BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB +AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj +j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH +KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv +2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3 +mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com +# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com +# Label: "UTN USERFirst Hardware Root CA" +# Serial: 91374294542884704022267039221184531197 +# MD5 Fingerprint: 4c:56:41:e5:0d:bb:2b:e8:ca:a3:ed:18:08:ad:43:39 +# SHA1 Fingerprint: 04:83:ed:33:99:ac:36:08:05:87:22:ed:bc:5e:46:00:e3:be:f9:d7 +# SHA256 Fingerprint: 6e:a5:47:41:d0:04:66:7e:ed:1b:48:16:63:4a:a3:a7:9e:6e:4b:96:95:0f:82:79:da:fc:8d:9b:d8:81:21:37 +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB +lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug +Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt +SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG +A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe +MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v +d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh +cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn +0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ +M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a +MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd +oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI +DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy +oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0 +dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy +bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF +BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli +CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE +CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t +3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS +KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA== +-----END CERTIFICATE----- + +# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Label: "XRamp Global CA Root" +# Serial: 107108908803651509692980124233745014957 +# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1 +# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6 +# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2 +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB +gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk +MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY +UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx +NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 +dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy +dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 +38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP +KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q +DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 +qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa +JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi +PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P +BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs +jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 +eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR +vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa +IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy +i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ +O+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Label: "Go Daddy Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67 +# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4 +# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4 +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- + +# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Label: "Starfield Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24 +# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a +# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58 +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl +MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp +U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw +NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE +ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp +ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 +DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf +8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN ++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 +X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa +K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA +1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G +A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR +zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 +YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD +bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 +L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D +eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp +VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY +WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Label: "StartCom Certification Authority" +# Serial: 1 +# MD5 Fingerprint: 22:4d:8f:8a:fc:f7:35:c2:bb:57:34:90:7b:8b:22:16 +# SHA1 Fingerprint: 3e:2b:f7:f2:03:1b:96:f3:8c:e6:c4:d8:a8:5d:3e:2d:58:47:6a:0f +# SHA256 Fingerprint: c7:66:a9:be:f2:d4:07:1c:86:3a:31:aa:49:20:e8:13:b2:d1:98:60:8c:b7:b7:cf:e2:11:43:b8:36:df:09:ea +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW +MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg +Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9 +MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi +U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh +cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk +pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf +OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C +Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT +Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi +HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM +Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w ++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ +Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 +Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B +26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID +AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j +ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js +LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM +BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy +dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh +cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh +YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg +dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp +bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ +YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT +TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ +9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8 +jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW +FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz +ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1 +ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L +EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu +L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC +O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V +um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh +NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root CA" +# Serial: 17154717934120587862167794914071425081 +# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 +# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 +# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root CA" +# Serial: 10944719598952040374951832963794454346 +# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e +# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 +# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert High Assurance EV Root CA" +# Serial: 3553400076410547919724730734378100087 +# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a +# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 +# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. +# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. +# Label: "GeoTrust Primary Certification Authority" +# Serial: 32798226551256963324313806436981982369 +# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf +# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96 +# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY +MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo +R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx +MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9 +AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA +ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 +7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W +kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI +mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ +KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1 +6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl +4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K +oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj +UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU +AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA" +# Serial: 69529181992039203566298953787712940909 +# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12 +# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81 +# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB +qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf +Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw +MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV +BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw +NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j +LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG +A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs +W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta +3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk +6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6 +Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J +NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP +r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU +DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz +YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2 +/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/ +LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7 +jVaMaA== +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Class 3 Public Primary Certification Authority - G5" +# Serial: 33037644167568058970164719475676101450 +# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c +# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5 +# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp +U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW +ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW +ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp +U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y +aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1 +nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex +t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz +SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG +BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+ +rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/ +NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E +BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH +BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv +MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE +p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y +5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK +WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ +4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N +hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO Certification Authority O=COMODO CA Limited +# Label: "COMODO Certification Authority" +# Serial: 104350513648249232941998508985834464573 +# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 +# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b +# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- + +# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Label: "Network Solutions Certificate Authority" +# Serial: 116697915152937497490437556386812487904 +# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e +# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce +# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi +MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV +UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO +ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz +c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP +OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl +mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF +BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 +qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw +gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu +bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp +dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 +6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ +h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH +/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN +pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Label: "COMODO ECC Certification Authority" +# Serial: 41578283867086692638256921589707938090 +# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 +# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 +# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA +# Subject: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA +# Label: "TC TrustCenter Class 2 CA II" +# Serial: 941389028203453866782103406992443 +# MD5 Fingerprint: ce:78:33:5c:59:78:01:6e:18:ea:b9:36:a0:b9:2e:23 +# SHA1 Fingerprint: ae:50:83:ed:7c:f4:5c:bc:8f:61:c6:21:fe:68:5d:79:42:21:15:6e +# SHA256 Fingerprint: e6:b8:f8:76:64:85:f8:07:ae:7f:8d:ac:16:70:46:1f:07:c0:a1:3e:ef:3a:1f:f7:17:53:8d:7a:ba:d3:91:b4 +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV +BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 +Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1 +OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i +SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc +VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf +tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg +uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J +XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK +8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99 +5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3 +kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy +dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6 +Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz +JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 +Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS +GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt +ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8 +au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV +hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI +dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ== +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA +# Subject: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA +# Label: "TC TrustCenter Class 3 CA II" +# Serial: 1506523511417715638772220530020799 +# MD5 Fingerprint: 56:5f:aa:80:61:12:17:f6:67:21:e6:2b:6d:61:56:8e +# SHA1 Fingerprint: 80:25:ef:f4:6e:70:c8:d4:72:24:65:84:fe:40:3b:8a:8d:6a:db:f5 +# SHA256 Fingerprint: 8d:a0:84:fc:f9:9c:e0:77:22:f8:9b:32:05:93:98:06:fa:5c:b8:11:e1:c8:13:f6:a1:08:c7:d3:36:b3:40:8e +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV +BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 +Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1 +OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i +SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc +VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW +Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q +Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2 +1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq +ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1 +Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX +XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy +dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6 +Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz +JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 +Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN +irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8 +TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6 +g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB +95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj +S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A== +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Subject: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Label: "TC TrustCenter Universal CA I" +# Serial: 601024842042189035295619584734726 +# MD5 Fingerprint: 45:e1:a5:72:c5:a9:36:64:40:9e:f5:e4:58:84:67:8c +# SHA1 Fingerprint: 6b:2f:34:ad:89:58:be:62:fd:b0:6b:5c:ce:bb:9d:d9:4f:4e:39:f3 +# SHA256 Fingerprint: eb:f3:c0:2a:87:89:b1:fb:7d:51:19:95:d6:63:b7:29:06:d9:13:ce:0d:5e:10:56:8a:8a:77:e2:58:61:67:e7 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV +BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1 +c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx +MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg +R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD +VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR +JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T +fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu +jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z +wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ +fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD +VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G +CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1 +7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn +8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs +ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT +ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/ +2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY +-----END CERTIFICATE----- + +# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc +# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc +# Label: "Cybertrust Global Root" +# Serial: 4835703278459682877484360 +# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1 +# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6 +# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3 +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG +A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh +bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE +ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS +b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 +7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS +J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y +HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP +t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz +FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY +XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw +hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js +MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA +A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj +Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx +XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o +omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc +A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G3" +# Serial: 28809105769928564313984085209975885599 +# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05 +# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd +# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4 +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB +mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT +MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ +BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0 +BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz ++uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm +hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn +5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W +JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL +DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC +huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB +AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB +zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN +kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH +SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G +spki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA - G2" +# Serial: 71758320672825410020661621085256472406 +# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f +# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12 +# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57 +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp +IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi +BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw +MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig +YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v +dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/ +BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 +papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K +DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3 +KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox +XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA - G3" +# Serial: 127614157056681299805556476275995414779 +# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31 +# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2 +# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB +rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf +Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw +MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV +BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa +Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl +LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u +MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm +gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8 +YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf +b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9 +9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S +zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk +OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA +2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW +oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c +KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM +m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu +MdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G2" +# Serial: 80682863203381065782177908751794619243 +# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a +# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0 +# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66 +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL +MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj +KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 +MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw +NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV +BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH +MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL +So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal +tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG +CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT +qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz +rD6ogRLQy7rQkgu2npaqBA+K +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Universal Root Certification Authority" +# Serial: 85209574734084581917763752644031726877 +# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19 +# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54 +# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB +vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp +U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W +ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX +MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 +IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y +IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh +bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF +9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH +H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H +LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN +/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT +rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw +WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs +exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 +sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ +seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz +4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ +BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR +lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 +7M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Class 3 Public Primary Certification Authority - G4" +# Serial: 63143484348153506665311985501458640051 +# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41 +# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a +# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79 +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW +ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp +U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y +aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG +A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp +U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg +SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln +biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm +GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve +fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ +aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj +aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW +kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC +4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga +FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Label: "Verisign Class 3 Public Primary Certification Authority" +# Serial: 80507572722862485515306429940691309246 +# MD5 Fingerprint: ef:5a:f1:33:ef:f1:cd:bb:51:02:ee:12:14:4b:96:c4 +# SHA1 Fingerprint: a1:db:63:93:91:6f:17:e4:18:55:09:40:04:15:c7:02:40:b0:ae:6b +# SHA256 Fingerprint: a4:b6:b3:99:6f:c2:f3:06:b3:fd:86:81:bd:63:41:3d:8c:50:09:cc:4f:a3:29:c2:cc:f0:e2:fa:1b:14:03:05 +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG +A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz +cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 +MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV +BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE +BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is +I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G +CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i +2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ +2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Label: "GlobalSign Root CA - R3" +# Serial: 4835703278459759426209954 +# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 +# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad +# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Subject: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Label: "TC TrustCenter Universal CA III" +# Serial: 2010889993983507346460533407902964 +# MD5 Fingerprint: 9f:dd:db:ab:ff:8e:ff:45:21:5f:f0:6c:9d:8f:fe:2b +# SHA1 Fingerprint: 96:56:cd:7b:57:96:98:95:d0:e1:41:46:68:06:fb:b8:c6:11:06:87 +# SHA256 Fingerprint: 30:9b:4a:87:f6:ca:56:c9:31:69:aa:a9:9c:6d:98:88:54:d7:89:2b:d5:43:7e:2d:07:b2:9c:be:da:55:d3:5d +-----BEGIN CERTIFICATE----- +MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV +BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1 +c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy +MzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl +ciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm +BgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF +5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv +DIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v +zArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT +yGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj +dipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh +MB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI +4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz +dkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY +aAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G +DeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV +CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH +LQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg== +-----END CERTIFICATE----- + +# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Label: "Go Daddy Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 +# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b +# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 +# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e +# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Services Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 +# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f +# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs +ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy +ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy +dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p +OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 +8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K +Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe +hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk +6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q +AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI +bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB +ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z +qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn +0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN +sSi6 +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Commercial O=AffirmTrust +# Subject: CN=AffirmTrust Commercial O=AffirmTrust +# Label: "AffirmTrust Commercial" +# Serial: 8608355977964138876 +# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 +# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 +# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Networking O=AffirmTrust +# Subject: CN=AffirmTrust Networking O=AffirmTrust +# Label: "AffirmTrust Networking" +# Serial: 8957382827206547757 +# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f +# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f +# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium O=AffirmTrust +# Subject: CN=AffirmTrust Premium O=AffirmTrust +# Label: "AffirmTrust Premium" +# Serial: 7893706540734352110 +# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 +# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 +# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust +# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust +# Label: "AffirmTrust Premium ECC" +# Serial: 8401224907861490260 +# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d +# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb +# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23 +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Label: "StartCom Certification Authority" +# Serial: 45 +# MD5 Fingerprint: c9:3b:0d:84:41:fc:a4:76:79:23:08:57:de:10:19:16 +# SHA1 Fingerprint: a3:f1:33:3f:e2:42:bf:cf:c5:d1:4e:8f:39:42:98:40:68:10:d1:a0 +# SHA256 Fingerprint: e1:78:90:ee:09:a3:fb:f4:f4:8b:9c:41:4a:17:d6:37:b7:a5:06:47:e9:bc:75:23:22:72:7f:cc:17:42:a9:11 +-----BEGIN CERTIFICATE----- +MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW +MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg +Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9 +MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi +U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh +cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk +pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf +OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C +Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT +Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi +HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM +Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w ++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ +Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 +Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B +26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID +AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul +F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC +ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w +ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk +aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0 +YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg +c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93 +d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG +CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF +wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS +Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst +0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc +pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl +CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF +P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK +1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm +KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE +JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ +8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm +fyWl8kgAwKQB2j8= +-----END CERTIFICATE----- + +# Issuer: CN=StartCom Certification Authority G2 O=StartCom Ltd. +# Subject: CN=StartCom Certification Authority G2 O=StartCom Ltd. +# Label: "StartCom Certification Authority G2" +# Serial: 59 +# MD5 Fingerprint: 78:4b:fb:9e:64:82:0a:d3:b8:4c:62:f3:64:f2:90:64 +# SHA1 Fingerprint: 31:f1:fd:68:22:63:20:ee:c6:3b:3f:9d:ea:4a:3e:53:7c:7c:39:17 +# SHA256 Fingerprint: c7:ba:65:67:de:93:a7:98:ae:1f:aa:79:1e:71:2d:37:8f:ae:1f:93:c4:39:7f:ea:44:1b:b7:cb:e6:fd:59:95 +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW +MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1 +OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG +A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ +JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD +vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo +D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/ +Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW +RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK +HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN +nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM +0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i +UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9 +Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg +TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL +BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K +2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX +UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl +6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK +9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ +HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI +wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY +XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l +IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo +hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr +so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI +-----END CERTIFICATE----- diff --git a/vendor/google/apiclient/src/Google/Model.php b/vendor/google/apiclient/src/Google/Model.php new file mode 100644 index 0000000..2bb9a33 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Model.php @@ -0,0 +1,265 @@ + + * + */ +class Google_Model implements ArrayAccess +{ + protected $internal_gapi_mappings = array(); + protected $modelData = array(); + protected $processed = array(); + + /** + * Polymorphic - accepts a variable number of arguments dependent + * on the type of the model subclass. + */ + public function __construct() + { + if (func_num_args() == 1 && is_array(func_get_arg(0))) { + // Initialize the model with the array's contents. + $array = func_get_arg(0); + $this->mapTypes($array); + } + } + + public function __get($key) + { + $keyTypeName = $this->keyType($key); + $keyDataType = $this->dataType($key); + if (isset($this->$keyTypeName) && !isset($this->processed[$key])) { + if (isset($this->modelData[$key])) { + $val = $this->modelData[$key]; + } else if (isset($this->$keyDataType) && + ($this->$keyDataType == 'array' || $this->$keyDataType == 'map')) { + $val = array(); + } else { + $val = null; + } + + if ($this->isAssociativeArray($val)) { + if (isset($this->$keyDataType) && 'map' == $this->$keyDataType) { + foreach ($val as $arrayKey => $arrayItem) { + $this->modelData[$key][$arrayKey] = + $this->createObjectFromName($keyTypeName, $arrayItem); + } + } else { + $this->modelData[$key] = $this->createObjectFromName($keyTypeName, $val); + } + } else if (is_array($val)) { + $arrayObject = array(); + foreach ($val as $arrayIndex => $arrayItem) { + $arrayObject[$arrayIndex] = + $this->createObjectFromName($keyTypeName, $arrayItem); + } + $this->modelData[$key] = $arrayObject; + } + $this->processed[$key] = true; + } + + return isset($this->modelData[$key]) ? $this->modelData[$key] : null; + } + + /** + * Initialize this object's properties from an array. + * + * @param array $array Used to seed this object's properties. + * @return void + */ + protected function mapTypes($array) + { + // Hard initilise simple types, lazy load more complex ones. + foreach ($array as $key => $val) { + if ( !property_exists($this, $this->keyType($key)) && + property_exists($this, $key)) { + $this->$key = $val; + unset($array[$key]); + } elseif (property_exists($this, $camelKey = Google_Utils::camelCase($key))) { + // This checks if property exists as camelCase, leaving it in array as snake_case + // in case of backwards compatibility issues. + $this->$camelKey = $val; + } + } + $this->modelData = $array; + } + + /** + * Create a simplified object suitable for straightforward + * conversion to JSON. This is relatively expensive + * due to the usage of reflection, but shouldn't be called + * a whole lot, and is the most straightforward way to filter. + */ + public function toSimpleObject() + { + $object = new stdClass(); + + // Process all other data. + foreach ($this->modelData as $key => $val) { + $result = $this->getSimpleValue($val); + if ($result !== null) { + $object->$key = $result; + } + } + + // Process all public properties. + $reflect = new ReflectionObject($this); + $props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC); + foreach ($props as $member) { + $name = $member->getName(); + $result = $this->getSimpleValue($this->$name); + if ($result !== null) { + $name = $this->getMappedName($name); + $object->$name = $result; + } + } + + return $object; + } + + /** + * Handle different types of values, primarily + * other objects and map and array data types. + */ + private function getSimpleValue($value) + { + if ($value instanceof Google_Model) { + return $value->toSimpleObject(); + } else if (is_array($value)) { + $return = array(); + foreach ($value as $key => $a_value) { + $a_value = $this->getSimpleValue($a_value); + if ($a_value !== null) { + $key = $this->getMappedName($key); + $return[$key] = $a_value; + } + } + return $return; + } + return $value; + } + + /** + * If there is an internal name mapping, use that. + */ + private function getMappedName($key) + { + if (isset($this->internal_gapi_mappings) && + isset($this->internal_gapi_mappings[$key])) { + $key = $this->internal_gapi_mappings[$key]; + } + return $key; + } + + /** + * Returns true only if the array is associative. + * @param array $array + * @return bool True if the array is associative. + */ + protected function isAssociativeArray($array) + { + if (!is_array($array)) { + return false; + } + $keys = array_keys($array); + foreach ($keys as $key) { + if (is_string($key)) { + return true; + } + } + return false; + } + + /** + * Given a variable name, discover its type. + * + * @param $name + * @param $item + * @return object The object from the item. + */ + private function createObjectFromName($name, $item) + { + $type = $this->$name; + return new $type($item); + } + + /** + * Verify if $obj is an array. + * @throws Google_Exception Thrown if $obj isn't an array. + * @param array $obj Items that should be validated. + * @param string $method Method expecting an array as an argument. + */ + public function assertIsArray($obj, $method) + { + if ($obj && !is_array($obj)) { + throw new Google_Exception( + "Incorrect parameter type passed to $method(). Expected an array." + ); + } + } + + public function offsetExists($offset) + { + return isset($this->$offset) || isset($this->modelData[$offset]); + } + + public function offsetGet($offset) + { + return isset($this->$offset) ? + $this->$offset : + $this->__get($offset); + } + + public function offsetSet($offset, $value) + { + if (property_exists($this, $offset)) { + $this->$offset = $value; + } else { + $this->modelData[$offset] = $value; + $this->processed[$offset] = true; + } + } + + public function offsetUnset($offset) + { + unset($this->modelData[$offset]); + } + + protected function keyType($key) + { + return $key . "Type"; + } + + protected function dataType($key) + { + return $key . "DataType"; + } + + public function __isset($key) + { + return isset($this->modelData[$key]); + } + + public function __unset($key) + { + unset($this->modelData[$key]); + } +} diff --git a/vendor/google/apiclient/src/Google/Service.php b/vendor/google/apiclient/src/Google/Service.php new file mode 100644 index 0000000..2e0b6c5 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service.php @@ -0,0 +1,39 @@ +client = $client; + } + + /** + * Return the associated Google_Client class. + * @return Google_Client + */ + public function getClient() + { + return $this->client; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/AdExchangeBuyer.php b/vendor/google/apiclient/src/Google/Service/AdExchangeBuyer.php new file mode 100644 index 0000000..cc07873 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/AdExchangeBuyer.php @@ -0,0 +1,2074 @@ + + * Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_AdExchangeBuyer extends Google_Service +{ + /** Manage your Ad Exchange buyer account configuration. */ + const ADEXCHANGE_BUYER = "https://www.googleapis.com/auth/adexchange.buyer"; + + public $accounts; + public $billingInfo; + public $creatives; + public $directDeals; + public $performanceReport; + public $pretargetingConfig; + + + /** + * Constructs the internal representation of the AdExchangeBuyer service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'adexchangebuyer/v1.3/'; + $this->version = 'v1.3'; + $this->serviceName = 'adexchangebuyer'; + + $this->accounts = new Google_Service_AdExchangeBuyer_Accounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'patch' => array( + 'path' => 'accounts/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'accounts/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->billingInfo = new Google_Service_AdExchangeBuyer_BillingInfo_Resource( + $this, + $this->serviceName, + 'billingInfo', + array( + 'methods' => array( + 'get' => array( + 'path' => 'billinginfo/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'billinginfo', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->creatives = new Google_Service_AdExchangeBuyer_Creatives_Resource( + $this, + $this->serviceName, + 'creatives', + array( + 'methods' => array( + 'get' => array( + 'path' => 'creatives/{accountId}/{buyerCreativeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'buyerCreativeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'creatives', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'creatives', + 'httpMethod' => 'GET', + 'parameters' => array( + 'statusFilter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'buyerCreativeId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'accountId' => array( + 'location' => 'query', + 'type' => 'integer', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->directDeals = new Google_Service_AdExchangeBuyer_DirectDeals_Resource( + $this, + $this->serviceName, + 'directDeals', + array( + 'methods' => array( + 'get' => array( + 'path' => 'directdeals/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'directdeals', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->performanceReport = new Google_Service_AdExchangeBuyer_PerformanceReport_Resource( + $this, + $this->serviceName, + 'performanceReport', + array( + 'methods' => array( + 'list' => array( + 'path' => 'performancereport', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDateTime' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'startDateTime' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->pretargetingConfig = new Google_Service_AdExchangeBuyer_PretargetingConfig_Resource( + $this, + $this->serviceName, + 'pretargetingConfig', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'pretargetingconfigs/{accountId}/{configId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'configId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'pretargetingconfigs/{accountId}/{configId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'configId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'pretargetingconfigs/{accountId}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'pretargetingconfigs/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'pretargetingconfigs/{accountId}/{configId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'configId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'pretargetingconfigs/{accountId}/{configId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'configId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $adexchangebuyerService = new Google_Service_AdExchangeBuyer(...); + * $accounts = $adexchangebuyerService->accounts; + * + */ +class Google_Service_AdExchangeBuyer_Accounts_Resource extends Google_Service_Resource +{ + + /** + * Gets one account by ID. (accounts.get) + * + * @param int $id + * The account id + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_Account + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeBuyer_Account"); + } + /** + * Retrieves the authenticated user's list of accounts. (accounts.listAccounts) + * + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_AccountsList + */ + public function listAccounts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeBuyer_AccountsList"); + } + /** + * Updates an existing account. This method supports patch semantics. + * (accounts.patch) + * + * @param int $id + * The account id + * @param Google_Account $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_Account + */ + public function patch($id, Google_Service_AdExchangeBuyer_Account $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AdExchangeBuyer_Account"); + } + /** + * Updates an existing account. (accounts.update) + * + * @param int $id + * The account id + * @param Google_Account $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_Account + */ + public function update($id, Google_Service_AdExchangeBuyer_Account $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AdExchangeBuyer_Account"); + } +} + +/** + * The "billingInfo" collection of methods. + * Typical usage is: + * + * $adexchangebuyerService = new Google_Service_AdExchangeBuyer(...); + * $billingInfo = $adexchangebuyerService->billingInfo; + * + */ +class Google_Service_AdExchangeBuyer_BillingInfo_Resource extends Google_Service_Resource +{ + + /** + * Returns the billing information for one account specified by account ID. + * (billingInfo.get) + * + * @param int $accountId + * The account id. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_BillingInfo + */ + public function get($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeBuyer_BillingInfo"); + } + /** + * Retrieves a list of billing information for all accounts of the authenticated + * user. (billingInfo.listBillingInfo) + * + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_BillingInfoList + */ + public function listBillingInfo($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeBuyer_BillingInfoList"); + } +} + +/** + * The "creatives" collection of methods. + * Typical usage is: + * + * $adexchangebuyerService = new Google_Service_AdExchangeBuyer(...); + * $creatives = $adexchangebuyerService->creatives; + * + */ +class Google_Service_AdExchangeBuyer_Creatives_Resource extends Google_Service_Resource +{ + + /** + * Gets the status for a single creative. A creative will be available 30-40 + * minutes after submission. (creatives.get) + * + * @param int $accountId + * The id for the account that will serve this creative. + * @param string $buyerCreativeId + * The buyer-specific id for this creative. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_Creative + */ + public function get($accountId, $buyerCreativeId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'buyerCreativeId' => $buyerCreativeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeBuyer_Creative"); + } + /** + * Submit a new creative. (creatives.insert) + * + * @param Google_Creative $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_Creative + */ + public function insert(Google_Service_AdExchangeBuyer_Creative $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AdExchangeBuyer_Creative"); + } + /** + * Retrieves a list of the authenticated user's active creatives. A creative + * will be available 30-40 minutes after submission. (creatives.listCreatives) + * + * @param array $optParams Optional parameters. + * + * @opt_param string statusFilter + * When specified, only creatives having the given status are returned. + * @opt_param string pageToken + * A continuation token, used to page through ad clients. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. Optional. + * @opt_param string maxResults + * Maximum number of entries returned on one result page. If not set, the default is 100. Optional. + * @opt_param string buyerCreativeId + * When specified, only creatives for the given buyer creative ids are returned. + * @opt_param int accountId + * When specified, only creatives for the given account ids are returned. + * @return Google_Service_AdExchangeBuyer_CreativesList + */ + public function listCreatives($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeBuyer_CreativesList"); + } +} + +/** + * The "directDeals" collection of methods. + * Typical usage is: + * + * $adexchangebuyerService = new Google_Service_AdExchangeBuyer(...); + * $directDeals = $adexchangebuyerService->directDeals; + * + */ +class Google_Service_AdExchangeBuyer_DirectDeals_Resource extends Google_Service_Resource +{ + + /** + * Gets one direct deal by ID. (directDeals.get) + * + * @param string $id + * The direct deal id + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_DirectDeal + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeBuyer_DirectDeal"); + } + /** + * Retrieves the authenticated user's list of direct deals. + * (directDeals.listDirectDeals) + * + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_DirectDealsList + */ + public function listDirectDeals($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeBuyer_DirectDealsList"); + } +} + +/** + * The "performanceReport" collection of methods. + * Typical usage is: + * + * $adexchangebuyerService = new Google_Service_AdExchangeBuyer(...); + * $performanceReport = $adexchangebuyerService->performanceReport; + * + */ +class Google_Service_AdExchangeBuyer_PerformanceReport_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the authenticated user's list of performance metrics. + * (performanceReport.listPerformanceReport) + * + * @param string $accountId + * The account id to get the reports. + * @param string $endDateTime + * The end time of the report in ISO 8601 timestamp format using UTC. + * @param string $startDateTime + * The start time of the report in ISO 8601 timestamp format using UTC. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through performance reports. To retrieve the next page, set + * this parameter to the value of "nextPageToken" from the previous response. Optional. + * @opt_param string maxResults + * Maximum number of entries returned on one result page. If not set, the default is 100. Optional. + * @return Google_Service_AdExchangeBuyer_PerformanceReportList + */ + public function listPerformanceReport($accountId, $endDateTime, $startDateTime, $optParams = array()) + { + $params = array('accountId' => $accountId, 'endDateTime' => $endDateTime, 'startDateTime' => $startDateTime); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeBuyer_PerformanceReportList"); + } +} + +/** + * The "pretargetingConfig" collection of methods. + * Typical usage is: + * + * $adexchangebuyerService = new Google_Service_AdExchangeBuyer(...); + * $pretargetingConfig = $adexchangebuyerService->pretargetingConfig; + * + */ +class Google_Service_AdExchangeBuyer_PretargetingConfig_Resource extends Google_Service_Resource +{ + + /** + * Deletes an existing pretargeting config. (pretargetingConfig.delete) + * + * @param string $accountId + * The account id to delete the pretargeting config for. + * @param string $configId + * The specific id of the configuration to delete. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $configId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'configId' => $configId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific pretargeting configuration (pretargetingConfig.get) + * + * @param string $accountId + * The account id to get the pretargeting config for. + * @param string $configId + * The specific id of the configuration to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_PretargetingConfig + */ + public function get($accountId, $configId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'configId' => $configId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeBuyer_PretargetingConfig"); + } + /** + * Inserts a new pretargeting configuration. (pretargetingConfig.insert) + * + * @param string $accountId + * The account id to insert the pretargeting config for. + * @param Google_PretargetingConfig $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_PretargetingConfig + */ + public function insert($accountId, Google_Service_AdExchangeBuyer_PretargetingConfig $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AdExchangeBuyer_PretargetingConfig"); + } + /** + * Retrieves a list of the authenticated user's pretargeting configurations. + * (pretargetingConfig.listPretargetingConfig) + * + * @param string $accountId + * The account id to get the pretargeting configs for. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_PretargetingConfigList + */ + public function listPretargetingConfig($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeBuyer_PretargetingConfigList"); + } + /** + * Updates an existing pretargeting config. This method supports patch + * semantics. (pretargetingConfig.patch) + * + * @param string $accountId + * The account id to update the pretargeting config for. + * @param string $configId + * The specific id of the configuration to update. + * @param Google_PretargetingConfig $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_PretargetingConfig + */ + public function patch($accountId, $configId, Google_Service_AdExchangeBuyer_PretargetingConfig $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'configId' => $configId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AdExchangeBuyer_PretargetingConfig"); + } + /** + * Updates an existing pretargeting config. (pretargetingConfig.update) + * + * @param string $accountId + * The account id to update the pretargeting config for. + * @param string $configId + * The specific id of the configuration to update. + * @param Google_PretargetingConfig $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeBuyer_PretargetingConfig + */ + public function update($accountId, $configId, Google_Service_AdExchangeBuyer_PretargetingConfig $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'configId' => $configId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AdExchangeBuyer_PretargetingConfig"); + } +} + + + + +class Google_Service_AdExchangeBuyer_Account extends Google_Collection +{ + protected $collection_key = 'bidderLocation'; + protected $internal_gapi_mappings = array( + ); + protected $bidderLocationType = 'Google_Service_AdExchangeBuyer_AccountBidderLocation'; + protected $bidderLocationDataType = 'array'; + public $cookieMatchingNid; + public $cookieMatchingUrl; + public $id; + public $kind; + public $maximumTotalQps; + + public function setBidderLocation($bidderLocation) + { + $this->bidderLocation = $bidderLocation; + } + + public function getBidderLocation() + { + return $this->bidderLocation; + } + + public function setCookieMatchingNid($cookieMatchingNid) + { + $this->cookieMatchingNid = $cookieMatchingNid; + } + + public function getCookieMatchingNid() + { + return $this->cookieMatchingNid; + } + + public function setCookieMatchingUrl($cookieMatchingUrl) + { + $this->cookieMatchingUrl = $cookieMatchingUrl; + } + + public function getCookieMatchingUrl() + { + return $this->cookieMatchingUrl; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaximumTotalQps($maximumTotalQps) + { + $this->maximumTotalQps = $maximumTotalQps; + } + + public function getMaximumTotalQps() + { + return $this->maximumTotalQps; + } +} + +class Google_Service_AdExchangeBuyer_AccountBidderLocation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $maximumQps; + public $region; + public $url; + + public function setMaximumQps($maximumQps) + { + $this->maximumQps = $maximumQps; + } + + public function getMaximumQps() + { + return $this->maximumQps; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_AdExchangeBuyer_AccountsList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeBuyer_Account'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeBuyer_BillingInfo extends Google_Collection +{ + protected $collection_key = 'billingId'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $accountName; + public $billingId; + public $kind; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAccountName($accountName) + { + $this->accountName = $accountName; + } + + public function getAccountName() + { + return $this->accountName; + } + + public function setBillingId($billingId) + { + $this->billingId = $billingId; + } + + public function getBillingId() + { + return $this->billingId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeBuyer_BillingInfoList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeBuyer_BillingInfo'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeBuyer_Creative extends Google_Collection +{ + protected $collection_key = 'vendorType'; + protected $internal_gapi_mappings = array( + "hTMLSnippet" => "HTMLSnippet", + ); + public $hTMLSnippet; + public $accountId; + public $advertiserId; + public $advertiserName; + public $agencyId; + public $attribute; + public $buyerCreativeId; + public $clickThroughUrl; + protected $correctionsType = 'Google_Service_AdExchangeBuyer_CreativeCorrections'; + protected $correctionsDataType = 'array'; + protected $disapprovalReasonsType = 'Google_Service_AdExchangeBuyer_CreativeDisapprovalReasons'; + protected $disapprovalReasonsDataType = 'array'; + protected $filteringReasonsType = 'Google_Service_AdExchangeBuyer_CreativeFilteringReasons'; + protected $filteringReasonsDataType = ''; + public $height; + public $kind; + public $productCategories; + public $restrictedCategories; + public $sensitiveCategories; + public $status; + public $vendorType; + public $videoURL; + public $width; + + public function setHTMLSnippet($hTMLSnippet) + { + $this->hTMLSnippet = $hTMLSnippet; + } + + public function getHTMLSnippet() + { + return $this->hTMLSnippet; + } + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAdvertiserId($advertiserId) + { + $this->advertiserId = $advertiserId; + } + + public function getAdvertiserId() + { + return $this->advertiserId; + } + + public function setAdvertiserName($advertiserName) + { + $this->advertiserName = $advertiserName; + } + + public function getAdvertiserName() + { + return $this->advertiserName; + } + + public function setAgencyId($agencyId) + { + $this->agencyId = $agencyId; + } + + public function getAgencyId() + { + return $this->agencyId; + } + + public function setAttribute($attribute) + { + $this->attribute = $attribute; + } + + public function getAttribute() + { + return $this->attribute; + } + + public function setBuyerCreativeId($buyerCreativeId) + { + $this->buyerCreativeId = $buyerCreativeId; + } + + public function getBuyerCreativeId() + { + return $this->buyerCreativeId; + } + + public function setClickThroughUrl($clickThroughUrl) + { + $this->clickThroughUrl = $clickThroughUrl; + } + + public function getClickThroughUrl() + { + return $this->clickThroughUrl; + } + + public function setCorrections($corrections) + { + $this->corrections = $corrections; + } + + public function getCorrections() + { + return $this->corrections; + } + + public function setDisapprovalReasons($disapprovalReasons) + { + $this->disapprovalReasons = $disapprovalReasons; + } + + public function getDisapprovalReasons() + { + return $this->disapprovalReasons; + } + + public function setFilteringReasons(Google_Service_AdExchangeBuyer_CreativeFilteringReasons $filteringReasons) + { + $this->filteringReasons = $filteringReasons; + } + + public function getFilteringReasons() + { + return $this->filteringReasons; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductCategories($productCategories) + { + $this->productCategories = $productCategories; + } + + public function getProductCategories() + { + return $this->productCategories; + } + + public function setRestrictedCategories($restrictedCategories) + { + $this->restrictedCategories = $restrictedCategories; + } + + public function getRestrictedCategories() + { + return $this->restrictedCategories; + } + + public function setSensitiveCategories($sensitiveCategories) + { + $this->sensitiveCategories = $sensitiveCategories; + } + + public function getSensitiveCategories() + { + return $this->sensitiveCategories; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setVendorType($vendorType) + { + $this->vendorType = $vendorType; + } + + public function getVendorType() + { + return $this->vendorType; + } + + public function setVideoURL($videoURL) + { + $this->videoURL = $videoURL; + } + + public function getVideoURL() + { + return $this->videoURL; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_AdExchangeBuyer_CreativeCorrections extends Google_Collection +{ + protected $collection_key = 'details'; + protected $internal_gapi_mappings = array( + ); + public $details; + public $reason; + + public function setDetails($details) + { + $this->details = $details; + } + + public function getDetails() + { + return $this->details; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_AdExchangeBuyer_CreativeDisapprovalReasons extends Google_Collection +{ + protected $collection_key = 'details'; + protected $internal_gapi_mappings = array( + ); + public $details; + public $reason; + + public function setDetails($details) + { + $this->details = $details; + } + + public function getDetails() + { + return $this->details; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_AdExchangeBuyer_CreativeFilteringReasons extends Google_Collection +{ + protected $collection_key = 'reasons'; + protected $internal_gapi_mappings = array( + ); + public $date; + protected $reasonsType = 'Google_Service_AdExchangeBuyer_CreativeFilteringReasonsReasons'; + protected $reasonsDataType = 'array'; + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setReasons($reasons) + { + $this->reasons = $reasons; + } + + public function getReasons() + { + return $this->reasons; + } +} + +class Google_Service_AdExchangeBuyer_CreativeFilteringReasonsReasons extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $filteringCount; + public $filteringStatus; + + public function setFilteringCount($filteringCount) + { + $this->filteringCount = $filteringCount; + } + + public function getFilteringCount() + { + return $this->filteringCount; + } + + public function setFilteringStatus($filteringStatus) + { + $this->filteringStatus = $filteringStatus; + } + + public function getFilteringStatus() + { + return $this->filteringStatus; + } +} + +class Google_Service_AdExchangeBuyer_CreativesList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeBuyer_Creative'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdExchangeBuyer_DirectDeal extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $advertiser; + public $currencyCode; + public $endTime; + public $fixedCpm; + public $id; + public $kind; + public $name; + public $privateExchangeMinCpm; + public $publisherBlocksOverriden; + public $sellerNetwork; + public $startTime; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAdvertiser($advertiser) + { + $this->advertiser = $advertiser; + } + + public function getAdvertiser() + { + return $this->advertiser; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setFixedCpm($fixedCpm) + { + $this->fixedCpm = $fixedCpm; + } + + public function getFixedCpm() + { + return $this->fixedCpm; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPrivateExchangeMinCpm($privateExchangeMinCpm) + { + $this->privateExchangeMinCpm = $privateExchangeMinCpm; + } + + public function getPrivateExchangeMinCpm() + { + return $this->privateExchangeMinCpm; + } + + public function setPublisherBlocksOverriden($publisherBlocksOverriden) + { + $this->publisherBlocksOverriden = $publisherBlocksOverriden; + } + + public function getPublisherBlocksOverriden() + { + return $this->publisherBlocksOverriden; + } + + public function setSellerNetwork($sellerNetwork) + { + $this->sellerNetwork = $sellerNetwork; + } + + public function getSellerNetwork() + { + return $this->sellerNetwork; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } +} + +class Google_Service_AdExchangeBuyer_DirectDealsList extends Google_Collection +{ + protected $collection_key = 'directDeals'; + protected $internal_gapi_mappings = array( + ); + protected $directDealsType = 'Google_Service_AdExchangeBuyer_DirectDeal'; + protected $directDealsDataType = 'array'; + public $kind; + + public function setDirectDeals($directDeals) + { + $this->directDeals = $directDeals; + } + + public function getDirectDeals() + { + return $this->directDeals; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeBuyer_PerformanceReport extends Google_Collection +{ + protected $collection_key = 'hostedMatchStatusRate'; + protected $internal_gapi_mappings = array( + ); + public $calloutStatusRate; + public $cookieMatcherStatusRate; + public $creativeStatusRate; + public $hostedMatchStatusRate; + public $kind; + public $latency50thPercentile; + public $latency85thPercentile; + public $latency95thPercentile; + public $noQuotaInRegion; + public $outOfQuota; + public $pixelMatchRequests; + public $pixelMatchResponses; + public $quotaConfiguredLimit; + public $quotaThrottledLimit; + public $region; + public $timestamp; + + public function setCalloutStatusRate($calloutStatusRate) + { + $this->calloutStatusRate = $calloutStatusRate; + } + + public function getCalloutStatusRate() + { + return $this->calloutStatusRate; + } + + public function setCookieMatcherStatusRate($cookieMatcherStatusRate) + { + $this->cookieMatcherStatusRate = $cookieMatcherStatusRate; + } + + public function getCookieMatcherStatusRate() + { + return $this->cookieMatcherStatusRate; + } + + public function setCreativeStatusRate($creativeStatusRate) + { + $this->creativeStatusRate = $creativeStatusRate; + } + + public function getCreativeStatusRate() + { + return $this->creativeStatusRate; + } + + public function setHostedMatchStatusRate($hostedMatchStatusRate) + { + $this->hostedMatchStatusRate = $hostedMatchStatusRate; + } + + public function getHostedMatchStatusRate() + { + return $this->hostedMatchStatusRate; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLatency50thPercentile($latency50thPercentile) + { + $this->latency50thPercentile = $latency50thPercentile; + } + + public function getLatency50thPercentile() + { + return $this->latency50thPercentile; + } + + public function setLatency85thPercentile($latency85thPercentile) + { + $this->latency85thPercentile = $latency85thPercentile; + } + + public function getLatency85thPercentile() + { + return $this->latency85thPercentile; + } + + public function setLatency95thPercentile($latency95thPercentile) + { + $this->latency95thPercentile = $latency95thPercentile; + } + + public function getLatency95thPercentile() + { + return $this->latency95thPercentile; + } + + public function setNoQuotaInRegion($noQuotaInRegion) + { + $this->noQuotaInRegion = $noQuotaInRegion; + } + + public function getNoQuotaInRegion() + { + return $this->noQuotaInRegion; + } + + public function setOutOfQuota($outOfQuota) + { + $this->outOfQuota = $outOfQuota; + } + + public function getOutOfQuota() + { + return $this->outOfQuota; + } + + public function setPixelMatchRequests($pixelMatchRequests) + { + $this->pixelMatchRequests = $pixelMatchRequests; + } + + public function getPixelMatchRequests() + { + return $this->pixelMatchRequests; + } + + public function setPixelMatchResponses($pixelMatchResponses) + { + $this->pixelMatchResponses = $pixelMatchResponses; + } + + public function getPixelMatchResponses() + { + return $this->pixelMatchResponses; + } + + public function setQuotaConfiguredLimit($quotaConfiguredLimit) + { + $this->quotaConfiguredLimit = $quotaConfiguredLimit; + } + + public function getQuotaConfiguredLimit() + { + return $this->quotaConfiguredLimit; + } + + public function setQuotaThrottledLimit($quotaThrottledLimit) + { + $this->quotaThrottledLimit = $quotaThrottledLimit; + } + + public function getQuotaThrottledLimit() + { + return $this->quotaThrottledLimit; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } +} + +class Google_Service_AdExchangeBuyer_PerformanceReportList extends Google_Collection +{ + protected $collection_key = 'performanceReport'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $performanceReportType = 'Google_Service_AdExchangeBuyer_PerformanceReport'; + protected $performanceReportDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPerformanceReport($performanceReport) + { + $this->performanceReport = $performanceReport; + } + + public function getPerformanceReport() + { + return $this->performanceReport; + } +} + +class Google_Service_AdExchangeBuyer_PretargetingConfig extends Google_Collection +{ + protected $collection_key = 'verticals'; + protected $internal_gapi_mappings = array( + ); + public $billingId; + public $configId; + public $configName; + public $creativeType; + protected $dimensionsType = 'Google_Service_AdExchangeBuyer_PretargetingConfigDimensions'; + protected $dimensionsDataType = 'array'; + public $excludedContentLabels; + public $excludedGeoCriteriaIds; + protected $excludedPlacementsType = 'Google_Service_AdExchangeBuyer_PretargetingConfigExcludedPlacements'; + protected $excludedPlacementsDataType = 'array'; + public $excludedUserLists; + public $excludedVerticals; + public $geoCriteriaIds; + public $isActive; + public $kind; + public $languages; + public $mobileCarriers; + public $mobileDevices; + public $mobileOperatingSystemVersions; + protected $placementsType = 'Google_Service_AdExchangeBuyer_PretargetingConfigPlacements'; + protected $placementsDataType = 'array'; + public $platforms; + public $supportedCreativeAttributes; + public $userLists; + public $vendorTypes; + public $verticals; + + public function setBillingId($billingId) + { + $this->billingId = $billingId; + } + + public function getBillingId() + { + return $this->billingId; + } + + public function setConfigId($configId) + { + $this->configId = $configId; + } + + public function getConfigId() + { + return $this->configId; + } + + public function setConfigName($configName) + { + $this->configName = $configName; + } + + public function getConfigName() + { + return $this->configName; + } + + public function setCreativeType($creativeType) + { + $this->creativeType = $creativeType; + } + + public function getCreativeType() + { + return $this->creativeType; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setExcludedContentLabels($excludedContentLabels) + { + $this->excludedContentLabels = $excludedContentLabels; + } + + public function getExcludedContentLabels() + { + return $this->excludedContentLabels; + } + + public function setExcludedGeoCriteriaIds($excludedGeoCriteriaIds) + { + $this->excludedGeoCriteriaIds = $excludedGeoCriteriaIds; + } + + public function getExcludedGeoCriteriaIds() + { + return $this->excludedGeoCriteriaIds; + } + + public function setExcludedPlacements($excludedPlacements) + { + $this->excludedPlacements = $excludedPlacements; + } + + public function getExcludedPlacements() + { + return $this->excludedPlacements; + } + + public function setExcludedUserLists($excludedUserLists) + { + $this->excludedUserLists = $excludedUserLists; + } + + public function getExcludedUserLists() + { + return $this->excludedUserLists; + } + + public function setExcludedVerticals($excludedVerticals) + { + $this->excludedVerticals = $excludedVerticals; + } + + public function getExcludedVerticals() + { + return $this->excludedVerticals; + } + + public function setGeoCriteriaIds($geoCriteriaIds) + { + $this->geoCriteriaIds = $geoCriteriaIds; + } + + public function getGeoCriteriaIds() + { + return $this->geoCriteriaIds; + } + + public function setIsActive($isActive) + { + $this->isActive = $isActive; + } + + public function getIsActive() + { + return $this->isActive; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguages($languages) + { + $this->languages = $languages; + } + + public function getLanguages() + { + return $this->languages; + } + + public function setMobileCarriers($mobileCarriers) + { + $this->mobileCarriers = $mobileCarriers; + } + + public function getMobileCarriers() + { + return $this->mobileCarriers; + } + + public function setMobileDevices($mobileDevices) + { + $this->mobileDevices = $mobileDevices; + } + + public function getMobileDevices() + { + return $this->mobileDevices; + } + + public function setMobileOperatingSystemVersions($mobileOperatingSystemVersions) + { + $this->mobileOperatingSystemVersions = $mobileOperatingSystemVersions; + } + + public function getMobileOperatingSystemVersions() + { + return $this->mobileOperatingSystemVersions; + } + + public function setPlacements($placements) + { + $this->placements = $placements; + } + + public function getPlacements() + { + return $this->placements; + } + + public function setPlatforms($platforms) + { + $this->platforms = $platforms; + } + + public function getPlatforms() + { + return $this->platforms; + } + + public function setSupportedCreativeAttributes($supportedCreativeAttributes) + { + $this->supportedCreativeAttributes = $supportedCreativeAttributes; + } + + public function getSupportedCreativeAttributes() + { + return $this->supportedCreativeAttributes; + } + + public function setUserLists($userLists) + { + $this->userLists = $userLists; + } + + public function getUserLists() + { + return $this->userLists; + } + + public function setVendorTypes($vendorTypes) + { + $this->vendorTypes = $vendorTypes; + } + + public function getVendorTypes() + { + return $this->vendorTypes; + } + + public function setVerticals($verticals) + { + $this->verticals = $verticals; + } + + public function getVerticals() + { + return $this->verticals; + } +} + +class Google_Service_AdExchangeBuyer_PretargetingConfigDimensions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_AdExchangeBuyer_PretargetingConfigExcludedPlacements extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $token; + public $type; + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdExchangeBuyer_PretargetingConfigList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeBuyer_PretargetingConfig'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeBuyer_PretargetingConfigPlacements extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $token; + public $type; + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/AdExchangeSeller.php b/vendor/google/apiclient/src/Google/Service/AdExchangeSeller.php new file mode 100644 index 0000000..7c8b11d --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/AdExchangeSeller.php @@ -0,0 +1,1854 @@ + + * Gives Ad Exchange seller users access to their inventory and the ability to generate reports + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_AdExchangeSeller extends Google_Service +{ + /** View and manage your Ad Exchange data. */ + const ADEXCHANGE_SELLER = "https://www.googleapis.com/auth/adexchange.seller"; + /** View your Ad Exchange data. */ + const ADEXCHANGE_SELLER_READONLY = "https://www.googleapis.com/auth/adexchange.seller.readonly"; + + public $accounts; + public $accounts_adclients; + public $accounts_alerts; + public $accounts_customchannels; + public $accounts_metadata_dimensions; + public $accounts_metadata_metrics; + public $accounts_preferreddeals; + public $accounts_reports; + public $accounts_reports_saved; + public $accounts_urlchannels; + + + /** + * Constructs the internal representation of the AdExchangeSeller service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'adexchangeseller/v2.0/'; + $this->version = 'v2.0'; + $this->serviceName = 'adexchangeseller'; + + $this->accounts = new Google_Service_AdExchangeSeller_Accounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_adclients = new Google_Service_AdExchangeSeller_AccountsAdclients_Resource( + $this, + $this->serviceName, + 'adclients', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/adclients', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_alerts = new Google_Service_AdExchangeSeller_AccountsAlerts_Resource( + $this, + $this->serviceName, + 'alerts', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/alerts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->accounts_customchannels = new Google_Service_AdExchangeSeller_AccountsCustomchannels_Resource( + $this, + $this->serviceName, + 'customchannels', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_metadata_dimensions = new Google_Service_AdExchangeSeller_AccountsMetadataDimensions_Resource( + $this, + $this->serviceName, + 'dimensions', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/metadata/dimensions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_metadata_metrics = new Google_Service_AdExchangeSeller_AccountsMetadataMetrics_Resource( + $this, + $this->serviceName, + 'metrics', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/metadata/metrics', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_preferreddeals = new Google_Service_AdExchangeSeller_AccountsPreferreddeals_Resource( + $this, + $this->serviceName, + 'preferreddeals', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}/preferreddeals/{dealId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'dealId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/preferreddeals', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_reports = new Google_Service_AdExchangeSeller_AccountsReports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'accounts/{accountId}/reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'metric' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'dimension' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_reports_saved = new Google_Service_AdExchangeSeller_AccountsReportsSaved_Resource( + $this, + $this->serviceName, + 'saved', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'accounts/{accountId}/reports/{savedReportId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'savedReportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/reports/saved', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_urlchannels = new Google_Service_AdExchangeSeller_AccountsUrlchannels_Resource( + $this, + $this->serviceName, + 'urlchannels', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/urlchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $accounts = $adexchangesellerService->accounts; + * + */ +class Google_Service_AdExchangeSeller_Accounts_Resource extends Google_Service_Resource +{ + + /** + * Get information about the selected Ad Exchange account. (accounts.get) + * + * @param string $accountId + * Account to get information about. Tip: 'myaccount' is a valid ID. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeSeller_Account + */ + public function get($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeSeller_Account"); + } + /** + * List all accounts available to this Ad Exchange account. + * (accounts.listAccounts) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through accounts. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of accounts to include in the response, used for paging. + * @return Google_Service_AdExchangeSeller_Accounts + */ + public function listAccounts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_Accounts"); + } +} + +/** + * The "adclients" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $adclients = $adexchangesellerService->adclients; + * + */ +class Google_Service_AdExchangeSeller_AccountsAdclients_Resource extends Google_Service_Resource +{ + + /** + * List all ad clients in this Ad Exchange account. + * (adclients.listAccountsAdclients) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through ad clients. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of ad clients to include in the response, used for paging. + * @return Google_Service_AdExchangeSeller_AdClients + */ + public function listAccountsAdclients($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_AdClients"); + } +} +/** + * The "alerts" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $alerts = $adexchangesellerService->alerts; + * + */ +class Google_Service_AdExchangeSeller_AccountsAlerts_Resource extends Google_Service_Resource +{ + + /** + * List the alerts for this Ad Exchange account. (alerts.listAccountsAlerts) + * + * @param string $accountId + * Account owning the alerts. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * The locale to use for translating alert messages. The account locale will be used if this is not + * supplied. The AdSense default (English) will be used if the supplied locale is invalid or + * unsupported. + * @return Google_Service_AdExchangeSeller_Alerts + */ + public function listAccountsAlerts($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_Alerts"); + } +} +/** + * The "customchannels" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $customchannels = $adexchangesellerService->customchannels; + * + */ +class Google_Service_AdExchangeSeller_AccountsCustomchannels_Resource extends Google_Service_Resource +{ + + /** + * Get the specified custom channel from the specified ad client. + * (customchannels.get) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client which contains the custom channel. + * @param string $customChannelId + * Custom channel to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeSeller_CustomChannel + */ + public function get($accountId, $adClientId, $customChannelId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeSeller_CustomChannel"); + } + /** + * List all custom channels in the specified ad client for this Ad Exchange + * account. (customchannels.listAccountsCustomchannels) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client for which to list custom channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through custom channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of custom channels to include in the response, used for paging. + * @return Google_Service_AdExchangeSeller_CustomChannels + */ + public function listAccountsCustomchannels($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_CustomChannels"); + } +} +/** + * The "metadata" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $metadata = $adexchangesellerService->metadata; + * + */ +class Google_Service_AdExchangeSeller_AccountsMetadata_Resource extends Google_Service_Resource +{ + +} + +/** + * The "dimensions" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $dimensions = $adexchangesellerService->dimensions; + * + */ +class Google_Service_AdExchangeSeller_AccountsMetadataDimensions_Resource extends Google_Service_Resource +{ + + /** + * List the metadata for the dimensions available to this AdExchange account. + * (dimensions.listAccountsMetadataDimensions) + * + * @param string $accountId + * Account with visibility to the dimensions. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeSeller_Metadata + */ + public function listAccountsMetadataDimensions($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_Metadata"); + } +} +/** + * The "metrics" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $metrics = $adexchangesellerService->metrics; + * + */ +class Google_Service_AdExchangeSeller_AccountsMetadataMetrics_Resource extends Google_Service_Resource +{ + + /** + * List the metadata for the metrics available to this AdExchange account. + * (metrics.listAccountsMetadataMetrics) + * + * @param string $accountId + * Account with visibility to the metrics. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeSeller_Metadata + */ + public function listAccountsMetadataMetrics($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_Metadata"); + } +} +/** + * The "preferreddeals" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $preferreddeals = $adexchangesellerService->preferreddeals; + * + */ +class Google_Service_AdExchangeSeller_AccountsPreferreddeals_Resource extends Google_Service_Resource +{ + + /** + * Get information about the selected Ad Exchange Preferred Deal. + * (preferreddeals.get) + * + * @param string $accountId + * Account owning the deal. + * @param string $dealId + * Preferred deal to get information about. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeSeller_PreferredDeal + */ + public function get($accountId, $dealId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'dealId' => $dealId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdExchangeSeller_PreferredDeal"); + } + /** + * List the preferred deals for this Ad Exchange account. + * (preferreddeals.listAccountsPreferreddeals) + * + * @param string $accountId + * Account owning the deals. + * @param array $optParams Optional parameters. + * @return Google_Service_AdExchangeSeller_PreferredDeals + */ + public function listAccountsPreferreddeals($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_PreferredDeals"); + } +} +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $reports = $adexchangesellerService->reports; + * + */ +class Google_Service_AdExchangeSeller_AccountsReports_Resource extends Google_Service_Resource +{ + + /** + * Generate an Ad Exchange report based on the report request sent in the query + * parameters. Returns the result as JSON; to retrieve output in CSV format + * specify "alt=csv" as a query parameter. (reports.generate) + * + * @param string $accountId + * Account which owns the generated report. + * @param string $startDate + * Start of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param string $endDate + * End of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" + * to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted + * ascending. + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param string metric + * Numeric columns to include in the report. + * @opt_param string maxResults + * The maximum number of rows of report data to return. + * @opt_param string filter + * Filters to be run on the report. + * @opt_param string startIndex + * Index of the first row of report data to return. + * @opt_param string dimension + * Dimensions to base the report on. + * @return Google_Service_AdExchangeSeller_Report + */ + public function generate($accountId, $startDate, $endDate, $optParams = array()) + { + $params = array('accountId' => $accountId, 'startDate' => $startDate, 'endDate' => $endDate); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdExchangeSeller_Report"); + } +} + +/** + * The "saved" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $saved = $adexchangesellerService->saved; + * + */ +class Google_Service_AdExchangeSeller_AccountsReportsSaved_Resource extends Google_Service_Resource +{ + + /** + * Generate an Ad Exchange report based on the saved report ID sent in the query + * parameters. (saved.generate) + * + * @param string $accountId + * Account owning the saved report. + * @param string $savedReportId + * The saved report to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param int startIndex + * Index of the first row of report data to return. + * @opt_param int maxResults + * The maximum number of rows of report data to return. + * @return Google_Service_AdExchangeSeller_Report + */ + public function generate($accountId, $savedReportId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'savedReportId' => $savedReportId); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdExchangeSeller_Report"); + } + /** + * List all saved reports in this Ad Exchange account. + * (saved.listAccountsReportsSaved) + * + * @param string $accountId + * Account owning the saved reports. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through saved reports. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of saved reports to include in the response, used for paging. + * @return Google_Service_AdExchangeSeller_SavedReports + */ + public function listAccountsReportsSaved($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_SavedReports"); + } +} +/** + * The "urlchannels" collection of methods. + * Typical usage is: + * + * $adexchangesellerService = new Google_Service_AdExchangeSeller(...); + * $urlchannels = $adexchangesellerService->urlchannels; + * + */ +class Google_Service_AdExchangeSeller_AccountsUrlchannels_Resource extends Google_Service_Resource +{ + + /** + * List all URL channels in the specified ad client for this Ad Exchange + * account. (urlchannels.listAccountsUrlchannels) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client for which to list URL channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through URL channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of URL channels to include in the response, used for paging. + * @return Google_Service_AdExchangeSeller_UrlChannels + */ + public function listAccountsUrlchannels($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdExchangeSeller_UrlChannels"); + } +} + + + + +class Google_Service_AdExchangeSeller_Account extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_AdExchangeSeller_Accounts extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdExchangeSeller_Account'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdExchangeSeller_AdClient extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $arcOptIn; + public $id; + public $kind; + public $productCode; + public $supportsReporting; + + public function setArcOptIn($arcOptIn) + { + $this->arcOptIn = $arcOptIn; + } + + public function getArcOptIn() + { + return $this->arcOptIn; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductCode($productCode) + { + $this->productCode = $productCode; + } + + public function getProductCode() + { + return $this->productCode; + } + + public function setSupportsReporting($supportsReporting) + { + $this->supportsReporting = $supportsReporting; + } + + public function getSupportsReporting() + { + return $this->supportsReporting; + } +} + +class Google_Service_AdExchangeSeller_AdClients extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdExchangeSeller_AdClient'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdExchangeSeller_Alert extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $message; + public $severity; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setSeverity($severity) + { + $this->severity = $severity; + } + + public function getSeverity() + { + return $this->severity; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdExchangeSeller_Alerts extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeSeller_Alert'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeSeller_CustomChannel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $id; + public $kind; + public $name; + protected $targetingInfoType = 'Google_Service_AdExchangeSeller_CustomChannelTargetingInfo'; + protected $targetingInfoDataType = ''; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setTargetingInfo(Google_Service_AdExchangeSeller_CustomChannelTargetingInfo $targetingInfo) + { + $this->targetingInfo = $targetingInfo; + } + + public function getTargetingInfo() + { + return $this->targetingInfo; + } +} + +class Google_Service_AdExchangeSeller_CustomChannelTargetingInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $adsAppearOn; + public $description; + public $location; + public $siteLanguage; + + public function setAdsAppearOn($adsAppearOn) + { + $this->adsAppearOn = $adsAppearOn; + } + + public function getAdsAppearOn() + { + return $this->adsAppearOn; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setSiteLanguage($siteLanguage) + { + $this->siteLanguage = $siteLanguage; + } + + public function getSiteLanguage() + { + return $this->siteLanguage; + } +} + +class Google_Service_AdExchangeSeller_CustomChannels extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdExchangeSeller_CustomChannel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdExchangeSeller_Metadata extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeSeller_ReportingMetadataEntry'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeSeller_PreferredDeal extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $advertiserName; + public $buyerNetworkName; + public $currencyCode; + public $endTime; + public $fixedCpm; + public $id; + public $kind; + public $startTime; + + public function setAdvertiserName($advertiserName) + { + $this->advertiserName = $advertiserName; + } + + public function getAdvertiserName() + { + return $this->advertiserName; + } + + public function setBuyerNetworkName($buyerNetworkName) + { + $this->buyerNetworkName = $buyerNetworkName; + } + + public function getBuyerNetworkName() + { + return $this->buyerNetworkName; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setFixedCpm($fixedCpm) + { + $this->fixedCpm = $fixedCpm; + } + + public function getFixedCpm() + { + return $this->fixedCpm; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } +} + +class Google_Service_AdExchangeSeller_PreferredDeals extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AdExchangeSeller_PreferredDeal'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdExchangeSeller_Report extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $averages; + protected $headersType = 'Google_Service_AdExchangeSeller_ReportHeaders'; + protected $headersDataType = 'array'; + public $kind; + public $rows; + public $totalMatchedRows; + public $totals; + public $warnings; + + public function setAverages($averages) + { + $this->averages = $averages; + } + + public function getAverages() + { + return $this->averages; + } + + public function setHeaders($headers) + { + $this->headers = $headers; + } + + public function getHeaders() + { + return $this->headers; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setTotalMatchedRows($totalMatchedRows) + { + $this->totalMatchedRows = $totalMatchedRows; + } + + public function getTotalMatchedRows() + { + return $this->totalMatchedRows; + } + + public function setTotals($totals) + { + $this->totals = $totals; + } + + public function getTotals() + { + return $this->totals; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_AdExchangeSeller_ReportHeaders extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currency; + public $name; + public $type; + + public function setCurrency($currency) + { + $this->currency = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdExchangeSeller_ReportingMetadataEntry extends Google_Collection +{ + protected $collection_key = 'supportedProducts'; + protected $internal_gapi_mappings = array( + ); + public $compatibleDimensions; + public $compatibleMetrics; + public $id; + public $kind; + public $requiredDimensions; + public $requiredMetrics; + public $supportedProducts; + + public function setCompatibleDimensions($compatibleDimensions) + { + $this->compatibleDimensions = $compatibleDimensions; + } + + public function getCompatibleDimensions() + { + return $this->compatibleDimensions; + } + + public function setCompatibleMetrics($compatibleMetrics) + { + $this->compatibleMetrics = $compatibleMetrics; + } + + public function getCompatibleMetrics() + { + return $this->compatibleMetrics; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequiredDimensions($requiredDimensions) + { + $this->requiredDimensions = $requiredDimensions; + } + + public function getRequiredDimensions() + { + return $this->requiredDimensions; + } + + public function setRequiredMetrics($requiredMetrics) + { + $this->requiredMetrics = $requiredMetrics; + } + + public function getRequiredMetrics() + { + return $this->requiredMetrics; + } + + public function setSupportedProducts($supportedProducts) + { + $this->supportedProducts = $supportedProducts; + } + + public function getSupportedProducts() + { + return $this->supportedProducts; + } +} + +class Google_Service_AdExchangeSeller_SavedReport extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_AdExchangeSeller_SavedReports extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdExchangeSeller_SavedReport'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdExchangeSeller_UrlChannel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $urlPattern; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUrlPattern($urlPattern) + { + $this->urlPattern = $urlPattern; + } + + public function getUrlPattern() + { + return $this->urlPattern; + } +} + +class Google_Service_AdExchangeSeller_UrlChannels extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdExchangeSeller_UrlChannel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/AdSense.php b/vendor/google/apiclient/src/Google/Service/AdSense.php new file mode 100644 index 0000000..19e5808 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/AdSense.php @@ -0,0 +1,3783 @@ + + * Gives AdSense publishers access to their inventory and the ability to generate reports + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_AdSense extends Google_Service +{ + /** View and manage your AdSense data. */ + const ADSENSE = "https://www.googleapis.com/auth/adsense"; + /** View your AdSense data. */ + const ADSENSE_READONLY = "https://www.googleapis.com/auth/adsense.readonly"; + + public $accounts; + public $accounts_adclients; + public $accounts_adunits; + public $accounts_adunits_customchannels; + public $accounts_alerts; + public $accounts_customchannels; + public $accounts_customchannels_adunits; + public $accounts_payments; + public $accounts_reports; + public $accounts_reports_saved; + public $accounts_savedadstyles; + public $accounts_urlchannels; + public $adclients; + public $adunits; + public $adunits_customchannels; + public $alerts; + public $customchannels; + public $customchannels_adunits; + public $metadata_dimensions; + public $metadata_metrics; + public $payments; + public $reports; + public $reports_saved; + public $savedadstyles; + public $urlchannels; + + + /** + * Constructs the internal representation of the AdSense service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'adsense/v1.4/'; + $this->version = 'v1.4'; + $this->serviceName = 'adsense'; + + $this->accounts = new Google_Service_AdSense_Accounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tree' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'accounts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_adclients = new Google_Service_AdSense_AccountsAdclients_Resource( + $this, + $this->serviceName, + 'adclients', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/adclients', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_adunits = new Google_Service_AdSense_AccountsAdunits_Resource( + $this, + $this->serviceName, + 'adunits', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getAdCode' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeInactive' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_adunits_customchannels = new Google_Service_AdSense_AccountsAdunitsCustomchannels_Resource( + $this, + $this->serviceName, + 'customchannels', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/customchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_alerts = new Google_Service_AdSense_AccountsAlerts_Resource( + $this, + $this->serviceName, + 'alerts', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'accounts/{accountId}/alerts/{alertId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'alertId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/alerts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->accounts_customchannels = new Google_Service_AdSense_AccountsCustomchannels_Resource( + $this, + $this->serviceName, + 'customchannels', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_customchannels_adunits = new Google_Service_AdSense_AccountsCustomchannelsAdunits_Resource( + $this, + $this->serviceName, + 'adunits', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}/adunits', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeInactive' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->accounts_payments = new Google_Service_AdSense_AccountsPayments_Resource( + $this, + $this->serviceName, + 'payments', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/payments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_reports = new Google_Service_AdSense_AccountsReports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'accounts/{accountId}/reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'metric' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'currency' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'useTimezoneReporting' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'dimension' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_reports_saved = new Google_Service_AdSense_AccountsReportsSaved_Resource( + $this, + $this->serviceName, + 'saved', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'accounts/{accountId}/reports/{savedReportId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'savedReportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/reports/saved', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_savedadstyles = new Google_Service_AdSense_AccountsSavedadstyles_Resource( + $this, + $this->serviceName, + 'savedadstyles', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}/savedadstyles/{savedAdStyleId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'savedAdStyleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/savedadstyles', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_urlchannels = new Google_Service_AdSense_AccountsUrlchannels_Resource( + $this, + $this->serviceName, + 'urlchannels', + array( + 'methods' => array( + 'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/urlchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->adclients = new Google_Service_AdSense_Adclients_Resource( + $this, + $this->serviceName, + 'adclients', + array( + 'methods' => array( + 'list' => array( + 'path' => 'adclients', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->adunits = new Google_Service_AdSense_Adunits_Resource( + $this, + $this->serviceName, + 'adunits', + array( + 'methods' => array( + 'get' => array( + 'path' => 'adclients/{adClientId}/adunits/{adUnitId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getAdCode' => array( + 'path' => 'adclients/{adClientId}/adunits/{adUnitId}/adcode', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'adclients/{adClientId}/adunits', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeInactive' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->adunits_customchannels = new Google_Service_AdSense_AdunitsCustomchannels_Resource( + $this, + $this->serviceName, + 'customchannels', + array( + 'methods' => array( + 'list' => array( + 'path' => 'adclients/{adClientId}/adunits/{adUnitId}/customchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->alerts = new Google_Service_AdSense_Alerts_Resource( + $this, + $this->serviceName, + 'alerts', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'alerts/{alertId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'alertId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'alerts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->customchannels = new Google_Service_AdSense_Customchannels_Resource( + $this, + $this->serviceName, + 'customchannels', + array( + 'methods' => array( + 'get' => array( + 'path' => 'adclients/{adClientId}/customchannels/{customChannelId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'adclients/{adClientId}/customchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->customchannels_adunits = new Google_Service_AdSense_CustomchannelsAdunits_Resource( + $this, + $this->serviceName, + 'adunits', + array( + 'methods' => array( + 'list' => array( + 'path' => 'adclients/{adClientId}/customchannels/{customChannelId}/adunits', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeInactive' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->metadata_dimensions = new Google_Service_AdSense_MetadataDimensions_Resource( + $this, + $this->serviceName, + 'dimensions', + array( + 'methods' => array( + 'list' => array( + 'path' => 'metadata/dimensions', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->metadata_metrics = new Google_Service_AdSense_MetadataMetrics_Resource( + $this, + $this->serviceName, + 'metrics', + array( + 'methods' => array( + 'list' => array( + 'path' => 'metadata/metrics', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->payments = new Google_Service_AdSense_Payments_Resource( + $this, + $this->serviceName, + 'payments', + array( + 'methods' => array( + 'list' => array( + 'path' => 'payments', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->reports = new Google_Service_AdSense_Reports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'metric' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'currency' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'useTimezoneReporting' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'dimension' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'accountId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->reports_saved = new Google_Service_AdSense_ReportsSaved_Resource( + $this, + $this->serviceName, + 'saved', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'reports/{savedReportId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'savedReportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'list' => array( + 'path' => 'reports/saved', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->savedadstyles = new Google_Service_AdSense_Savedadstyles_Resource( + $this, + $this->serviceName, + 'savedadstyles', + array( + 'methods' => array( + 'get' => array( + 'path' => 'savedadstyles/{savedAdStyleId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'savedAdStyleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'savedadstyles', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->urlchannels = new Google_Service_AdSense_Urlchannels_Resource( + $this, + $this->serviceName, + 'urlchannels', + array( + 'methods' => array( + 'list' => array( + 'path' => 'adclients/{adClientId}/urlchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $accounts = $adsenseService->accounts; + * + */ +class Google_Service_AdSense_Accounts_Resource extends Google_Service_Resource +{ + + /** + * Get information about the selected AdSense account. (accounts.get) + * + * @param string $accountId + * Account to get information about. + * @param array $optParams Optional parameters. + * + * @opt_param bool tree + * Whether the tree of sub accounts should be returned. + * @return Google_Service_AdSense_Account + */ + public function get($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_Account"); + } + /** + * List all accounts available to this AdSense account. (accounts.listAccounts) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through accounts. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of accounts to include in the response, used for paging. + * @return Google_Service_AdSense_Accounts + */ + public function listAccounts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Accounts"); + } +} + +/** + * The "adclients" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $adclients = $adsenseService->adclients; + * + */ +class Google_Service_AdSense_AccountsAdclients_Resource extends Google_Service_Resource +{ + + /** + * List all ad clients in the specified account. + * (adclients.listAccountsAdclients) + * + * @param string $accountId + * Account for which to list ad clients. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through ad clients. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of ad clients to include in the response, used for paging. + * @return Google_Service_AdSense_AdClients + */ + public function listAccountsAdclients($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_AdClients"); + } +} +/** + * The "adunits" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $adunits = $adsenseService->adunits; + * + */ +class Google_Service_AdSense_AccountsAdunits_Resource extends Google_Service_Resource +{ + + /** + * Gets the specified ad unit in the specified ad client for the specified + * account. (adunits.get) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client for which to get the ad unit. + * @param string $adUnitId + * Ad unit to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_AdUnit + */ + public function get($accountId, $adClientId, $adUnitId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_AdUnit"); + } + /** + * Get ad code for the specified ad unit. (adunits.getAdCode) + * + * @param string $accountId + * Account which contains the ad client. + * @param string $adClientId + * Ad client with contains the ad unit. + * @param string $adUnitId + * Ad unit to get the code for. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_AdCode + */ + public function getAdCode($accountId, $adClientId, $adUnitId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('getAdCode', array($params), "Google_Service_AdSense_AdCode"); + } + /** + * List all ad units in the specified ad client for the specified account. + * (adunits.listAccountsAdunits) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client for which to list ad units. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeInactive + * Whether to include inactive ad units. Default: true. + * @opt_param string pageToken + * A continuation token, used to page through ad units. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of ad units to include in the response, used for paging. + * @return Google_Service_AdSense_AdUnits + */ + public function listAccountsAdunits($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_AdUnits"); + } +} + +/** + * The "customchannels" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $customchannels = $adsenseService->customchannels; + * + */ +class Google_Service_AdSense_AccountsAdunitsCustomchannels_Resource extends Google_Service_Resource +{ + + /** + * List all custom channels which the specified ad unit belongs to. + * (customchannels.listAccountsAdunitsCustomchannels) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client which contains the ad unit. + * @param string $adUnitId + * Ad unit for which to list custom channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through custom channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of custom channels to include in the response, used for paging. + * @return Google_Service_AdSense_CustomChannels + */ + public function listAccountsAdunitsCustomchannels($accountId, $adClientId, $adUnitId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_CustomChannels"); + } +} +/** + * The "alerts" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $alerts = $adsenseService->alerts; + * + */ +class Google_Service_AdSense_AccountsAlerts_Resource extends Google_Service_Resource +{ + + /** + * Dismiss (delete) the specified alert from the specified publisher AdSense + * account. (alerts.delete) + * + * @param string $accountId + * Account which contains the ad unit. + * @param string $alertId + * Alert to delete. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $alertId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'alertId' => $alertId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * List the alerts for the specified AdSense account. + * (alerts.listAccountsAlerts) + * + * @param string $accountId + * Account for which to retrieve the alerts. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * The locale to use for translating alert messages. The account locale will be used if this is not + * supplied. The AdSense default (English) will be used if the supplied locale is invalid or + * unsupported. + * @return Google_Service_AdSense_Alerts + */ + public function listAccountsAlerts($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Alerts"); + } +} +/** + * The "customchannels" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $customchannels = $adsenseService->customchannels; + * + */ +class Google_Service_AdSense_AccountsCustomchannels_Resource extends Google_Service_Resource +{ + + /** + * Get the specified custom channel from the specified ad client for the + * specified account. (customchannels.get) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client which contains the custom channel. + * @param string $customChannelId + * Custom channel to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_CustomChannel + */ + public function get($accountId, $adClientId, $customChannelId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_CustomChannel"); + } + /** + * List all custom channels in the specified ad client for the specified + * account. (customchannels.listAccountsCustomchannels) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client for which to list custom channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through custom channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of custom channels to include in the response, used for paging. + * @return Google_Service_AdSense_CustomChannels + */ + public function listAccountsCustomchannels($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_CustomChannels"); + } +} + +/** + * The "adunits" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $adunits = $adsenseService->adunits; + * + */ +class Google_Service_AdSense_AccountsCustomchannelsAdunits_Resource extends Google_Service_Resource +{ + + /** + * List all ad units in the specified custom channel. + * (adunits.listAccountsCustomchannelsAdunits) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client which contains the custom channel. + * @param string $customChannelId + * Custom channel for which to list ad units. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeInactive + * Whether to include inactive ad units. Default: true. + * @opt_param int maxResults + * The maximum number of ad units to include in the response, used for paging. + * @opt_param string pageToken + * A continuation token, used to page through ad units. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @return Google_Service_AdSense_AdUnits + */ + public function listAccountsCustomchannelsAdunits($accountId, $adClientId, $customChannelId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_AdUnits"); + } +} +/** + * The "payments" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $payments = $adsenseService->payments; + * + */ +class Google_Service_AdSense_AccountsPayments_Resource extends Google_Service_Resource +{ + + /** + * List the payments for the specified AdSense account. + * (payments.listAccountsPayments) + * + * @param string $accountId + * Account for which to retrieve the payments. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_Payments + */ + public function listAccountsPayments($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Payments"); + } +} +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $reports = $adsenseService->reports; + * + */ +class Google_Service_AdSense_AccountsReports_Resource extends Google_Service_Resource +{ + + /** + * Generate an AdSense report based on the report request sent in the query + * parameters. Returns the result as JSON; to retrieve output in CSV format + * specify "alt=csv" as a query parameter. (reports.generate) + * + * @param string $accountId + * Account upon which to report. + * @param string $startDate + * Start of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param string $endDate + * End of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" + * to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted + * ascending. + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param string metric + * Numeric columns to include in the report. + * @opt_param int maxResults + * The maximum number of rows of report data to return. + * @opt_param string filter + * Filters to be run on the report. + * @opt_param string currency + * Optional currency to use when reporting on monetary metrics. Defaults to the account's currency + * if not set. + * @opt_param int startIndex + * Index of the first row of report data to return. + * @opt_param bool useTimezoneReporting + * Whether the report should be generated in the AdSense account's local timezone. If false default + * PST/PDT timezone will be used. + * @opt_param string dimension + * Dimensions to base the report on. + * @return Google_Service_AdSense_AdsenseReportsGenerateResponse + */ + public function generate($accountId, $startDate, $endDate, $optParams = array()) + { + $params = array('accountId' => $accountId, 'startDate' => $startDate, 'endDate' => $endDate); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdSense_AdsenseReportsGenerateResponse"); + } +} + +/** + * The "saved" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $saved = $adsenseService->saved; + * + */ +class Google_Service_AdSense_AccountsReportsSaved_Resource extends Google_Service_Resource +{ + + /** + * Generate an AdSense report based on the saved report ID sent in the query + * parameters. (saved.generate) + * + * @param string $accountId + * Account to which the saved reports belong. + * @param string $savedReportId + * The saved report to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param int startIndex + * Index of the first row of report data to return. + * @opt_param int maxResults + * The maximum number of rows of report data to return. + * @return Google_Service_AdSense_AdsenseReportsGenerateResponse + */ + public function generate($accountId, $savedReportId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'savedReportId' => $savedReportId); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdSense_AdsenseReportsGenerateResponse"); + } + /** + * List all saved reports in the specified AdSense account. + * (saved.listAccountsReportsSaved) + * + * @param string $accountId + * Account to which the saved reports belong. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through saved reports. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of saved reports to include in the response, used for paging. + * @return Google_Service_AdSense_SavedReports + */ + public function listAccountsReportsSaved($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_SavedReports"); + } +} +/** + * The "savedadstyles" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $savedadstyles = $adsenseService->savedadstyles; + * + */ +class Google_Service_AdSense_AccountsSavedadstyles_Resource extends Google_Service_Resource +{ + + /** + * List a specific saved ad style for the specified account. (savedadstyles.get) + * + * @param string $accountId + * Account for which to get the saved ad style. + * @param string $savedAdStyleId + * Saved ad style to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_SavedAdStyle + */ + public function get($accountId, $savedAdStyleId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'savedAdStyleId' => $savedAdStyleId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_SavedAdStyle"); + } + /** + * List all saved ad styles in the specified account. + * (savedadstyles.listAccountsSavedadstyles) + * + * @param string $accountId + * Account for which to list saved ad styles. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through saved ad styles. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of saved ad styles to include in the response, used for paging. + * @return Google_Service_AdSense_SavedAdStyles + */ + public function listAccountsSavedadstyles($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_SavedAdStyles"); + } +} +/** + * The "urlchannels" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $urlchannels = $adsenseService->urlchannels; + * + */ +class Google_Service_AdSense_AccountsUrlchannels_Resource extends Google_Service_Resource +{ + + /** + * List all URL channels in the specified ad client for the specified account. + * (urlchannels.listAccountsUrlchannels) + * + * @param string $accountId + * Account to which the ad client belongs. + * @param string $adClientId + * Ad client for which to list URL channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through URL channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of URL channels to include in the response, used for paging. + * @return Google_Service_AdSense_UrlChannels + */ + public function listAccountsUrlchannels($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_UrlChannels"); + } +} + +/** + * The "adclients" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $adclients = $adsenseService->adclients; + * + */ +class Google_Service_AdSense_Adclients_Resource extends Google_Service_Resource +{ + + /** + * List all ad clients in this AdSense account. (adclients.listAdclients) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through ad clients. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of ad clients to include in the response, used for paging. + * @return Google_Service_AdSense_AdClients + */ + public function listAdclients($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_AdClients"); + } +} + +/** + * The "adunits" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $adunits = $adsenseService->adunits; + * + */ +class Google_Service_AdSense_Adunits_Resource extends Google_Service_Resource +{ + + /** + * Gets the specified ad unit in the specified ad client. (adunits.get) + * + * @param string $adClientId + * Ad client for which to get the ad unit. + * @param string $adUnitId + * Ad unit to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_AdUnit + */ + public function get($adClientId, $adUnitId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_AdUnit"); + } + /** + * Get ad code for the specified ad unit. (adunits.getAdCode) + * + * @param string $adClientId + * Ad client with contains the ad unit. + * @param string $adUnitId + * Ad unit to get the code for. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_AdCode + */ + public function getAdCode($adClientId, $adUnitId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('getAdCode', array($params), "Google_Service_AdSense_AdCode"); + } + /** + * List all ad units in the specified ad client for this AdSense account. + * (adunits.listAdunits) + * + * @param string $adClientId + * Ad client for which to list ad units. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeInactive + * Whether to include inactive ad units. Default: true. + * @opt_param string pageToken + * A continuation token, used to page through ad units. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of ad units to include in the response, used for paging. + * @return Google_Service_AdSense_AdUnits + */ + public function listAdunits($adClientId, $optParams = array()) + { + $params = array('adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_AdUnits"); + } +} + +/** + * The "customchannels" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $customchannels = $adsenseService->customchannels; + * + */ +class Google_Service_AdSense_AdunitsCustomchannels_Resource extends Google_Service_Resource +{ + + /** + * List all custom channels which the specified ad unit belongs to. + * (customchannels.listAdunitsCustomchannels) + * + * @param string $adClientId + * Ad client which contains the ad unit. + * @param string $adUnitId + * Ad unit for which to list custom channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through custom channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of custom channels to include in the response, used for paging. + * @return Google_Service_AdSense_CustomChannels + */ + public function listAdunitsCustomchannels($adClientId, $adUnitId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_CustomChannels"); + } +} + +/** + * The "alerts" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $alerts = $adsenseService->alerts; + * + */ +class Google_Service_AdSense_Alerts_Resource extends Google_Service_Resource +{ + + /** + * Dismiss (delete) the specified alert from the publisher's AdSense account. + * (alerts.delete) + * + * @param string $alertId + * Alert to delete. + * @param array $optParams Optional parameters. + */ + public function delete($alertId, $optParams = array()) + { + $params = array('alertId' => $alertId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * List the alerts for this AdSense account. (alerts.listAlerts) + * + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * The locale to use for translating alert messages. The account locale will be used if this is not + * supplied. The AdSense default (English) will be used if the supplied locale is invalid or + * unsupported. + * @return Google_Service_AdSense_Alerts + */ + public function listAlerts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Alerts"); + } +} + +/** + * The "customchannels" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $customchannels = $adsenseService->customchannels; + * + */ +class Google_Service_AdSense_Customchannels_Resource extends Google_Service_Resource +{ + + /** + * Get the specified custom channel from the specified ad client. + * (customchannels.get) + * + * @param string $adClientId + * Ad client which contains the custom channel. + * @param string $customChannelId + * Custom channel to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_CustomChannel + */ + public function get($adClientId, $customChannelId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_CustomChannel"); + } + /** + * List all custom channels in the specified ad client for this AdSense account. + * (customchannels.listCustomchannels) + * + * @param string $adClientId + * Ad client for which to list custom channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through custom channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of custom channels to include in the response, used for paging. + * @return Google_Service_AdSense_CustomChannels + */ + public function listCustomchannels($adClientId, $optParams = array()) + { + $params = array('adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_CustomChannels"); + } +} + +/** + * The "adunits" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $adunits = $adsenseService->adunits; + * + */ +class Google_Service_AdSense_CustomchannelsAdunits_Resource extends Google_Service_Resource +{ + + /** + * List all ad units in the specified custom channel. + * (adunits.listCustomchannelsAdunits) + * + * @param string $adClientId + * Ad client which contains the custom channel. + * @param string $customChannelId + * Custom channel for which to list ad units. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeInactive + * Whether to include inactive ad units. Default: true. + * @opt_param string pageToken + * A continuation token, used to page through ad units. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of ad units to include in the response, used for paging. + * @return Google_Service_AdSense_AdUnits + */ + public function listCustomchannelsAdunits($adClientId, $customChannelId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_AdUnits"); + } +} + +/** + * The "metadata" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $metadata = $adsenseService->metadata; + * + */ +class Google_Service_AdSense_Metadata_Resource extends Google_Service_Resource +{ + +} + +/** + * The "dimensions" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $dimensions = $adsenseService->dimensions; + * + */ +class Google_Service_AdSense_MetadataDimensions_Resource extends Google_Service_Resource +{ + + /** + * List the metadata for the dimensions available to this AdSense account. + * (dimensions.listMetadataDimensions) + * + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_Metadata + */ + public function listMetadataDimensions($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Metadata"); + } +} +/** + * The "metrics" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $metrics = $adsenseService->metrics; + * + */ +class Google_Service_AdSense_MetadataMetrics_Resource extends Google_Service_Resource +{ + + /** + * List the metadata for the metrics available to this AdSense account. + * (metrics.listMetadataMetrics) + * + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_Metadata + */ + public function listMetadataMetrics($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Metadata"); + } +} + +/** + * The "payments" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $payments = $adsenseService->payments; + * + */ +class Google_Service_AdSense_Payments_Resource extends Google_Service_Resource +{ + + /** + * List the payments for this AdSense account. (payments.listPayments) + * + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_Payments + */ + public function listPayments($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_Payments"); + } +} + +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $reports = $adsenseService->reports; + * + */ +class Google_Service_AdSense_Reports_Resource extends Google_Service_Resource +{ + + /** + * Generate an AdSense report based on the report request sent in the query + * parameters. Returns the result as JSON; to retrieve output in CSV format + * specify "alt=csv" as a query parameter. (reports.generate) + * + * @param string $startDate + * Start of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param string $endDate + * End of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" + * to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted + * ascending. + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param string metric + * Numeric columns to include in the report. + * @opt_param int maxResults + * The maximum number of rows of report data to return. + * @opt_param string filter + * Filters to be run on the report. + * @opt_param string currency + * Optional currency to use when reporting on monetary metrics. Defaults to the account's currency + * if not set. + * @opt_param int startIndex + * Index of the first row of report data to return. + * @opt_param bool useTimezoneReporting + * Whether the report should be generated in the AdSense account's local timezone. If false default + * PST/PDT timezone will be used. + * @opt_param string dimension + * Dimensions to base the report on. + * @opt_param string accountId + * Accounts upon which to report. + * @return Google_Service_AdSense_AdsenseReportsGenerateResponse + */ + public function generate($startDate, $endDate, $optParams = array()) + { + $params = array('startDate' => $startDate, 'endDate' => $endDate); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdSense_AdsenseReportsGenerateResponse"); + } +} + +/** + * The "saved" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $saved = $adsenseService->saved; + * + */ +class Google_Service_AdSense_ReportsSaved_Resource extends Google_Service_Resource +{ + + /** + * Generate an AdSense report based on the saved report ID sent in the query + * parameters. (saved.generate) + * + * @param string $savedReportId + * The saved report to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param int startIndex + * Index of the first row of report data to return. + * @opt_param int maxResults + * The maximum number of rows of report data to return. + * @return Google_Service_AdSense_AdsenseReportsGenerateResponse + */ + public function generate($savedReportId, $optParams = array()) + { + $params = array('savedReportId' => $savedReportId); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdSense_AdsenseReportsGenerateResponse"); + } + /** + * List all saved reports in this AdSense account. (saved.listReportsSaved) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through saved reports. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of saved reports to include in the response, used for paging. + * @return Google_Service_AdSense_SavedReports + */ + public function listReportsSaved($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_SavedReports"); + } +} + +/** + * The "savedadstyles" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $savedadstyles = $adsenseService->savedadstyles; + * + */ +class Google_Service_AdSense_Savedadstyles_Resource extends Google_Service_Resource +{ + + /** + * Get a specific saved ad style from the user's account. (savedadstyles.get) + * + * @param string $savedAdStyleId + * Saved ad style to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSense_SavedAdStyle + */ + public function get($savedAdStyleId, $optParams = array()) + { + $params = array('savedAdStyleId' => $savedAdStyleId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSense_SavedAdStyle"); + } + /** + * List all saved ad styles in the user's account. + * (savedadstyles.listSavedadstyles) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through saved ad styles. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of saved ad styles to include in the response, used for paging. + * @return Google_Service_AdSense_SavedAdStyles + */ + public function listSavedadstyles($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_SavedAdStyles"); + } +} + +/** + * The "urlchannels" collection of methods. + * Typical usage is: + * + * $adsenseService = new Google_Service_AdSense(...); + * $urlchannels = $adsenseService->urlchannels; + * + */ +class Google_Service_AdSense_Urlchannels_Resource extends Google_Service_Resource +{ + + /** + * List all URL channels in the specified ad client for this AdSense account. + * (urlchannels.listUrlchannels) + * + * @param string $adClientId + * Ad client for which to list URL channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through URL channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param int maxResults + * The maximum number of URL channels to include in the response, used for paging. + * @return Google_Service_AdSense_UrlChannels + */ + public function listUrlchannels($adClientId, $optParams = array()) + { + $params = array('adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSense_UrlChannels"); + } +} + + + + +class Google_Service_AdSense_Account extends Google_Collection +{ + protected $collection_key = 'subAccounts'; + public $id; + public $kind; + public $name; + public $premium; + protected $subAccountsType = 'Google_Service_AdSense_Account'; + protected $subAccountsDataType = 'array'; + public $timezone; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPremium($premium) + { + $this->premium = $premium; + } + + public function getPremium() + { + return $this->premium; + } + + public function setSubAccounts($subAccounts) + { + $this->subAccounts = $subAccounts; + } + + public function getSubAccounts() + { + return $this->subAccounts; + } + + public function setTimezone($timezone) + { + $this->timezone = $timezone; + } + + public function getTimezone() + { + return $this->timezone; + } +} + +class Google_Service_AdSense_Accounts extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_Account'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSense_AdClient extends Google_Model +{ + public $arcOptIn; + public $arcReviewMode; + public $id; + public $kind; + public $productCode; + public $supportsReporting; + + public function setArcOptIn($arcOptIn) + { + $this->arcOptIn = $arcOptIn; + } + + public function getArcOptIn() + { + return $this->arcOptIn; + } + + public function setArcReviewMode($arcReviewMode) + { + $this->arcReviewMode = $arcReviewMode; + } + + public function getArcReviewMode() + { + return $this->arcReviewMode; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductCode($productCode) + { + $this->productCode = $productCode; + } + + public function getProductCode() + { + return $this->productCode; + } + + public function setSupportsReporting($supportsReporting) + { + $this->supportsReporting = $supportsReporting; + } + + public function getSupportsReporting() + { + return $this->supportsReporting; + } +} + +class Google_Service_AdSense_AdClients extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_AdClient'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSense_AdCode extends Google_Model +{ + public $adCode; + public $kind; + + public function setAdCode($adCode) + { + $this->adCode = $adCode; + } + + public function getAdCode() + { + return $this->adCode; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSense_AdStyle extends Google_Model +{ + protected $colorsType = 'Google_Service_AdSense_AdStyleColors'; + protected $colorsDataType = ''; + public $corners; + protected $fontType = 'Google_Service_AdSense_AdStyleFont'; + protected $fontDataType = ''; + public $kind; + + public function setColors(Google_Service_AdSense_AdStyleColors $colors) + { + $this->colors = $colors; + } + + public function getColors() + { + return $this->colors; + } + + public function setCorners($corners) + { + $this->corners = $corners; + } + + public function getCorners() + { + return $this->corners; + } + + public function setFont(Google_Service_AdSense_AdStyleFont $font) + { + $this->font = $font; + } + + public function getFont() + { + return $this->font; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSense_AdStyleColors extends Google_Model +{ + public $background; + public $border; + public $text; + public $title; + public $url; + + public function setBackground($background) + { + $this->background = $background; + } + + public function getBackground() + { + return $this->background; + } + + public function setBorder($border) + { + $this->border = $border; + } + + public function getBorder() + { + return $this->border; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_AdSense_AdStyleFont extends Google_Model +{ + public $family; + public $size; + + public function setFamily($family) + { + $this->family = $family; + } + + public function getFamily() + { + return $this->family; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_AdSense_AdUnit extends Google_Model +{ + public $code; + protected $contentAdsSettingsType = 'Google_Service_AdSense_AdUnitContentAdsSettings'; + protected $contentAdsSettingsDataType = ''; + protected $customStyleType = 'Google_Service_AdSense_AdStyle'; + protected $customStyleDataType = ''; + protected $feedAdsSettingsType = 'Google_Service_AdSense_AdUnitFeedAdsSettings'; + protected $feedAdsSettingsDataType = ''; + public $id; + public $kind; + protected $mobileContentAdsSettingsType = 'Google_Service_AdSense_AdUnitMobileContentAdsSettings'; + protected $mobileContentAdsSettingsDataType = ''; + public $name; + public $savedStyleId; + public $status; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setContentAdsSettings(Google_Service_AdSense_AdUnitContentAdsSettings $contentAdsSettings) + { + $this->contentAdsSettings = $contentAdsSettings; + } + + public function getContentAdsSettings() + { + return $this->contentAdsSettings; + } + + public function setCustomStyle(Google_Service_AdSense_AdStyle $customStyle) + { + $this->customStyle = $customStyle; + } + + public function getCustomStyle() + { + return $this->customStyle; + } + + public function setFeedAdsSettings(Google_Service_AdSense_AdUnitFeedAdsSettings $feedAdsSettings) + { + $this->feedAdsSettings = $feedAdsSettings; + } + + public function getFeedAdsSettings() + { + return $this->feedAdsSettings; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMobileContentAdsSettings(Google_Service_AdSense_AdUnitMobileContentAdsSettings $mobileContentAdsSettings) + { + $this->mobileContentAdsSettings = $mobileContentAdsSettings; + } + + public function getMobileContentAdsSettings() + { + return $this->mobileContentAdsSettings; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSavedStyleId($savedStyleId) + { + $this->savedStyleId = $savedStyleId; + } + + public function getSavedStyleId() + { + return $this->savedStyleId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_AdSense_AdUnitContentAdsSettings extends Google_Model +{ + protected $backupOptionType = 'Google_Service_AdSense_AdUnitContentAdsSettingsBackupOption'; + protected $backupOptionDataType = ''; + public $size; + public $type; + + public function setBackupOption(Google_Service_AdSense_AdUnitContentAdsSettingsBackupOption $backupOption) + { + $this->backupOption = $backupOption; + } + + public function getBackupOption() + { + return $this->backupOption; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSense_AdUnitContentAdsSettingsBackupOption extends Google_Model +{ + public $color; + public $type; + public $url; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_AdSense_AdUnitFeedAdsSettings extends Google_Model +{ + public $adPosition; + public $frequency; + public $minimumWordCount; + public $type; + + public function setAdPosition($adPosition) + { + $this->adPosition = $adPosition; + } + + public function getAdPosition() + { + return $this->adPosition; + } + + public function setFrequency($frequency) + { + $this->frequency = $frequency; + } + + public function getFrequency() + { + return $this->frequency; + } + + public function setMinimumWordCount($minimumWordCount) + { + $this->minimumWordCount = $minimumWordCount; + } + + public function getMinimumWordCount() + { + return $this->minimumWordCount; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSense_AdUnitMobileContentAdsSettings extends Google_Model +{ + public $markupLanguage; + public $scriptingLanguage; + public $size; + public $type; + + public function setMarkupLanguage($markupLanguage) + { + $this->markupLanguage = $markupLanguage; + } + + public function getMarkupLanguage() + { + return $this->markupLanguage; + } + + public function setScriptingLanguage($scriptingLanguage) + { + $this->scriptingLanguage = $scriptingLanguage; + } + + public function getScriptingLanguage() + { + return $this->scriptingLanguage; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSense_AdUnits extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_AdUnit'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSense_AdsenseReportsGenerateResponse extends Google_Collection +{ + protected $collection_key = 'warnings'; + public $averages; + public $endDate; + protected $headersType = 'Google_Service_AdSense_AdsenseReportsGenerateResponseHeaders'; + protected $headersDataType = 'array'; + public $kind; + public $rows; + public $startDate; + public $totalMatchedRows; + public $totals; + public $warnings; + + public function setAverages($averages) + { + $this->averages = $averages; + } + + public function getAverages() + { + return $this->averages; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setHeaders($headers) + { + $this->headers = $headers; + } + + public function getHeaders() + { + return $this->headers; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setTotalMatchedRows($totalMatchedRows) + { + $this->totalMatchedRows = $totalMatchedRows; + } + + public function getTotalMatchedRows() + { + return $this->totalMatchedRows; + } + + public function setTotals($totals) + { + $this->totals = $totals; + } + + public function getTotals() + { + return $this->totals; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_AdSense_AdsenseReportsGenerateResponseHeaders extends Google_Model +{ + public $currency; + public $name; + public $type; + + public function setCurrency($currency) + { + $this->currency = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSense_Alert extends Google_Model +{ + public $id; + public $isDismissible; + public $kind; + public $message; + public $severity; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsDismissible($isDismissible) + { + $this->isDismissible = $isDismissible; + } + + public function getIsDismissible() + { + return $this->isDismissible; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setSeverity($severity) + { + $this->severity = $severity; + } + + public function getSeverity() + { + return $this->severity; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSense_Alerts extends Google_Collection +{ + protected $collection_key = 'items'; + protected $itemsType = 'Google_Service_AdSense_Alert'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSense_CustomChannel extends Google_Model +{ + public $code; + public $id; + public $kind; + public $name; + protected $targetingInfoType = 'Google_Service_AdSense_CustomChannelTargetingInfo'; + protected $targetingInfoDataType = ''; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setTargetingInfo(Google_Service_AdSense_CustomChannelTargetingInfo $targetingInfo) + { + $this->targetingInfo = $targetingInfo; + } + + public function getTargetingInfo() + { + return $this->targetingInfo; + } +} + +class Google_Service_AdSense_CustomChannelTargetingInfo extends Google_Model +{ + public $adsAppearOn; + public $description; + public $location; + public $siteLanguage; + + public function setAdsAppearOn($adsAppearOn) + { + $this->adsAppearOn = $adsAppearOn; + } + + public function getAdsAppearOn() + { + return $this->adsAppearOn; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setSiteLanguage($siteLanguage) + { + $this->siteLanguage = $siteLanguage; + } + + public function getSiteLanguage() + { + return $this->siteLanguage; + } +} + +class Google_Service_AdSense_CustomChannels extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_CustomChannel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSense_Metadata extends Google_Collection +{ + protected $collection_key = 'items'; + protected $itemsType = 'Google_Service_AdSense_ReportingMetadataEntry'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSense_Payment extends Google_Model +{ + public $id; + public $kind; + public $paymentAmount; + public $paymentAmountCurrencyCode; + public $paymentDate; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPaymentAmount($paymentAmount) + { + $this->paymentAmount = $paymentAmount; + } + + public function getPaymentAmount() + { + return $this->paymentAmount; + } + + public function setPaymentAmountCurrencyCode($paymentAmountCurrencyCode) + { + $this->paymentAmountCurrencyCode = $paymentAmountCurrencyCode; + } + + public function getPaymentAmountCurrencyCode() + { + return $this->paymentAmountCurrencyCode; + } + + public function setPaymentDate($paymentDate) + { + $this->paymentDate = $paymentDate; + } + + public function getPaymentDate() + { + return $this->paymentDate; + } +} + +class Google_Service_AdSense_Payments extends Google_Collection +{ + protected $collection_key = 'items'; + protected $itemsType = 'Google_Service_AdSense_Payment'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSense_ReportingMetadataEntry extends Google_Collection +{ + protected $collection_key = 'supportedProducts'; + public $compatibleDimensions; + public $compatibleMetrics; + public $id; + public $kind; + public $requiredDimensions; + public $requiredMetrics; + public $supportedProducts; + + public function setCompatibleDimensions($compatibleDimensions) + { + $this->compatibleDimensions = $compatibleDimensions; + } + + public function getCompatibleDimensions() + { + return $this->compatibleDimensions; + } + + public function setCompatibleMetrics($compatibleMetrics) + { + $this->compatibleMetrics = $compatibleMetrics; + } + + public function getCompatibleMetrics() + { + return $this->compatibleMetrics; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequiredDimensions($requiredDimensions) + { + $this->requiredDimensions = $requiredDimensions; + } + + public function getRequiredDimensions() + { + return $this->requiredDimensions; + } + + public function setRequiredMetrics($requiredMetrics) + { + $this->requiredMetrics = $requiredMetrics; + } + + public function getRequiredMetrics() + { + return $this->requiredMetrics; + } + + public function setSupportedProducts($supportedProducts) + { + $this->supportedProducts = $supportedProducts; + } + + public function getSupportedProducts() + { + return $this->supportedProducts; + } +} + +class Google_Service_AdSense_SavedAdStyle extends Google_Model +{ + protected $adStyleType = 'Google_Service_AdSense_AdStyle'; + protected $adStyleDataType = ''; + public $id; + public $kind; + public $name; + + public function setAdStyle(Google_Service_AdSense_AdStyle $adStyle) + { + $this->adStyle = $adStyle; + } + + public function getAdStyle() + { + return $this->adStyle; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_AdSense_SavedAdStyles extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_SavedAdStyle'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSense_SavedReport extends Google_Model +{ + public $id; + public $kind; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_AdSense_SavedReports extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_SavedReport'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSense_UrlChannel extends Google_Model +{ + public $id; + public $kind; + public $urlPattern; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUrlPattern($urlPattern) + { + $this->urlPattern = $urlPattern; + } + + public function getUrlPattern() + { + return $this->urlPattern; + } +} + +class Google_Service_AdSense_UrlChannels extends Google_Collection +{ + protected $collection_key = 'items'; + public $etag; + protected $itemsType = 'Google_Service_AdSense_UrlChannel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/AdSenseHost.php b/vendor/google/apiclient/src/Google/Service/AdSenseHost.php new file mode 100644 index 0000000..4e0edee --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/AdSenseHost.php @@ -0,0 +1,2328 @@ + + * Gives AdSense Hosts access to report generation, ad code generation, and publisher management capabilities. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_AdSenseHost extends Google_Service +{ + /** View and manage your AdSense host data and associated accounts. */ + const ADSENSEHOST = "https://www.googleapis.com/auth/adsensehost"; + + public $accounts; + public $accounts_adclients; + public $accounts_adunits; + public $accounts_reports; + public $adclients; + public $associationsessions; + public $customchannels; + public $reports; + public $urlchannels; + + + /** + * Constructs the internal representation of the AdSenseHost service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'adsensehost/v4.1/'; + $this->version = 'v4.1'; + $this->serviceName = 'adsensehost'; + + $this->accounts = new Google_Service_AdSenseHost_Accounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'filterAdClientId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_adclients = new Google_Service_AdSenseHost_AccountsAdclients_Resource( + $this, + $this->serviceName, + 'adclients', + array( + 'methods' => array( + 'get' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/adclients', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->accounts_adunits = new Google_Service_AdSenseHost_AccountsAdunits_Resource( + $this, + $this->serviceName, + 'adunits', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getAdCode' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'hostCustomChannelId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'insert' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeInactive' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adUnitId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accounts_reports = new Google_Service_AdSenseHost_AccountsReports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'accounts/{accountId}/reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'metric' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'dimension' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->adclients = new Google_Service_AdSenseHost_Adclients_Resource( + $this, + $this->serviceName, + 'adclients', + array( + 'methods' => array( + 'get' => array( + 'path' => 'adclients/{adClientId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'adclients', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->associationsessions = new Google_Service_AdSenseHost_Associationsessions_Resource( + $this, + $this->serviceName, + 'associationsessions', + array( + 'methods' => array( + 'start' => array( + 'path' => 'associationsessions/start', + 'httpMethod' => 'GET', + 'parameters' => array( + 'productCode' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + 'websiteUrl' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'websiteLocale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'userLocale' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'verify' => array( + 'path' => 'associationsessions/verify', + 'httpMethod' => 'GET', + 'parameters' => array( + 'token' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->customchannels = new Google_Service_AdSenseHost_Customchannels_Resource( + $this, + $this->serviceName, + 'customchannels', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'adclients/{adClientId}/customchannels/{customChannelId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'adclients/{adClientId}/customchannels/{customChannelId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'adclients/{adClientId}/customchannels', + 'httpMethod' => 'POST', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'adclients/{adClientId}/customchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'adclients/{adClientId}/customchannels', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customChannelId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'adclients/{adClientId}/customchannels', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->reports = new Google_Service_AdSenseHost_Reports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'metric' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'dimension' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->urlchannels = new Google_Service_AdSenseHost_Urlchannels_Resource( + $this, + $this->serviceName, + 'urlchannels', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'adclients/{adClientId}/urlchannels/{urlChannelId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'urlChannelId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'adclients/{adClientId}/urlchannels', + 'httpMethod' => 'POST', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'adclients/{adClientId}/urlchannels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'adClientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $accounts = $adsensehostService->accounts; + * + */ +class Google_Service_AdSenseHost_Accounts_Resource extends Google_Service_Resource +{ + + /** + * Get information about the selected associated AdSense account. (accounts.get) + * + * @param string $accountId + * Account to get information about. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_Account + */ + public function get($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSenseHost_Account"); + } + /** + * List hosted accounts associated with this AdSense account by ad client id. + * (accounts.listAccounts) + * + * @param string $filterAdClientId + * Ad clients to list accounts for. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_Accounts + */ + public function listAccounts($filterAdClientId, $optParams = array()) + { + $params = array('filterAdClientId' => $filterAdClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSenseHost_Accounts"); + } +} + +/** + * The "adclients" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $adclients = $adsensehostService->adclients; + * + */ +class Google_Service_AdSenseHost_AccountsAdclients_Resource extends Google_Service_Resource +{ + + /** + * Get information about one of the ad clients in the specified publisher's + * AdSense account. (adclients.get) + * + * @param string $accountId + * Account which contains the ad client. + * @param string $adClientId + * Ad client to get. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdClient + */ + public function get($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSenseHost_AdClient"); + } + /** + * List all hosted ad clients in the specified hosted account. + * (adclients.listAccountsAdclients) + * + * @param string $accountId + * Account for which to list ad clients. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through ad clients. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of ad clients to include in the response, used for paging. + * @return Google_Service_AdSenseHost_AdClients + */ + public function listAccountsAdclients($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSenseHost_AdClients"); + } +} +/** + * The "adunits" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $adunits = $adsensehostService->adunits; + * + */ +class Google_Service_AdSenseHost_AccountsAdunits_Resource extends Google_Service_Resource +{ + + /** + * Delete the specified ad unit from the specified publisher AdSense account. + * (adunits.delete) + * + * @param string $accountId + * Account which contains the ad unit. + * @param string $adClientId + * Ad client for which to get ad unit. + * @param string $adUnitId + * Ad unit to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdUnit + */ + public function delete($accountId, $adClientId, $adUnitId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_AdSenseHost_AdUnit"); + } + /** + * Get the specified host ad unit in this AdSense account. (adunits.get) + * + * @param string $accountId + * Account which contains the ad unit. + * @param string $adClientId + * Ad client for which to get ad unit. + * @param string $adUnitId + * Ad unit to get. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdUnit + */ + public function get($accountId, $adClientId, $adUnitId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSenseHost_AdUnit"); + } + /** + * Get ad code for the specified ad unit, attaching the specified host custom + * channels. (adunits.getAdCode) + * + * @param string $accountId + * Account which contains the ad client. + * @param string $adClientId + * Ad client with contains the ad unit. + * @param string $adUnitId + * Ad unit to get the code for. + * @param array $optParams Optional parameters. + * + * @opt_param string hostCustomChannelId + * Host custom channel to attach to the ad code. + * @return Google_Service_AdSenseHost_AdCode + */ + public function getAdCode($accountId, $adClientId, $adUnitId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId); + $params = array_merge($params, $optParams); + return $this->call('getAdCode', array($params), "Google_Service_AdSenseHost_AdCode"); + } + /** + * Insert the supplied ad unit into the specified publisher AdSense account. + * (adunits.insert) + * + * @param string $accountId + * Account which will contain the ad unit. + * @param string $adClientId + * Ad client into which to insert the ad unit. + * @param Google_AdUnit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdUnit + */ + public function insert($accountId, $adClientId, Google_Service_AdSenseHost_AdUnit $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AdSenseHost_AdUnit"); + } + /** + * List all ad units in the specified publisher's AdSense account. + * (adunits.listAccountsAdunits) + * + * @param string $accountId + * Account which contains the ad client. + * @param string $adClientId + * Ad client for which to list ad units. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeInactive + * Whether to include inactive ad units. Default: true. + * @opt_param string pageToken + * A continuation token, used to page through ad units. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of ad units to include in the response, used for paging. + * @return Google_Service_AdSenseHost_AdUnits + */ + public function listAccountsAdunits($accountId, $adClientId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSenseHost_AdUnits"); + } + /** + * Update the supplied ad unit in the specified publisher AdSense account. This + * method supports patch semantics. (adunits.patch) + * + * @param string $accountId + * Account which contains the ad client. + * @param string $adClientId + * Ad client which contains the ad unit. + * @param string $adUnitId + * Ad unit to get. + * @param Google_AdUnit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdUnit + */ + public function patch($accountId, $adClientId, $adUnitId, Google_Service_AdSenseHost_AdUnit $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AdSenseHost_AdUnit"); + } + /** + * Update the supplied ad unit in the specified publisher AdSense account. + * (adunits.update) + * + * @param string $accountId + * Account which contains the ad client. + * @param string $adClientId + * Ad client which contains the ad unit. + * @param Google_AdUnit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdUnit + */ + public function update($accountId, $adClientId, Google_Service_AdSenseHost_AdUnit $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AdSenseHost_AdUnit"); + } +} +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $reports = $adsensehostService->reports; + * + */ +class Google_Service_AdSenseHost_AccountsReports_Resource extends Google_Service_Resource +{ + + /** + * Generate an AdSense report based on the report request sent in the query + * parameters. Returns the result as JSON; to retrieve output in CSV format + * specify "alt=csv" as a query parameter. (reports.generate) + * + * @param string $accountId + * Hosted account upon which to report. + * @param string $startDate + * Start of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param string $endDate + * End of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" + * to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted + * ascending. + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param string metric + * Numeric columns to include in the report. + * @opt_param string maxResults + * The maximum number of rows of report data to return. + * @opt_param string filter + * Filters to be run on the report. + * @opt_param string startIndex + * Index of the first row of report data to return. + * @opt_param string dimension + * Dimensions to base the report on. + * @return Google_Service_AdSenseHost_Report + */ + public function generate($accountId, $startDate, $endDate, $optParams = array()) + { + $params = array('accountId' => $accountId, 'startDate' => $startDate, 'endDate' => $endDate); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdSenseHost_Report"); + } +} + +/** + * The "adclients" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $adclients = $adsensehostService->adclients; + * + */ +class Google_Service_AdSenseHost_Adclients_Resource extends Google_Service_Resource +{ + + /** + * Get information about one of the ad clients in the Host AdSense account. + * (adclients.get) + * + * @param string $adClientId + * Ad client to get. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AdClient + */ + public function get($adClientId, $optParams = array()) + { + $params = array('adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSenseHost_AdClient"); + } + /** + * List all host ad clients in this AdSense account. (adclients.listAdclients) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through ad clients. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of ad clients to include in the response, used for paging. + * @return Google_Service_AdSenseHost_AdClients + */ + public function listAdclients($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSenseHost_AdClients"); + } +} + +/** + * The "associationsessions" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $associationsessions = $adsensehostService->associationsessions; + * + */ +class Google_Service_AdSenseHost_Associationsessions_Resource extends Google_Service_Resource +{ + + /** + * Create an association session for initiating an association with an AdSense + * user. (associationsessions.start) + * + * @param string $productCode + * Products to associate with the user. + * @param string $websiteUrl + * The URL of the user's hosted website. + * @param array $optParams Optional parameters. + * + * @opt_param string websiteLocale + * The locale of the user's hosted website. + * @opt_param string userLocale + * The preferred locale of the user. + * @return Google_Service_AdSenseHost_AssociationSession + */ + public function start($productCode, $websiteUrl, $optParams = array()) + { + $params = array('productCode' => $productCode, 'websiteUrl' => $websiteUrl); + $params = array_merge($params, $optParams); + return $this->call('start', array($params), "Google_Service_AdSenseHost_AssociationSession"); + } + /** + * Verify an association session after the association callback returns from + * AdSense signup. (associationsessions.verify) + * + * @param string $token + * The token returned to the association callback URL. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_AssociationSession + */ + public function verify($token, $optParams = array()) + { + $params = array('token' => $token); + $params = array_merge($params, $optParams); + return $this->call('verify', array($params), "Google_Service_AdSenseHost_AssociationSession"); + } +} + +/** + * The "customchannels" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $customchannels = $adsensehostService->customchannels; + * + */ +class Google_Service_AdSenseHost_Customchannels_Resource extends Google_Service_Resource +{ + + /** + * Delete a specific custom channel from the host AdSense account. + * (customchannels.delete) + * + * @param string $adClientId + * Ad client from which to delete the custom channel. + * @param string $customChannelId + * Custom channel to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_CustomChannel + */ + public function delete($adClientId, $customChannelId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_AdSenseHost_CustomChannel"); + } + /** + * Get a specific custom channel from the host AdSense account. + * (customchannels.get) + * + * @param string $adClientId + * Ad client from which to get the custom channel. + * @param string $customChannelId + * Custom channel to get. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_CustomChannel + */ + public function get($adClientId, $customChannelId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AdSenseHost_CustomChannel"); + } + /** + * Add a new custom channel to the host AdSense account. (customchannels.insert) + * + * @param string $adClientId + * Ad client to which the new custom channel will be added. + * @param Google_CustomChannel $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_CustomChannel + */ + public function insert($adClientId, Google_Service_AdSenseHost_CustomChannel $postBody, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AdSenseHost_CustomChannel"); + } + /** + * List all host custom channels in this AdSense account. + * (customchannels.listCustomchannels) + * + * @param string $adClientId + * Ad client for which to list custom channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through custom channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of custom channels to include in the response, used for paging. + * @return Google_Service_AdSenseHost_CustomChannels + */ + public function listCustomchannels($adClientId, $optParams = array()) + { + $params = array('adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSenseHost_CustomChannels"); + } + /** + * Update a custom channel in the host AdSense account. This method supports + * patch semantics. (customchannels.patch) + * + * @param string $adClientId + * Ad client in which the custom channel will be updated. + * @param string $customChannelId + * Custom channel to get. + * @param Google_CustomChannel $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_CustomChannel + */ + public function patch($adClientId, $customChannelId, Google_Service_AdSenseHost_CustomChannel $postBody, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AdSenseHost_CustomChannel"); + } + /** + * Update a custom channel in the host AdSense account. (customchannels.update) + * + * @param string $adClientId + * Ad client in which the custom channel will be updated. + * @param Google_CustomChannel $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_CustomChannel + */ + public function update($adClientId, Google_Service_AdSenseHost_CustomChannel $postBody, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AdSenseHost_CustomChannel"); + } +} + +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $reports = $adsensehostService->reports; + * + */ +class Google_Service_AdSenseHost_Reports_Resource extends Google_Service_Resource +{ + + /** + * Generate an AdSense report based on the report request sent in the query + * parameters. Returns the result as JSON; to retrieve output in CSV format + * specify "alt=csv" as a query parameter. (reports.generate) + * + * @param string $startDate + * Start of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param string $endDate + * End of the date range to report on in "YYYY-MM-DD" format, inclusive. + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" + * to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted + * ascending. + * @opt_param string locale + * Optional locale to use for translating report output to a local language. Defaults to "en_US" if + * not specified. + * @opt_param string metric + * Numeric columns to include in the report. + * @opt_param string maxResults + * The maximum number of rows of report data to return. + * @opt_param string filter + * Filters to be run on the report. + * @opt_param string startIndex + * Index of the first row of report data to return. + * @opt_param string dimension + * Dimensions to base the report on. + * @return Google_Service_AdSenseHost_Report + */ + public function generate($startDate, $endDate, $optParams = array()) + { + $params = array('startDate' => $startDate, 'endDate' => $endDate); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_AdSenseHost_Report"); + } +} + +/** + * The "urlchannels" collection of methods. + * Typical usage is: + * + * $adsensehostService = new Google_Service_AdSenseHost(...); + * $urlchannels = $adsensehostService->urlchannels; + * + */ +class Google_Service_AdSenseHost_Urlchannels_Resource extends Google_Service_Resource +{ + + /** + * Delete a URL channel from the host AdSense account. (urlchannels.delete) + * + * @param string $adClientId + * Ad client from which to delete the URL channel. + * @param string $urlChannelId + * URL channel to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_UrlChannel + */ + public function delete($adClientId, $urlChannelId, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'urlChannelId' => $urlChannelId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_AdSenseHost_UrlChannel"); + } + /** + * Add a new URL channel to the host AdSense account. (urlchannels.insert) + * + * @param string $adClientId + * Ad client to which the new URL channel will be added. + * @param Google_UrlChannel $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AdSenseHost_UrlChannel + */ + public function insert($adClientId, Google_Service_AdSenseHost_UrlChannel $postBody, $optParams = array()) + { + $params = array('adClientId' => $adClientId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AdSenseHost_UrlChannel"); + } + /** + * List all host URL channels in the host AdSense account. + * (urlchannels.listUrlchannels) + * + * @param string $adClientId + * Ad client for which to list URL channels. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token, used to page through URL channels. To retrieve the next page, set this + * parameter to the value of "nextPageToken" from the previous response. + * @opt_param string maxResults + * The maximum number of URL channels to include in the response, used for paging. + * @return Google_Service_AdSenseHost_UrlChannels + */ + public function listUrlchannels($adClientId, $optParams = array()) + { + $params = array('adClientId' => $adClientId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AdSenseHost_UrlChannels"); + } +} + + + + +class Google_Service_AdSenseHost_Account extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + public $status; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_AdSenseHost_Accounts extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdSenseHost_Account'; + protected $itemsDataType = 'array'; + public $kind; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSenseHost_AdClient extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $arcOptIn; + public $id; + public $kind; + public $productCode; + public $supportsReporting; + + public function setArcOptIn($arcOptIn) + { + $this->arcOptIn = $arcOptIn; + } + + public function getArcOptIn() + { + return $this->arcOptIn; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductCode($productCode) + { + $this->productCode = $productCode; + } + + public function getProductCode() + { + return $this->productCode; + } + + public function setSupportsReporting($supportsReporting) + { + $this->supportsReporting = $supportsReporting; + } + + public function getSupportsReporting() + { + return $this->supportsReporting; + } +} + +class Google_Service_AdSenseHost_AdClients extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdSenseHost_AdClient'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSenseHost_AdCode extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $adCode; + public $kind; + + public function setAdCode($adCode) + { + $this->adCode = $adCode; + } + + public function getAdCode() + { + return $this->adCode; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSenseHost_AdStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $colorsType = 'Google_Service_AdSenseHost_AdStyleColors'; + protected $colorsDataType = ''; + public $corners; + protected $fontType = 'Google_Service_AdSenseHost_AdStyleFont'; + protected $fontDataType = ''; + public $kind; + + public function setColors(Google_Service_AdSenseHost_AdStyleColors $colors) + { + $this->colors = $colors; + } + + public function getColors() + { + return $this->colors; + } + + public function setCorners($corners) + { + $this->corners = $corners; + } + + public function getCorners() + { + return $this->corners; + } + + public function setFont(Google_Service_AdSenseHost_AdStyleFont $font) + { + $this->font = $font; + } + + public function getFont() + { + return $this->font; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AdSenseHost_AdStyleColors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $background; + public $border; + public $text; + public $title; + public $url; + + public function setBackground($background) + { + $this->background = $background; + } + + public function getBackground() + { + return $this->background; + } + + public function setBorder($border) + { + $this->border = $border; + } + + public function getBorder() + { + return $this->border; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_AdSenseHost_AdStyleFont extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $family; + public $size; + + public function setFamily($family) + { + $this->family = $family; + } + + public function getFamily() + { + return $this->family; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_AdSenseHost_AdUnit extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + protected $contentAdsSettingsType = 'Google_Service_AdSenseHost_AdUnitContentAdsSettings'; + protected $contentAdsSettingsDataType = ''; + protected $customStyleType = 'Google_Service_AdSenseHost_AdStyle'; + protected $customStyleDataType = ''; + public $id; + public $kind; + protected $mobileContentAdsSettingsType = 'Google_Service_AdSenseHost_AdUnitMobileContentAdsSettings'; + protected $mobileContentAdsSettingsDataType = ''; + public $name; + public $status; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setContentAdsSettings(Google_Service_AdSenseHost_AdUnitContentAdsSettings $contentAdsSettings) + { + $this->contentAdsSettings = $contentAdsSettings; + } + + public function getContentAdsSettings() + { + return $this->contentAdsSettings; + } + + public function setCustomStyle(Google_Service_AdSenseHost_AdStyle $customStyle) + { + $this->customStyle = $customStyle; + } + + public function getCustomStyle() + { + return $this->customStyle; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMobileContentAdsSettings(Google_Service_AdSenseHost_AdUnitMobileContentAdsSettings $mobileContentAdsSettings) + { + $this->mobileContentAdsSettings = $mobileContentAdsSettings; + } + + public function getMobileContentAdsSettings() + { + return $this->mobileContentAdsSettings; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_AdSenseHost_AdUnitContentAdsSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $backupOptionType = 'Google_Service_AdSenseHost_AdUnitContentAdsSettingsBackupOption'; + protected $backupOptionDataType = ''; + public $size; + public $type; + + public function setBackupOption(Google_Service_AdSenseHost_AdUnitContentAdsSettingsBackupOption $backupOption) + { + $this->backupOption = $backupOption; + } + + public function getBackupOption() + { + return $this->backupOption; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSenseHost_AdUnitContentAdsSettingsBackupOption extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $type; + public $url; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_AdSenseHost_AdUnitMobileContentAdsSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $markupLanguage; + public $scriptingLanguage; + public $size; + public $type; + + public function setMarkupLanguage($markupLanguage) + { + $this->markupLanguage = $markupLanguage; + } + + public function getMarkupLanguage() + { + return $this->markupLanguage; + } + + public function setScriptingLanguage($scriptingLanguage) + { + $this->scriptingLanguage = $scriptingLanguage; + } + + public function getScriptingLanguage() + { + return $this->scriptingLanguage; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSenseHost_AdUnits extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdSenseHost_AdUnit'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSenseHost_AssociationSession extends Google_Collection +{ + protected $collection_key = 'productCodes'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $id; + public $kind; + public $productCodes; + public $redirectUrl; + public $status; + public $userLocale; + public $websiteLocale; + public $websiteUrl; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductCodes($productCodes) + { + $this->productCodes = $productCodes; + } + + public function getProductCodes() + { + return $this->productCodes; + } + + public function setRedirectUrl($redirectUrl) + { + $this->redirectUrl = $redirectUrl; + } + + public function getRedirectUrl() + { + return $this->redirectUrl; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUserLocale($userLocale) + { + $this->userLocale = $userLocale; + } + + public function getUserLocale() + { + return $this->userLocale; + } + + public function setWebsiteLocale($websiteLocale) + { + $this->websiteLocale = $websiteLocale; + } + + public function getWebsiteLocale() + { + return $this->websiteLocale; + } + + public function setWebsiteUrl($websiteUrl) + { + $this->websiteUrl = $websiteUrl; + } + + public function getWebsiteUrl() + { + return $this->websiteUrl; + } +} + +class Google_Service_AdSenseHost_CustomChannel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $id; + public $kind; + public $name; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_AdSenseHost_CustomChannels extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdSenseHost_CustomChannel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_AdSenseHost_Report extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $averages; + protected $headersType = 'Google_Service_AdSenseHost_ReportHeaders'; + protected $headersDataType = 'array'; + public $kind; + public $rows; + public $totalMatchedRows; + public $totals; + public $warnings; + + public function setAverages($averages) + { + $this->averages = $averages; + } + + public function getAverages() + { + return $this->averages; + } + + public function setHeaders($headers) + { + $this->headers = $headers; + } + + public function getHeaders() + { + return $this->headers; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setTotalMatchedRows($totalMatchedRows) + { + $this->totalMatchedRows = $totalMatchedRows; + } + + public function getTotalMatchedRows() + { + return $this->totalMatchedRows; + } + + public function setTotals($totals) + { + $this->totals = $totals; + } + + public function getTotals() + { + return $this->totals; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_AdSenseHost_ReportHeaders extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currency; + public $name; + public $type; + + public function setCurrency($currency) + { + $this->currency = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_AdSenseHost_UrlChannel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $urlPattern; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUrlPattern($urlPattern) + { + $this->urlPattern = $urlPattern; + } + + public function getUrlPattern() + { + return $this->urlPattern; + } +} + +class Google_Service_AdSenseHost_UrlChannels extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_AdSenseHost_UrlChannel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Admin.php b/vendor/google/apiclient/src/Google/Service/Admin.php new file mode 100644 index 0000000..973a50e --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Admin.php @@ -0,0 +1,210 @@ + + * Email Migration API lets you migrate emails of users to Google backends. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Admin extends Google_Service +{ + /** Manage email messages of users on your domain. */ + const EMAIL_MIGRATION = "https://www.googleapis.com/auth/email.migration"; + + public $mail; + + + /** + * Constructs the internal representation of the Admin service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'email/v2/users/'; + $this->version = 'email_migration_v2'; + $this->serviceName = 'admin'; + + $this->mail = new Google_Service_Admin_Mail_Resource( + $this, + $this->serviceName, + 'mail', + array( + 'methods' => array( + 'insert' => array( + 'path' => '{userKey}/mail', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "mail" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Admin(...); + * $mail = $adminService->mail; + * + */ +class Google_Service_Admin_Mail_Resource extends Google_Service_Resource +{ + + /** + * Insert Mail into Google's Gmail backends (mail.insert) + * + * @param string $userKey + * The email or immutable id of the user + * @param Google_MailItem $postBody + * @param array $optParams Optional parameters. + */ + public function insert($userKey, Google_Service_Admin_MailItem $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params)); + } +} + + + + +class Google_Service_Admin_MailItem extends Google_Collection +{ + protected $collection_key = 'labels'; + protected $internal_gapi_mappings = array( + ); + public $isDeleted; + public $isDraft; + public $isInbox; + public $isSent; + public $isStarred; + public $isTrash; + public $isUnread; + public $kind; + public $labels; + + public function setIsDeleted($isDeleted) + { + $this->isDeleted = $isDeleted; + } + + public function getIsDeleted() + { + return $this->isDeleted; + } + + public function setIsDraft($isDraft) + { + $this->isDraft = $isDraft; + } + + public function getIsDraft() + { + return $this->isDraft; + } + + public function setIsInbox($isInbox) + { + $this->isInbox = $isInbox; + } + + public function getIsInbox() + { + return $this->isInbox; + } + + public function setIsSent($isSent) + { + $this->isSent = $isSent; + } + + public function getIsSent() + { + return $this->isSent; + } + + public function setIsStarred($isStarred) + { + $this->isStarred = $isStarred; + } + + public function getIsStarred() + { + return $this->isStarred; + } + + public function setIsTrash($isTrash) + { + $this->isTrash = $isTrash; + } + + public function getIsTrash() + { + return $this->isTrash; + } + + public function setIsUnread($isUnread) + { + $this->isUnread = $isUnread; + } + + public function getIsUnread() + { + return $this->isUnread; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Analytics.php b/vendor/google/apiclient/src/Google/Service/Analytics.php new file mode 100644 index 0000000..d5c8bf7 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Analytics.php @@ -0,0 +1,10477 @@ + + * View and manage your Google Analytics data + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Analytics extends Google_Service +{ + /** View and manage your Google Analytics data. */ + const ANALYTICS = "https://www.googleapis.com/auth/analytics"; + /** Edit Google Analytics management entities. */ + const ANALYTICS_EDIT = "https://www.googleapis.com/auth/analytics.edit"; + /** Manage Google Analytics Account users by email address. */ + const ANALYTICS_MANAGE_USERS = "https://www.googleapis.com/auth/analytics.manage.users"; + /** Create a new Google Analytics account along with its default property and view. */ + const ANALYTICS_PROVISION = "https://www.googleapis.com/auth/analytics.provision"; + /** View your Google Analytics data. */ + const ANALYTICS_READONLY = "https://www.googleapis.com/auth/analytics.readonly"; + + public $data_ga; + public $data_mcf; + public $data_realtime; + public $management_accountSummaries; + public $management_accountUserLinks; + public $management_accounts; + public $management_customDataSources; + public $management_dailyUploads; + public $management_experiments; + public $management_filters; + public $management_goals; + public $management_profileFilterLinks; + public $management_profileUserLinks; + public $management_profiles; + public $management_segments; + public $management_unsampledReports; + public $management_uploads; + public $management_webPropertyAdWordsLinks; + public $management_webproperties; + public $management_webpropertyUserLinks; + public $metadata_columns; + public $provisioning; + + + /** + * Constructs the internal representation of the Analytics service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'analytics/v3/'; + $this->version = 'v3'; + $this->serviceName = 'analytics'; + + $this->data_ga = new Google_Service_Analytics_DataGa_Resource( + $this, + $this->serviceName, + 'ga', + array( + 'methods' => array( + 'get' => array( + 'path' => 'data/ga', + 'httpMethod' => 'GET', + 'parameters' => array( + 'ids' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'start-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'end-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'metrics' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'dimensions' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'segment' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'samplingLevel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'output' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->data_mcf = new Google_Service_Analytics_DataMcf_Resource( + $this, + $this->serviceName, + 'mcf', + array( + 'methods' => array( + 'get' => array( + 'path' => 'data/mcf', + 'httpMethod' => 'GET', + 'parameters' => array( + 'ids' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'start-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'end-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'metrics' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'dimensions' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'samplingLevel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->data_realtime = new Google_Service_Analytics_DataRealtime_Resource( + $this, + $this->serviceName, + 'realtime', + array( + 'methods' => array( + 'get' => array( + 'path' => 'data/realtime', + 'httpMethod' => 'GET', + 'parameters' => array( + 'ids' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'metrics' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'dimensions' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->management_accountSummaries = new Google_Service_Analytics_ManagementAccountSummaries_Resource( + $this, + $this->serviceName, + 'accountSummaries', + array( + 'methods' => array( + 'list' => array( + 'path' => 'management/accountSummaries', + 'httpMethod' => 'GET', + 'parameters' => array( + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->management_accountUserLinks = new Google_Service_Analytics_ManagementAccountUserLinks_Resource( + $this, + $this->serviceName, + 'accountUserLinks', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/entityUserLinks/{linkId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/entityUserLinks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/entityUserLinks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/entityUserLinks/{linkId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_accounts = new Google_Service_Analytics_ManagementAccounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'list' => array( + 'path' => 'management/accounts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->management_customDataSources = new Google_Service_Analytics_ManagementCustomDataSources_Resource( + $this, + $this->serviceName, + 'customDataSources', + array( + 'methods' => array( + 'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->management_dailyUploads = new Google_Service_Analytics_ManagementDailyUploads_Resource( + $this, + $this->serviceName, + 'dailyUploads', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'date' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'start-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'end-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'upload' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'date' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'appendNumber' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'reset' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->management_experiments = new Google_Service_Analytics_ManagementExperiments_Resource( + $this, + $this->serviceName, + 'experiments', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'experimentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'experimentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'experimentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'experimentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_filters = new Google_Service_Analytics_ManagementFilters_Resource( + $this, + $this->serviceName, + 'filters', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/filters/{filterId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filterId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'management/accounts/{accountId}/filters/{filterId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filterId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/filters', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/filters', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/filters/{filterId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filterId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/filters/{filterId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filterId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_goals = new Google_Service_Analytics_ManagementGoals_Resource( + $this, + $this->serviceName, + 'goals', + array( + 'methods' => array( + 'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'goalId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'goalId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'goalId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_profileFilterLinks = new Google_Service_Analytics_ManagementProfileFilterLinks_Resource( + $this, + $this->serviceName, + 'profileFilterLinks', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_profileUserLinks = new Google_Service_Analytics_ManagementProfileUserLinks_Resource( + $this, + $this->serviceName, + 'profileUserLinks', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_profiles = new Google_Service_Analytics_ManagementProfiles_Resource( + $this, + $this->serviceName, + 'profiles', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_segments = new Google_Service_Analytics_ManagementSegments_Resource( + $this, + $this->serviceName, + 'segments', + array( + 'methods' => array( + 'list' => array( + 'path' => 'management/segments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->management_unsampledReports = new Google_Service_Analytics_ManagementUnsampledReports_Resource( + $this, + $this->serviceName, + 'unsampledReports', + array( + 'methods' => array( + 'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports/{unsampledReportId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'unsampledReportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->management_uploads = new Google_Service_Analytics_ManagementUploads_Resource( + $this, + $this->serviceName, + 'uploads', + array( + 'methods' => array( + 'deleteUploadData' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/deleteUploadData', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads/{uploadId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'uploadId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'migrateDataImport' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/migrateDataImport', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'uploadData' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customDataSourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_webPropertyAdWordsLinks = new Google_Service_Analytics_ManagementWebPropertyAdWordsLinks_Resource( + $this, + $this->serviceName, + 'webPropertyAdWordsLinks', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyAdWordsLinkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyAdWordsLinkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyAdWordsLinkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyAdWordsLinkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_webproperties = new Google_Service_Analytics_ManagementWebproperties_Resource( + $this, + $this->serviceName, + 'webproperties', + array( + 'methods' => array( + 'get' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->management_webpropertyUserLinks = new Google_Service_Analytics_ManagementWebpropertyUserLinks_Resource( + $this, + $this->serviceName, + 'webpropertyUserLinks', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'update' => array( + 'path' => 'management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'webPropertyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'linkId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->metadata_columns = new Google_Service_Analytics_MetadataColumns_Resource( + $this, + $this->serviceName, + 'columns', + array( + 'methods' => array( + 'list' => array( + 'path' => 'metadata/{reportType}/columns', + 'httpMethod' => 'GET', + 'parameters' => array( + 'reportType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->provisioning = new Google_Service_Analytics_Provisioning_Resource( + $this, + $this->serviceName, + 'provisioning', + array( + 'methods' => array( + 'createAccountTicket' => array( + 'path' => 'provisioning/createAccountTicket', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "data" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $data = $analyticsService->data; + * + */ +class Google_Service_Analytics_Data_Resource extends Google_Service_Resource +{ + +} + +/** + * The "ga" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $ga = $analyticsService->ga; + * + */ +class Google_Service_Analytics_DataGa_Resource extends Google_Service_Resource +{ + + /** + * Returns Analytics data for a view (profile). (ga.get) + * + * @param string $ids + * Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is + * the Analytics view (profile) ID. + * @param string $startDate + * Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM- + * DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. + * @param string $endDate + * End date for fetching Analytics data. Request can should specify an end date formatted as YYYY- + * MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is + * yesterday. + * @param string $metrics + * A comma-separated list of Analytics metrics. E.g., 'ga:sessions,ga:pageviews'. At least one + * metric must be specified. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of entries to include in this feed. + * @opt_param string sort + * A comma-separated list of dimensions or metrics that determine the sort order for Analytics + * data. + * @opt_param string dimensions + * A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @opt_param string segment + * An Analytics segment to be applied to data. + * @opt_param string samplingLevel + * The desired sampling level. + * @opt_param string filters + * A comma-separated list of dimension or metric filters to be applied to Analytics data. + * @opt_param string output + * The selected format for the response. Default format is JSON. + * @return Google_Service_Analytics_GaData + */ + public function get($ids, $startDate, $endDate, $metrics, $optParams = array()) + { + $params = array('ids' => $ids, 'start-date' => $startDate, 'end-date' => $endDate, 'metrics' => $metrics); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_GaData"); + } +} +/** + * The "mcf" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $mcf = $analyticsService->mcf; + * + */ +class Google_Service_Analytics_DataMcf_Resource extends Google_Service_Resource +{ + + /** + * Returns Analytics Multi-Channel Funnels data for a view (profile). (mcf.get) + * + * @param string $ids + * Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is + * the Analytics view (profile) ID. + * @param string $startDate + * Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM- + * DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. + * @param string $endDate + * End date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, + * or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. + * @param string $metrics + * A comma-separated list of Multi-Channel Funnels metrics. E.g., + * 'mcf:totalConversions,mcf:totalConversionValue'. At least one metric must be specified. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of entries to include in this feed. + * @opt_param string sort + * A comma-separated list of dimensions or metrics that determine the sort order for the Analytics + * data. + * @opt_param string dimensions + * A comma-separated list of Multi-Channel Funnels dimensions. E.g., 'mcf:source,mcf:medium'. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @opt_param string samplingLevel + * The desired sampling level. + * @opt_param string filters + * A comma-separated list of dimension or metric filters to be applied to the Analytics data. + * @return Google_Service_Analytics_McfData + */ + public function get($ids, $startDate, $endDate, $metrics, $optParams = array()) + { + $params = array('ids' => $ids, 'start-date' => $startDate, 'end-date' => $endDate, 'metrics' => $metrics); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_McfData"); + } +} +/** + * The "realtime" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $realtime = $analyticsService->realtime; + * + */ +class Google_Service_Analytics_DataRealtime_Resource extends Google_Service_Resource +{ + + /** + * Returns real time data for a view (profile). (realtime.get) + * + * @param string $ids + * Unique table ID for retrieving real time data. Table ID is of the form ga:XXXX, where XXXX is + * the Analytics view (profile) ID. + * @param string $metrics + * A comma-separated list of real time metrics. E.g., 'rt:activeUsers'. At least one metric must be + * specified. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of entries to include in this feed. + * @opt_param string sort + * A comma-separated list of dimensions or metrics that determine the sort order for real time + * data. + * @opt_param string dimensions + * A comma-separated list of real time dimensions. E.g., 'rt:medium,rt:city'. + * @opt_param string filters + * A comma-separated list of dimension or metric filters to be applied to real time data. + * @return Google_Service_Analytics_RealtimeData + */ + public function get($ids, $metrics, $optParams = array()) + { + $params = array('ids' => $ids, 'metrics' => $metrics); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_RealtimeData"); + } +} + +/** + * The "management" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $management = $analyticsService->management; + * + */ +class Google_Service_Analytics_Management_Resource extends Google_Service_Resource +{ + +} + +/** + * The "accountSummaries" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $accountSummaries = $analyticsService->accountSummaries; + * + */ +class Google_Service_Analytics_ManagementAccountSummaries_Resource extends Google_Service_Resource +{ + + /** + * Lists account summaries (lightweight tree comprised of + * accounts/properties/profiles) to which the user has access. + * (accountSummaries.listManagementAccountSummaries) + * + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of filters to include in this response. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_AccountSummaries + */ + public function listManagementAccountSummaries($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_AccountSummaries"); + } +} +/** + * The "accountUserLinks" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $accountUserLinks = $analyticsService->accountUserLinks; + * + */ +class Google_Service_Analytics_ManagementAccountUserLinks_Resource extends Google_Service_Resource +{ + + /** + * Removes a user from the given account. (accountUserLinks.delete) + * + * @param string $accountId + * Account ID to delete the user link for. + * @param string $linkId + * Link ID to delete the user link for. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $linkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'linkId' => $linkId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a new user to the given account. (accountUserLinks.insert) + * + * @param string $accountId + * Account ID to create the user link for. + * @param Google_EntityUserLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityUserLink + */ + public function insert($accountId, Google_Service_Analytics_EntityUserLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_EntityUserLink"); + } + /** + * Lists account-user links for a given account. + * (accountUserLinks.listManagementAccountUserLinks) + * + * @param string $accountId + * Account ID to retrieve the user links for. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of account-user links to include in this response. + * @opt_param int start-index + * An index of the first account-user link to retrieve. Use this parameter as a pagination + * mechanism along with the max-results parameter. + * @return Google_Service_Analytics_EntityUserLinks + */ + public function listManagementAccountUserLinks($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_EntityUserLinks"); + } + /** + * Updates permissions for an existing user on the given account. + * (accountUserLinks.update) + * + * @param string $accountId + * Account ID to update the account-user link for. + * @param string $linkId + * Link ID to update the account-user link for. + * @param Google_EntityUserLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityUserLink + */ + public function update($accountId, $linkId, Google_Service_Analytics_EntityUserLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'linkId' => $linkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_EntityUserLink"); + } +} +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $accounts = $analyticsService->accounts; + * + */ +class Google_Service_Analytics_ManagementAccounts_Resource extends Google_Service_Resource +{ + + /** + * Lists all accounts to which the user has access. + * (accounts.listManagementAccounts) + * + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of accounts to include in this response. + * @opt_param int start-index + * An index of the first account to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_Accounts + */ + public function listManagementAccounts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Accounts"); + } +} +/** + * The "customDataSources" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $customDataSources = $analyticsService->customDataSources; + * + */ +class Google_Service_Analytics_ManagementCustomDataSources_Resource extends Google_Service_Resource +{ + + /** + * List custom data sources to which the user has access. + * (customDataSources.listManagementCustomDataSources) + * + * @param string $accountId + * Account Id for the custom data sources to retrieve. + * @param string $webPropertyId + * Web property Id for the custom data sources to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of custom data sources to include in this response. + * @opt_param int start-index + * A 1-based index of the first custom data source to retrieve. Use this parameter as a pagination + * mechanism along with the max-results parameter. + * @return Google_Service_Analytics_CustomDataSources + */ + public function listManagementCustomDataSources($accountId, $webPropertyId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_CustomDataSources"); + } +} +/** + * The "dailyUploads" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $dailyUploads = $analyticsService->dailyUploads; + * + */ +class Google_Service_Analytics_ManagementDailyUploads_Resource extends Google_Service_Resource +{ + + /** + * Delete uploaded data for the given date. (dailyUploads.delete) + * + * @param string $accountId + * Account Id associated with daily upload delete. + * @param string $webPropertyId + * Web property Id associated with daily upload delete. + * @param string $customDataSourceId + * Custom data source Id associated with daily upload delete. + * @param string $date + * Date for which data is to be deleted. Date should be formatted as YYYY-MM-DD. + * @param string $type + * Type of data for this delete. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $customDataSourceId, $date, $type, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'date' => $date, 'type' => $type); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * List daily uploads to which the user has access. + * (dailyUploads.listManagementDailyUploads) + * + * @param string $accountId + * Account Id for the daily uploads to retrieve. + * @param string $webPropertyId + * Web property Id for the daily uploads to retrieve. + * @param string $customDataSourceId + * Custom data source Id for daily uploads to retrieve. + * @param string $startDate + * Start date of the form YYYY-MM-DD. + * @param string $endDate + * End date of the form YYYY-MM-DD. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of custom data sources to include in this response. + * @opt_param int start-index + * A 1-based index of the first daily upload to retrieve. Use this parameter as a pagination + * mechanism along with the max-results parameter. + * @return Google_Service_Analytics_DailyUploads + */ + public function listManagementDailyUploads($accountId, $webPropertyId, $customDataSourceId, $startDate, $endDate, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'start-date' => $startDate, 'end-date' => $endDate); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_DailyUploads"); + } + /** + * Update/Overwrite data for a custom data source. (dailyUploads.upload) + * + * @param string $accountId + * Account Id associated with daily upload. + * @param string $webPropertyId + * Web property Id associated with daily upload. + * @param string $customDataSourceId + * Custom data source Id to which the data being uploaded belongs. + * @param string $date + * Date for which data is uploaded. Date should be formatted as YYYY-MM-DD. + * @param int $appendNumber + * Append number for this upload indexed from 1. + * @param string $type + * Type of data for this upload. + * @param array $optParams Optional parameters. + * + * @opt_param bool reset + * Reset/Overwrite all previous appends for this date and start over with this file as the first + * upload. + * @return Google_Service_Analytics_DailyUploadAppend + */ + public function upload($accountId, $webPropertyId, $customDataSourceId, $date, $appendNumber, $type, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'date' => $date, 'appendNumber' => $appendNumber, 'type' => $type); + $params = array_merge($params, $optParams); + return $this->call('upload', array($params), "Google_Service_Analytics_DailyUploadAppend"); + } +} +/** + * The "experiments" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $experiments = $analyticsService->experiments; + * + */ +class Google_Service_Analytics_ManagementExperiments_Resource extends Google_Service_Resource +{ + + /** + * Delete an experiment. (experiments.delete) + * + * @param string $accountId + * Account ID to which the experiment belongs + * @param string $webPropertyId + * Web property ID to which the experiment belongs + * @param string $profileId + * View (Profile) ID to which the experiment belongs + * @param string $experimentId + * ID of the experiment to delete + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $profileId, $experimentId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns an experiment to which the user has access. (experiments.get) + * + * @param string $accountId + * Account ID to retrieve the experiment for. + * @param string $webPropertyId + * Web property ID to retrieve the experiment for. + * @param string $profileId + * View (Profile) ID to retrieve the experiment for. + * @param string $experimentId + * Experiment ID to retrieve the experiment for. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Experiment + */ + public function get($accountId, $webPropertyId, $profileId, $experimentId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_Experiment"); + } + /** + * Create a new experiment. (experiments.insert) + * + * @param string $accountId + * Account ID to create the experiment for. + * @param string $webPropertyId + * Web property ID to create the experiment for. + * @param string $profileId + * View (Profile) ID to create the experiment for. + * @param Google_Experiment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Experiment + */ + public function insert($accountId, $webPropertyId, $profileId, Google_Service_Analytics_Experiment $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_Experiment"); + } + /** + * Lists experiments to which the user has access. + * (experiments.listManagementExperiments) + * + * @param string $accountId + * Account ID to retrieve experiments for. + * @param string $webPropertyId + * Web property ID to retrieve experiments for. + * @param string $profileId + * View (Profile) ID to retrieve experiments for. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of experiments to include in this response. + * @opt_param int start-index + * An index of the first experiment to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_Experiments + */ + public function listManagementExperiments($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Experiments"); + } + /** + * Update an existing experiment. This method supports patch semantics. + * (experiments.patch) + * + * @param string $accountId + * Account ID of the experiment to update. + * @param string $webPropertyId + * Web property ID of the experiment to update. + * @param string $profileId + * View (Profile) ID of the experiment to update. + * @param string $experimentId + * Experiment ID of the experiment to update. + * @param Google_Experiment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Experiment + */ + public function patch($accountId, $webPropertyId, $profileId, $experimentId, Google_Service_Analytics_Experiment $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_Experiment"); + } + /** + * Update an existing experiment. (experiments.update) + * + * @param string $accountId + * Account ID of the experiment to update. + * @param string $webPropertyId + * Web property ID of the experiment to update. + * @param string $profileId + * View (Profile) ID of the experiment to update. + * @param string $experimentId + * Experiment ID of the experiment to update. + * @param Google_Experiment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Experiment + */ + public function update($accountId, $webPropertyId, $profileId, $experimentId, Google_Service_Analytics_Experiment $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_Experiment"); + } +} +/** + * The "filters" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $filters = $analyticsService->filters; + * + */ +class Google_Service_Analytics_ManagementFilters_Resource extends Google_Service_Resource +{ + + /** + * Delete a filter. (filters.delete) + * + * @param string $accountId + * Account ID to delete the filter for. + * @param string $filterId + * ID of the filter to be deleted. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Filter + */ + public function delete($accountId, $filterId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'filterId' => $filterId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Analytics_Filter"); + } + /** + * Returns a filters to which the user has access. (filters.get) + * + * @param string $accountId + * Account ID to retrieve filters for. + * @param string $filterId + * Filter ID to retrieve filters for. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Filter + */ + public function get($accountId, $filterId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'filterId' => $filterId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_Filter"); + } + /** + * Create a new filter. (filters.insert) + * + * @param string $accountId + * Account ID to create filter for. + * @param Google_Filter $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Filter + */ + public function insert($accountId, Google_Service_Analytics_Filter $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_Filter"); + } + /** + * Lists all filters for an account (filters.listManagementFilters) + * + * @param string $accountId + * Account ID to retrieve filters for. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of filters to include in this response. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_Filters + */ + public function listManagementFilters($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Filters"); + } + /** + * Updates an existing filter. This method supports patch semantics. + * (filters.patch) + * + * @param string $accountId + * Account ID to which the filter belongs. + * @param string $filterId + * ID of the filter to be updated. + * @param Google_Filter $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Filter + */ + public function patch($accountId, $filterId, Google_Service_Analytics_Filter $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'filterId' => $filterId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_Filter"); + } + /** + * Updates an existing filter. (filters.update) + * + * @param string $accountId + * Account ID to which the filter belongs. + * @param string $filterId + * ID of the filter to be updated. + * @param Google_Filter $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Filter + */ + public function update($accountId, $filterId, Google_Service_Analytics_Filter $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'filterId' => $filterId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_Filter"); + } +} +/** + * The "goals" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $goals = $analyticsService->goals; + * + */ +class Google_Service_Analytics_ManagementGoals_Resource extends Google_Service_Resource +{ + + /** + * Gets a goal to which the user has access. (goals.get) + * + * @param string $accountId + * Account ID to retrieve the goal for. + * @param string $webPropertyId + * Web property ID to retrieve the goal for. + * @param string $profileId + * View (Profile) ID to retrieve the goal for. + * @param string $goalId + * Goal ID to retrieve the goal for. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Goal + */ + public function get($accountId, $webPropertyId, $profileId, $goalId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'goalId' => $goalId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_Goal"); + } + /** + * Create a new goal. (goals.insert) + * + * @param string $accountId + * Account ID to create the goal for. + * @param string $webPropertyId + * Web property ID to create the goal for. + * @param string $profileId + * View (Profile) ID to create the goal for. + * @param Google_Goal $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Goal + */ + public function insert($accountId, $webPropertyId, $profileId, Google_Service_Analytics_Goal $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_Goal"); + } + /** + * Lists goals to which the user has access. (goals.listManagementGoals) + * + * @param string $accountId + * Account ID to retrieve goals for. Can either be a specific account ID or '~all', which refers to + * all the accounts that user has access to. + * @param string $webPropertyId + * Web property ID to retrieve goals for. Can either be a specific web property ID or '~all', which + * refers to all the web properties that user has access to. + * @param string $profileId + * View (Profile) ID to retrieve goals for. Can either be a specific view (profile) ID or '~all', + * which refers to all the views (profiles) that user has access to. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of goals to include in this response. + * @opt_param int start-index + * An index of the first goal to retrieve. Use this parameter as a pagination mechanism along with + * the max-results parameter. + * @return Google_Service_Analytics_Goals + */ + public function listManagementGoals($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Goals"); + } + /** + * Updates an existing view (profile). This method supports patch semantics. + * (goals.patch) + * + * @param string $accountId + * Account ID to update the goal. + * @param string $webPropertyId + * Web property ID to update the goal. + * @param string $profileId + * View (Profile) ID to update the goal. + * @param string $goalId + * Index of the goal to be updated. + * @param Google_Goal $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Goal + */ + public function patch($accountId, $webPropertyId, $profileId, $goalId, Google_Service_Analytics_Goal $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'goalId' => $goalId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_Goal"); + } + /** + * Updates an existing view (profile). (goals.update) + * + * @param string $accountId + * Account ID to update the goal. + * @param string $webPropertyId + * Web property ID to update the goal. + * @param string $profileId + * View (Profile) ID to update the goal. + * @param string $goalId + * Index of the goal to be updated. + * @param Google_Goal $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Goal + */ + public function update($accountId, $webPropertyId, $profileId, $goalId, Google_Service_Analytics_Goal $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'goalId' => $goalId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_Goal"); + } +} +/** + * The "profileFilterLinks" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $profileFilterLinks = $analyticsService->profileFilterLinks; + * + */ +class Google_Service_Analytics_ManagementProfileFilterLinks_Resource extends Google_Service_Resource +{ + + /** + * Delete a profile filter link. (profileFilterLinks.delete) + * + * @param string $accountId + * Account ID to which the profile filter link belongs. + * @param string $webPropertyId + * Web property Id to which the profile filter link belongs. + * @param string $profileId + * Profile ID to which the filter link belongs. + * @param string $linkId + * ID of the profile filter link to delete. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $profileId, $linkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns a single profile filter link. (profileFilterLinks.get) + * + * @param string $accountId + * Account ID to retrieve profile filter link for. + * @param string $webPropertyId + * Web property Id to retrieve profile filter link for. + * @param string $profileId + * Profile ID to retrieve filter link for. + * @param string $linkId + * ID of the profile filter link. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_ProfileFilterLink + */ + public function get($accountId, $webPropertyId, $profileId, $linkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_ProfileFilterLink"); + } + /** + * Create a new profile filter link. (profileFilterLinks.insert) + * + * @param string $accountId + * Account ID to create profile filter link for. + * @param string $webPropertyId + * Web property Id to create profile filter link for. + * @param string $profileId + * Profile ID to create filter link for. + * @param Google_ProfileFilterLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_ProfileFilterLink + */ + public function insert($accountId, $webPropertyId, $profileId, Google_Service_Analytics_ProfileFilterLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_ProfileFilterLink"); + } + /** + * Lists all profile filter links for a profile. + * (profileFilterLinks.listManagementProfileFilterLinks) + * + * @param string $accountId + * Account ID to retrieve profile filter links for. + * @param string $webPropertyId + * Web property Id for profile filter links for. Can either be a specific web property ID or + * '~all', which refers to all the web properties that user has access to. + * @param string $profileId + * Profile ID to retrieve filter links for. Can either be a specific profile ID or '~all', which + * refers to all the profiles that user has access to. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of profile filter links to include in this response. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_ProfileFilterLinks + */ + public function listManagementProfileFilterLinks($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_ProfileFilterLinks"); + } + /** + * Update an existing profile filter link. This method supports patch semantics. + * (profileFilterLinks.patch) + * + * @param string $accountId + * Account ID to which profile filter link belongs. + * @param string $webPropertyId + * Web property Id to which profile filter link belongs + * @param string $profileId + * Profile ID to which filter link belongs + * @param string $linkId + * ID of the profile filter link to be updated. + * @param Google_ProfileFilterLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_ProfileFilterLink + */ + public function patch($accountId, $webPropertyId, $profileId, $linkId, Google_Service_Analytics_ProfileFilterLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_ProfileFilterLink"); + } + /** + * Update an existing profile filter link. (profileFilterLinks.update) + * + * @param string $accountId + * Account ID to which profile filter link belongs. + * @param string $webPropertyId + * Web property Id to which profile filter link belongs + * @param string $profileId + * Profile ID to which filter link belongs + * @param string $linkId + * ID of the profile filter link to be updated. + * @param Google_ProfileFilterLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_ProfileFilterLink + */ + public function update($accountId, $webPropertyId, $profileId, $linkId, Google_Service_Analytics_ProfileFilterLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_ProfileFilterLink"); + } +} +/** + * The "profileUserLinks" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $profileUserLinks = $analyticsService->profileUserLinks; + * + */ +class Google_Service_Analytics_ManagementProfileUserLinks_Resource extends Google_Service_Resource +{ + + /** + * Removes a user from the given view (profile). (profileUserLinks.delete) + * + * @param string $accountId + * Account ID to delete the user link for. + * @param string $webPropertyId + * Web Property ID to delete the user link for. + * @param string $profileId + * View (Profile) ID to delete the user link for. + * @param string $linkId + * Link ID to delete the user link for. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $profileId, $linkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a new user to the given view (profile). (profileUserLinks.insert) + * + * @param string $accountId + * Account ID to create the user link for. + * @param string $webPropertyId + * Web Property ID to create the user link for. + * @param string $profileId + * View (Profile) ID to create the user link for. + * @param Google_EntityUserLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityUserLink + */ + public function insert($accountId, $webPropertyId, $profileId, Google_Service_Analytics_EntityUserLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_EntityUserLink"); + } + /** + * Lists profile-user links for a given view (profile). + * (profileUserLinks.listManagementProfileUserLinks) + * + * @param string $accountId + * Account ID which the given view (profile) belongs to. + * @param string $webPropertyId + * Web Property ID which the given view (profile) belongs to. Can either be a specific web property + * ID or '~all', which refers to all the web properties that user has access to. + * @param string $profileId + * View (Profile) ID to retrieve the profile-user links for. Can either be a specific profile ID or + * '~all', which refers to all the profiles that user has access to. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of profile-user links to include in this response. + * @opt_param int start-index + * An index of the first profile-user link to retrieve. Use this parameter as a pagination + * mechanism along with the max-results parameter. + * @return Google_Service_Analytics_EntityUserLinks + */ + public function listManagementProfileUserLinks($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_EntityUserLinks"); + } + /** + * Updates permissions for an existing user on the given view (profile). + * (profileUserLinks.update) + * + * @param string $accountId + * Account ID to update the user link for. + * @param string $webPropertyId + * Web Property ID to update the user link for. + * @param string $profileId + * View (Profile ID) to update the user link for. + * @param string $linkId + * Link ID to update the user link for. + * @param Google_EntityUserLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityUserLink + */ + public function update($accountId, $webPropertyId, $profileId, $linkId, Google_Service_Analytics_EntityUserLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_EntityUserLink"); + } +} +/** + * The "profiles" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $profiles = $analyticsService->profiles; + * + */ +class Google_Service_Analytics_ManagementProfiles_Resource extends Google_Service_Resource +{ + + /** + * Deletes a view (profile). (profiles.delete) + * + * @param string $accountId + * Account ID to delete the view (profile) for. + * @param string $webPropertyId + * Web property ID to delete the view (profile) for. + * @param string $profileId + * ID of the view (profile) to be deleted. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a view (profile) to which the user has access. (profiles.get) + * + * @param string $accountId + * Account ID to retrieve the goal for. + * @param string $webPropertyId + * Web property ID to retrieve the goal for. + * @param string $profileId + * View (Profile) ID to retrieve the goal for. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Profile + */ + public function get($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_Profile"); + } + /** + * Create a new view (profile). (profiles.insert) + * + * @param string $accountId + * Account ID to create the view (profile) for. + * @param string $webPropertyId + * Web property ID to create the view (profile) for. + * @param Google_Profile $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Profile + */ + public function insert($accountId, $webPropertyId, Google_Service_Analytics_Profile $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_Profile"); + } + /** + * Lists views (profiles) to which the user has access. + * (profiles.listManagementProfiles) + * + * @param string $accountId + * Account ID for the view (profiles) to retrieve. Can either be a specific account ID or '~all', + * which refers to all the accounts to which the user has access. + * @param string $webPropertyId + * Web property ID for the views (profiles) to retrieve. Can either be a specific web property ID + * or '~all', which refers to all the web properties to which the user has access. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of views (profiles) to include in this response. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_Profiles + */ + public function listManagementProfiles($accountId, $webPropertyId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Profiles"); + } + /** + * Updates an existing view (profile). This method supports patch semantics. + * (profiles.patch) + * + * @param string $accountId + * Account ID to which the view (profile) belongs + * @param string $webPropertyId + * Web property ID to which the view (profile) belongs + * @param string $profileId + * ID of the view (profile) to be updated. + * @param Google_Profile $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Profile + */ + public function patch($accountId, $webPropertyId, $profileId, Google_Service_Analytics_Profile $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_Profile"); + } + /** + * Updates an existing view (profile). (profiles.update) + * + * @param string $accountId + * Account ID to which the view (profile) belongs + * @param string $webPropertyId + * Web property ID to which the view (profile) belongs + * @param string $profileId + * ID of the view (profile) to be updated. + * @param Google_Profile $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Profile + */ + public function update($accountId, $webPropertyId, $profileId, Google_Service_Analytics_Profile $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_Profile"); + } +} +/** + * The "segments" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $segments = $analyticsService->segments; + * + */ +class Google_Service_Analytics_ManagementSegments_Resource extends Google_Service_Resource +{ + + /** + * Lists segments to which the user has access. + * (segments.listManagementSegments) + * + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of segments to include in this response. + * @opt_param int start-index + * An index of the first segment to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_Segments + */ + public function listManagementSegments($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Segments"); + } +} +/** + * The "unsampledReports" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $unsampledReports = $analyticsService->unsampledReports; + * + */ +class Google_Service_Analytics_ManagementUnsampledReports_Resource extends Google_Service_Resource +{ + + /** + * Returns a single unsampled report. (unsampledReports.get) + * + * @param string $accountId + * Account ID to retrieve unsampled report for. + * @param string $webPropertyId + * Web property ID to retrieve unsampled reports for. + * @param string $profileId + * View (Profile) ID to retrieve unsampled report for. + * @param string $unsampledReportId + * ID of the unsampled report to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_UnsampledReport + */ + public function get($accountId, $webPropertyId, $profileId, $unsampledReportId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'unsampledReportId' => $unsampledReportId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_UnsampledReport"); + } + /** + * Create a new unsampled report. (unsampledReports.insert) + * + * @param string $accountId + * Account ID to create the unsampled report for. + * @param string $webPropertyId + * Web property ID to create the unsampled report for. + * @param string $profileId + * View (Profile) ID to create the unsampled report for. + * @param Google_UnsampledReport $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_UnsampledReport + */ + public function insert($accountId, $webPropertyId, $profileId, Google_Service_Analytics_UnsampledReport $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_UnsampledReport"); + } + /** + * Lists unsampled reports to which the user has access. + * (unsampledReports.listManagementUnsampledReports) + * + * @param string $accountId + * Account ID to retrieve unsampled reports for. Must be a specific account ID, ~all is not + * supported. + * @param string $webPropertyId + * Web property ID to retrieve unsampled reports for. Must be a specific web property ID, ~all is + * not supported. + * @param string $profileId + * View (Profile) ID to retrieve unsampled reports for. Must be a specific view (profile) ID, ~all + * is not supported. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of unsampled reports to include in this response. + * @opt_param int start-index + * An index of the first unsampled report to retrieve. Use this parameter as a pagination mechanism + * along with the max-results parameter. + * @return Google_Service_Analytics_UnsampledReports + */ + public function listManagementUnsampledReports($accountId, $webPropertyId, $profileId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_UnsampledReports"); + } +} +/** + * The "uploads" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $uploads = $analyticsService->uploads; + * + */ +class Google_Service_Analytics_ManagementUploads_Resource extends Google_Service_Resource +{ + + /** + * Delete data associated with a previous upload. (uploads.deleteUploadData) + * + * @param string $accountId + * Account Id for the uploads to be deleted. + * @param string $webPropertyId + * Web property Id for the uploads to be deleted. + * @param string $customDataSourceId + * Custom data source Id for the uploads to be deleted. + * @param Google_AnalyticsDataimportDeleteUploadDataRequest $postBody + * @param array $optParams Optional parameters. + */ + public function deleteUploadData($accountId, $webPropertyId, $customDataSourceId, Google_Service_Analytics_AnalyticsDataimportDeleteUploadDataRequest $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('deleteUploadData', array($params)); + } + /** + * List uploads to which the user has access. (uploads.get) + * + * @param string $accountId + * Account Id for the upload to retrieve. + * @param string $webPropertyId + * Web property Id for the upload to retrieve. + * @param string $customDataSourceId + * Custom data source Id for upload to retrieve. + * @param string $uploadId + * Upload Id to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Upload + */ + public function get($accountId, $webPropertyId, $customDataSourceId, $uploadId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'uploadId' => $uploadId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_Upload"); + } + /** + * List uploads to which the user has access. (uploads.listManagementUploads) + * + * @param string $accountId + * Account Id for the uploads to retrieve. + * @param string $webPropertyId + * Web property Id for the uploads to retrieve. + * @param string $customDataSourceId + * Custom data source Id for uploads to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of uploads to include in this response. + * @opt_param int start-index + * A 1-based index of the first upload to retrieve. Use this parameter as a pagination mechanism + * along with the max-results parameter. + * @return Google_Service_Analytics_Uploads + */ + public function listManagementUploads($accountId, $webPropertyId, $customDataSourceId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Uploads"); + } + /** + * Migrate custom data source and data imports to latest version. + * (uploads.migrateDataImport) + * + * @param string $accountId + * Account Id for migration. + * @param string $webPropertyId + * Web property Id for migration. + * @param string $customDataSourceId + * Custom data source Id for migration. + * @param array $optParams Optional parameters. + */ + public function migrateDataImport($accountId, $webPropertyId, $customDataSourceId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId); + $params = array_merge($params, $optParams); + return $this->call('migrateDataImport', array($params)); + } + /** + * Upload data for a custom data source. (uploads.uploadData) + * + * @param string $accountId + * Account Id associated with the upload. + * @param string $webPropertyId + * Web property UA-string associated with the upload. + * @param string $customDataSourceId + * Custom data source Id to which the data being uploaded belongs. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Upload + */ + public function uploadData($accountId, $webPropertyId, $customDataSourceId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId); + $params = array_merge($params, $optParams); + return $this->call('uploadData', array($params), "Google_Service_Analytics_Upload"); + } +} +/** + * The "webPropertyAdWordsLinks" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $webPropertyAdWordsLinks = $analyticsService->webPropertyAdWordsLinks; + * + */ +class Google_Service_Analytics_ManagementWebPropertyAdWordsLinks_Resource extends Google_Service_Resource +{ + + /** + * Deletes a web property-AdWords link. (webPropertyAdWordsLinks.delete) + * + * @param string $accountId + * ID of the account which the given web property belongs to. + * @param string $webPropertyId + * Web property ID to delete the AdWords link for. + * @param string $webPropertyAdWordsLinkId + * Web property AdWords link ID. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $webPropertyAdWordsLinkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'webPropertyAdWordsLinkId' => $webPropertyAdWordsLinkId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns a web property-AdWords link to which the user has access. + * (webPropertyAdWordsLinks.get) + * + * @param string $accountId + * ID of the account which the given web property belongs to. + * @param string $webPropertyId + * Web property ID to retrieve the AdWords link for. + * @param string $webPropertyAdWordsLinkId + * Web property-AdWords link ID. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityAdWordsLink + */ + public function get($accountId, $webPropertyId, $webPropertyAdWordsLinkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'webPropertyAdWordsLinkId' => $webPropertyAdWordsLinkId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_EntityAdWordsLink"); + } + /** + * Creates a webProperty-AdWords link. (webPropertyAdWordsLinks.insert) + * + * @param string $accountId + * ID of the Google Analytics account to create the link for. + * @param string $webPropertyId + * Web property ID to create the link for. + * @param Google_EntityAdWordsLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityAdWordsLink + */ + public function insert($accountId, $webPropertyId, Google_Service_Analytics_EntityAdWordsLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_EntityAdWordsLink"); + } + /** + * Lists webProperty-AdWords links for a given web property. + * (webPropertyAdWordsLinks.listManagementWebPropertyAdWordsLinks) + * + * @param string $accountId + * ID of the account which the given web property belongs to. + * @param string $webPropertyId + * Web property ID to retrieve the AdWords links for. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of webProperty-AdWords links to include in this response. + * @opt_param int start-index + * An index of the first webProperty-AdWords link to retrieve. Use this parameter as a pagination + * mechanism along with the max-results parameter. + * @return Google_Service_Analytics_EntityAdWordsLinks + */ + public function listManagementWebPropertyAdWordsLinks($accountId, $webPropertyId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_EntityAdWordsLinks"); + } + /** + * Updates an existing webProperty-AdWords link. This method supports patch + * semantics. (webPropertyAdWordsLinks.patch) + * + * @param string $accountId + * ID of the account which the given web property belongs to. + * @param string $webPropertyId + * Web property ID to retrieve the AdWords link for. + * @param string $webPropertyAdWordsLinkId + * Web property-AdWords link ID. + * @param Google_EntityAdWordsLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityAdWordsLink + */ + public function patch($accountId, $webPropertyId, $webPropertyAdWordsLinkId, Google_Service_Analytics_EntityAdWordsLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'webPropertyAdWordsLinkId' => $webPropertyAdWordsLinkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_EntityAdWordsLink"); + } + /** + * Updates an existing webProperty-AdWords link. + * (webPropertyAdWordsLinks.update) + * + * @param string $accountId + * ID of the account which the given web property belongs to. + * @param string $webPropertyId + * Web property ID to retrieve the AdWords link for. + * @param string $webPropertyAdWordsLinkId + * Web property-AdWords link ID. + * @param Google_EntityAdWordsLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityAdWordsLink + */ + public function update($accountId, $webPropertyId, $webPropertyAdWordsLinkId, Google_Service_Analytics_EntityAdWordsLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'webPropertyAdWordsLinkId' => $webPropertyAdWordsLinkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_EntityAdWordsLink"); + } +} +/** + * The "webproperties" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $webproperties = $analyticsService->webproperties; + * + */ +class Google_Service_Analytics_ManagementWebproperties_Resource extends Google_Service_Resource +{ + + /** + * Gets a web property to which the user has access. (webproperties.get) + * + * @param string $accountId + * Account ID to retrieve the web property for. + * @param string $webPropertyId + * ID to retrieve the web property for. + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Webproperty + */ + public function get($accountId, $webPropertyId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Analytics_Webproperty"); + } + /** + * Create a new property if the account has fewer than 20 properties. Web + * properties are visible in the Google Analytics interface only if they have at + * least one profile. (webproperties.insert) + * + * @param string $accountId + * Account ID to create the web property for. + * @param Google_Webproperty $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Webproperty + */ + public function insert($accountId, Google_Service_Analytics_Webproperty $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_Webproperty"); + } + /** + * Lists web properties to which the user has access. + * (webproperties.listManagementWebproperties) + * + * @param string $accountId + * Account ID to retrieve web properties for. Can either be a specific account ID or '~all', which + * refers to all the accounts that user has access to. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of web properties to include in this response. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter. + * @return Google_Service_Analytics_Webproperties + */ + public function listManagementWebproperties($accountId, $optParams = array()) + { + $params = array('accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Webproperties"); + } + /** + * Updates an existing web property. This method supports patch semantics. + * (webproperties.patch) + * + * @param string $accountId + * Account ID to which the web property belongs + * @param string $webPropertyId + * Web property ID + * @param Google_Webproperty $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Webproperty + */ + public function patch($accountId, $webPropertyId, Google_Service_Analytics_Webproperty $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Analytics_Webproperty"); + } + /** + * Updates an existing web property. (webproperties.update) + * + * @param string $accountId + * Account ID to which the web property belongs + * @param string $webPropertyId + * Web property ID + * @param Google_Webproperty $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Webproperty + */ + public function update($accountId, $webPropertyId, Google_Service_Analytics_Webproperty $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_Webproperty"); + } +} +/** + * The "webpropertyUserLinks" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $webpropertyUserLinks = $analyticsService->webpropertyUserLinks; + * + */ +class Google_Service_Analytics_ManagementWebpropertyUserLinks_Resource extends Google_Service_Resource +{ + + /** + * Removes a user from the given web property. (webpropertyUserLinks.delete) + * + * @param string $accountId + * Account ID to delete the user link for. + * @param string $webPropertyId + * Web Property ID to delete the user link for. + * @param string $linkId + * Link ID to delete the user link for. + * @param array $optParams Optional parameters. + */ + public function delete($accountId, $webPropertyId, $linkId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'linkId' => $linkId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a new user to the given web property. (webpropertyUserLinks.insert) + * + * @param string $accountId + * Account ID to create the user link for. + * @param string $webPropertyId + * Web Property ID to create the user link for. + * @param Google_EntityUserLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityUserLink + */ + public function insert($accountId, $webPropertyId, Google_Service_Analytics_EntityUserLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Analytics_EntityUserLink"); + } + /** + * Lists webProperty-user links for a given web property. + * (webpropertyUserLinks.listManagementWebpropertyUserLinks) + * + * @param string $accountId + * Account ID which the given web property belongs to. + * @param string $webPropertyId + * Web Property ID for the webProperty-user links to retrieve. Can either be a specific web + * property ID or '~all', which refers to all the web properties that user has access to. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of webProperty-user Links to include in this response. + * @opt_param int start-index + * An index of the first webProperty-user link to retrieve. Use this parameter as a pagination + * mechanism along with the max-results parameter. + * @return Google_Service_Analytics_EntityUserLinks + */ + public function listManagementWebpropertyUserLinks($accountId, $webPropertyId, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_EntityUserLinks"); + } + /** + * Updates permissions for an existing user on the given web property. + * (webpropertyUserLinks.update) + * + * @param string $accountId + * Account ID to update the account-user link for. + * @param string $webPropertyId + * Web property ID to update the account-user link for. + * @param string $linkId + * Link ID to update the account-user link for. + * @param Google_EntityUserLink $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_EntityUserLink + */ + public function update($accountId, $webPropertyId, $linkId, Google_Service_Analytics_EntityUserLink $postBody, $optParams = array()) + { + $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'linkId' => $linkId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Analytics_EntityUserLink"); + } +} + +/** + * The "metadata" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $metadata = $analyticsService->metadata; + * + */ +class Google_Service_Analytics_Metadata_Resource extends Google_Service_Resource +{ + +} + +/** + * The "columns" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $columns = $analyticsService->columns; + * + */ +class Google_Service_Analytics_MetadataColumns_Resource extends Google_Service_Resource +{ + + /** + * Lists all columns for a report type (columns.listMetadataColumns) + * + * @param string $reportType + * Report type. Allowed Values: 'ga'. Where 'ga' corresponds to the Core Reporting API + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_Columns + */ + public function listMetadataColumns($reportType, $optParams = array()) + { + $params = array('reportType' => $reportType); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Analytics_Columns"); + } +} + +/** + * The "provisioning" collection of methods. + * Typical usage is: + * + * $analyticsService = new Google_Service_Analytics(...); + * $provisioning = $analyticsService->provisioning; + * + */ +class Google_Service_Analytics_Provisioning_Resource extends Google_Service_Resource +{ + + /** + * Creates an account ticket. (provisioning.createAccountTicket) + * + * @param Google_AccountTicket $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Analytics_AccountTicket + */ + public function createAccountTicket(Google_Service_Analytics_AccountTicket $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('createAccountTicket', array($params), "Google_Service_Analytics_AccountTicket"); + } +} + + + + +class Google_Service_Analytics_Account extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $childLinkType = 'Google_Service_Analytics_AccountChildLink'; + protected $childLinkDataType = ''; + public $created; + public $id; + public $kind; + public $name; + protected $permissionsType = 'Google_Service_Analytics_AccountPermissions'; + protected $permissionsDataType = ''; + public $selfLink; + public $updated; + + public function setChildLink(Google_Service_Analytics_AccountChildLink $childLink) + { + $this->childLink = $childLink; + } + + public function getChildLink() + { + return $this->childLink; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPermissions(Google_Service_Analytics_AccountPermissions $permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Analytics_AccountChildLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_AccountPermissions extends Google_Collection +{ + protected $collection_key = 'effective'; + protected $internal_gapi_mappings = array( + ); + public $effective; + + public function setEffective($effective) + { + $this->effective = $effective; + } + + public function getEffective() + { + return $this->effective; + } +} + +class Google_Service_Analytics_AccountRef extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $id; + public $kind; + public $name; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Analytics_AccountSummaries extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_AccountSummary'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_AccountSummary extends Google_Collection +{ + protected $collection_key = 'webProperties'; + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + protected $webPropertiesType = 'Google_Service_Analytics_WebPropertySummary'; + protected $webPropertiesDataType = 'array'; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setWebProperties($webProperties) + { + $this->webProperties = $webProperties; + } + + public function getWebProperties() + { + return $this->webProperties; + } +} + +class Google_Service_Analytics_AccountTicket extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accountType = 'Google_Service_Analytics_Account'; + protected $accountDataType = ''; + public $id; + public $kind; + protected $profileType = 'Google_Service_Analytics_Profile'; + protected $profileDataType = ''; + public $redirectUri; + protected $webpropertyType = 'Google_Service_Analytics_Webproperty'; + protected $webpropertyDataType = ''; + + public function setAccount(Google_Service_Analytics_Account $account) + { + $this->account = $account; + } + + public function getAccount() + { + return $this->account; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProfile(Google_Service_Analytics_Profile $profile) + { + $this->profile = $profile; + } + + public function getProfile() + { + return $this->profile; + } + + public function setRedirectUri($redirectUri) + { + $this->redirectUri = $redirectUri; + } + + public function getRedirectUri() + { + return $this->redirectUri; + } + + public function setWebproperty(Google_Service_Analytics_Webproperty $webproperty) + { + $this->webproperty = $webproperty; + } + + public function getWebproperty() + { + return $this->webproperty; + } +} + +class Google_Service_Analytics_Accounts extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Account'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_AdWordsAccount extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $autoTaggingEnabled; + public $customerId; + public $kind; + + public function setAutoTaggingEnabled($autoTaggingEnabled) + { + $this->autoTaggingEnabled = $autoTaggingEnabled; + } + + public function getAutoTaggingEnabled() + { + return $this->autoTaggingEnabled; + } + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Analytics_AnalyticsDataimportDeleteUploadDataRequest extends Google_Collection +{ + protected $collection_key = 'customDataImportUids'; + protected $internal_gapi_mappings = array( + ); + public $customDataImportUids; + + public function setCustomDataImportUids($customDataImportUids) + { + $this->customDataImportUids = $customDataImportUids; + } + + public function getCustomDataImportUids() + { + return $this->customDataImportUids; + } +} + +class Google_Service_Analytics_Column extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attributes; + public $id; + public $kind; + + public function setAttributes($attributes) + { + $this->attributes = $attributes; + } + + public function getAttributes() + { + return $this->attributes; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Analytics_ColumnAttributes extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Analytics_Columns extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $attributeNames; + public $etag; + protected $itemsType = 'Google_Service_Analytics_Column'; + protected $itemsDataType = 'array'; + public $kind; + public $totalResults; + + public function setAttributeNames($attributeNames) + { + $this->attributeNames = $attributeNames; + } + + public function getAttributeNames() + { + return $this->attributeNames; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_Analytics_CustomDataSource extends Google_Collection +{ + protected $collection_key = 'profilesLinked'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + protected $childLinkType = 'Google_Service_Analytics_CustomDataSourceChildLink'; + protected $childLinkDataType = ''; + public $created; + public $description; + public $id; + public $importBehavior; + public $kind; + public $name; + protected $parentLinkType = 'Google_Service_Analytics_CustomDataSourceParentLink'; + protected $parentLinkDataType = ''; + public $profilesLinked; + public $selfLink; + public $type; + public $updated; + public $uploadType; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setChildLink(Google_Service_Analytics_CustomDataSourceChildLink $childLink) + { + $this->childLink = $childLink; + } + + public function getChildLink() + { + return $this->childLink; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImportBehavior($importBehavior) + { + $this->importBehavior = $importBehavior; + } + + public function getImportBehavior() + { + return $this->importBehavior; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParentLink(Google_Service_Analytics_CustomDataSourceParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setProfilesLinked($profilesLinked) + { + $this->profilesLinked = $profilesLinked; + } + + public function getProfilesLinked() + { + return $this->profilesLinked; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUploadType($uploadType) + { + $this->uploadType = $uploadType; + } + + public function getUploadType() + { + return $this->uploadType; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_CustomDataSourceChildLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_CustomDataSourceParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_CustomDataSources extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_CustomDataSource'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_DailyUpload extends Google_Collection +{ + protected $collection_key = 'recentChanges'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $appendCount; + public $createdTime; + public $customDataSourceId; + public $date; + public $kind; + public $modifiedTime; + protected $parentLinkType = 'Google_Service_Analytics_DailyUploadParentLink'; + protected $parentLinkDataType = ''; + protected $recentChangesType = 'Google_Service_Analytics_DailyUploadRecentChanges'; + protected $recentChangesDataType = 'array'; + public $selfLink; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAppendCount($appendCount) + { + $this->appendCount = $appendCount; + } + + public function getAppendCount() + { + return $this->appendCount; + } + + public function setCreatedTime($createdTime) + { + $this->createdTime = $createdTime; + } + + public function getCreatedTime() + { + return $this->createdTime; + } + + public function setCustomDataSourceId($customDataSourceId) + { + $this->customDataSourceId = $customDataSourceId; + } + + public function getCustomDataSourceId() + { + return $this->customDataSourceId; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedTime($modifiedTime) + { + $this->modifiedTime = $modifiedTime; + } + + public function getModifiedTime() + { + return $this->modifiedTime; + } + + public function setParentLink(Google_Service_Analytics_DailyUploadParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setRecentChanges($recentChanges) + { + $this->recentChanges = $recentChanges; + } + + public function getRecentChanges() + { + return $this->recentChanges; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_DailyUploadAppend extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $appendNumber; + public $customDataSourceId; + public $date; + public $kind; + public $nextAppendLink; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAppendNumber($appendNumber) + { + $this->appendNumber = $appendNumber; + } + + public function getAppendNumber() + { + return $this->appendNumber; + } + + public function setCustomDataSourceId($customDataSourceId) + { + $this->customDataSourceId = $customDataSourceId; + } + + public function getCustomDataSourceId() + { + return $this->customDataSourceId; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextAppendLink($nextAppendLink) + { + $this->nextAppendLink = $nextAppendLink; + } + + public function getNextAppendLink() + { + return $this->nextAppendLink; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_DailyUploadParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_DailyUploadRecentChanges extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $change; + public $time; + + public function setChange($change) + { + $this->change = $change; + } + + public function getChange() + { + return $this->change; + } + + public function setTime($time) + { + $this->time = $time; + } + + public function getTime() + { + return $this->time; + } +} + +class Google_Service_Analytics_DailyUploads extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_DailyUpload'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_EntityAdWordsLink extends Google_Collection +{ + protected $collection_key = 'profileIds'; + protected $internal_gapi_mappings = array( + ); + protected $adWordsAccountsType = 'Google_Service_Analytics_AdWordsAccount'; + protected $adWordsAccountsDataType = 'array'; + protected $entityType = 'Google_Service_Analytics_EntityAdWordsLinkEntity'; + protected $entityDataType = ''; + public $id; + public $kind; + public $name; + public $profileIds; + public $selfLink; + + public function setAdWordsAccounts($adWordsAccounts) + { + $this->adWordsAccounts = $adWordsAccounts; + } + + public function getAdWordsAccounts() + { + return $this->adWordsAccounts; + } + + public function setEntity(Google_Service_Analytics_EntityAdWordsLinkEntity $entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProfileIds($profileIds) + { + $this->profileIds = $profileIds; + } + + public function getProfileIds() + { + return $this->profileIds; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Analytics_EntityAdWordsLinkEntity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $webPropertyRefType = 'Google_Service_Analytics_WebPropertyRef'; + protected $webPropertyRefDataType = ''; + + public function setWebPropertyRef(Google_Service_Analytics_WebPropertyRef $webPropertyRef) + { + $this->webPropertyRef = $webPropertyRef; + } + + public function getWebPropertyRef() + { + return $this->webPropertyRef; + } +} + +class Google_Service_Analytics_EntityAdWordsLinks extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_EntityAdWordsLink'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_Analytics_EntityUserLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $entityType = 'Google_Service_Analytics_EntityUserLinkEntity'; + protected $entityDataType = ''; + public $id; + public $kind; + protected $permissionsType = 'Google_Service_Analytics_EntityUserLinkPermissions'; + protected $permissionsDataType = ''; + public $selfLink; + protected $userRefType = 'Google_Service_Analytics_UserRef'; + protected $userRefDataType = ''; + + public function setEntity(Google_Service_Analytics_EntityUserLinkEntity $entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPermissions(Google_Service_Analytics_EntityUserLinkPermissions $permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUserRef(Google_Service_Analytics_UserRef $userRef) + { + $this->userRef = $userRef; + } + + public function getUserRef() + { + return $this->userRef; + } +} + +class Google_Service_Analytics_EntityUserLinkEntity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accountRefType = 'Google_Service_Analytics_AccountRef'; + protected $accountRefDataType = ''; + protected $profileRefType = 'Google_Service_Analytics_ProfileRef'; + protected $profileRefDataType = ''; + protected $webPropertyRefType = 'Google_Service_Analytics_WebPropertyRef'; + protected $webPropertyRefDataType = ''; + + public function setAccountRef(Google_Service_Analytics_AccountRef $accountRef) + { + $this->accountRef = $accountRef; + } + + public function getAccountRef() + { + return $this->accountRef; + } + + public function setProfileRef(Google_Service_Analytics_ProfileRef $profileRef) + { + $this->profileRef = $profileRef; + } + + public function getProfileRef() + { + return $this->profileRef; + } + + public function setWebPropertyRef(Google_Service_Analytics_WebPropertyRef $webPropertyRef) + { + $this->webPropertyRef = $webPropertyRef; + } + + public function getWebPropertyRef() + { + return $this->webPropertyRef; + } +} + +class Google_Service_Analytics_EntityUserLinkPermissions extends Google_Collection +{ + protected $collection_key = 'local'; + protected $internal_gapi_mappings = array( + ); + public $effective; + public $local; + + public function setEffective($effective) + { + $this->effective = $effective; + } + + public function getEffective() + { + return $this->effective; + } + + public function setLocal($local) + { + $this->local = $local; + } + + public function getLocal() + { + return $this->local; + } +} + +class Google_Service_Analytics_EntityUserLinks extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_EntityUserLink'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_Analytics_Experiment extends Google_Collection +{ + protected $collection_key = 'variations'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $created; + public $description; + public $editableInGaUi; + public $endTime; + public $equalWeighting; + public $id; + public $internalWebPropertyId; + public $kind; + public $minimumExperimentLengthInDays; + public $name; + public $objectiveMetric; + public $optimizationType; + protected $parentLinkType = 'Google_Service_Analytics_ExperimentParentLink'; + protected $parentLinkDataType = ''; + public $profileId; + public $reasonExperimentEnded; + public $rewriteVariationUrlsAsOriginal; + public $selfLink; + public $servingFramework; + public $snippet; + public $startTime; + public $status; + public $trafficCoverage; + public $updated; + protected $variationsType = 'Google_Service_Analytics_ExperimentVariations'; + protected $variationsDataType = 'array'; + public $webPropertyId; + public $winnerConfidenceLevel; + public $winnerFound; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEditableInGaUi($editableInGaUi) + { + $this->editableInGaUi = $editableInGaUi; + } + + public function getEditableInGaUi() + { + return $this->editableInGaUi; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setEqualWeighting($equalWeighting) + { + $this->equalWeighting = $equalWeighting; + } + + public function getEqualWeighting() + { + return $this->equalWeighting; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMinimumExperimentLengthInDays($minimumExperimentLengthInDays) + { + $this->minimumExperimentLengthInDays = $minimumExperimentLengthInDays; + } + + public function getMinimumExperimentLengthInDays() + { + return $this->minimumExperimentLengthInDays; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setObjectiveMetric($objectiveMetric) + { + $this->objectiveMetric = $objectiveMetric; + } + + public function getObjectiveMetric() + { + return $this->objectiveMetric; + } + + public function setOptimizationType($optimizationType) + { + $this->optimizationType = $optimizationType; + } + + public function getOptimizationType() + { + return $this->optimizationType; + } + + public function setParentLink(Google_Service_Analytics_ExperimentParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setReasonExperimentEnded($reasonExperimentEnded) + { + $this->reasonExperimentEnded = $reasonExperimentEnded; + } + + public function getReasonExperimentEnded() + { + return $this->reasonExperimentEnded; + } + + public function setRewriteVariationUrlsAsOriginal($rewriteVariationUrlsAsOriginal) + { + $this->rewriteVariationUrlsAsOriginal = $rewriteVariationUrlsAsOriginal; + } + + public function getRewriteVariationUrlsAsOriginal() + { + return $this->rewriteVariationUrlsAsOriginal; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setServingFramework($servingFramework) + { + $this->servingFramework = $servingFramework; + } + + public function getServingFramework() + { + return $this->servingFramework; + } + + public function setSnippet($snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTrafficCoverage($trafficCoverage) + { + $this->trafficCoverage = $trafficCoverage; + } + + public function getTrafficCoverage() + { + return $this->trafficCoverage; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVariations($variations) + { + $this->variations = $variations; + } + + public function getVariations() + { + return $this->variations; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } + + public function setWinnerConfidenceLevel($winnerConfidenceLevel) + { + $this->winnerConfidenceLevel = $winnerConfidenceLevel; + } + + public function getWinnerConfidenceLevel() + { + return $this->winnerConfidenceLevel; + } + + public function setWinnerFound($winnerFound) + { + $this->winnerFound = $winnerFound; + } + + public function getWinnerFound() + { + return $this->winnerFound; + } +} + +class Google_Service_Analytics_ExperimentParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_ExperimentVariations extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $status; + public $url; + public $weight; + public $won; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWeight($weight) + { + $this->weight = $weight; + } + + public function getWeight() + { + return $this->weight; + } + + public function setWon($won) + { + $this->won = $won; + } + + public function getWon() + { + return $this->won; + } +} + +class Google_Service_Analytics_Experiments extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Experiment'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_Filter extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + protected $advancedDetailsType = 'Google_Service_Analytics_FilterAdvancedDetails'; + protected $advancedDetailsDataType = ''; + public $created; + protected $excludeDetailsType = 'Google_Service_Analytics_FilterExpression'; + protected $excludeDetailsDataType = ''; + public $id; + protected $includeDetailsType = 'Google_Service_Analytics_FilterExpression'; + protected $includeDetailsDataType = ''; + public $kind; + protected $lowercaseDetailsType = 'Google_Service_Analytics_FilterLowercaseDetails'; + protected $lowercaseDetailsDataType = ''; + public $name; + protected $parentLinkType = 'Google_Service_Analytics_FilterParentLink'; + protected $parentLinkDataType = ''; + protected $searchAndReplaceDetailsType = 'Google_Service_Analytics_FilterSearchAndReplaceDetails'; + protected $searchAndReplaceDetailsDataType = ''; + public $selfLink; + public $type; + public $updated; + protected $uppercaseDetailsType = 'Google_Service_Analytics_FilterUppercaseDetails'; + protected $uppercaseDetailsDataType = ''; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAdvancedDetails(Google_Service_Analytics_FilterAdvancedDetails $advancedDetails) + { + $this->advancedDetails = $advancedDetails; + } + + public function getAdvancedDetails() + { + return $this->advancedDetails; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setExcludeDetails(Google_Service_Analytics_FilterExpression $excludeDetails) + { + $this->excludeDetails = $excludeDetails; + } + + public function getExcludeDetails() + { + return $this->excludeDetails; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIncludeDetails(Google_Service_Analytics_FilterExpression $includeDetails) + { + $this->includeDetails = $includeDetails; + } + + public function getIncludeDetails() + { + return $this->includeDetails; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLowercaseDetails(Google_Service_Analytics_FilterLowercaseDetails $lowercaseDetails) + { + $this->lowercaseDetails = $lowercaseDetails; + } + + public function getLowercaseDetails() + { + return $this->lowercaseDetails; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParentLink(Google_Service_Analytics_FilterParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setSearchAndReplaceDetails(Google_Service_Analytics_FilterSearchAndReplaceDetails $searchAndReplaceDetails) + { + $this->searchAndReplaceDetails = $searchAndReplaceDetails; + } + + public function getSearchAndReplaceDetails() + { + return $this->searchAndReplaceDetails; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUppercaseDetails(Google_Service_Analytics_FilterUppercaseDetails $uppercaseDetails) + { + $this->uppercaseDetails = $uppercaseDetails; + } + + public function getUppercaseDetails() + { + return $this->uppercaseDetails; + } +} + +class Google_Service_Analytics_FilterAdvancedDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $caseSensitive; + public $extractA; + public $extractB; + public $fieldA; + public $fieldARequired; + public $fieldB; + public $fieldBRequired; + public $outputConstructor; + public $outputToField; + public $overrideOutputField; + + public function setCaseSensitive($caseSensitive) + { + $this->caseSensitive = $caseSensitive; + } + + public function getCaseSensitive() + { + return $this->caseSensitive; + } + + public function setExtractA($extractA) + { + $this->extractA = $extractA; + } + + public function getExtractA() + { + return $this->extractA; + } + + public function setExtractB($extractB) + { + $this->extractB = $extractB; + } + + public function getExtractB() + { + return $this->extractB; + } + + public function setFieldA($fieldA) + { + $this->fieldA = $fieldA; + } + + public function getFieldA() + { + return $this->fieldA; + } + + public function setFieldARequired($fieldARequired) + { + $this->fieldARequired = $fieldARequired; + } + + public function getFieldARequired() + { + return $this->fieldARequired; + } + + public function setFieldB($fieldB) + { + $this->fieldB = $fieldB; + } + + public function getFieldB() + { + return $this->fieldB; + } + + public function setFieldBRequired($fieldBRequired) + { + $this->fieldBRequired = $fieldBRequired; + } + + public function getFieldBRequired() + { + return $this->fieldBRequired; + } + + public function setOutputConstructor($outputConstructor) + { + $this->outputConstructor = $outputConstructor; + } + + public function getOutputConstructor() + { + return $this->outputConstructor; + } + + public function setOutputToField($outputToField) + { + $this->outputToField = $outputToField; + } + + public function getOutputToField() + { + return $this->outputToField; + } + + public function setOverrideOutputField($overrideOutputField) + { + $this->overrideOutputField = $overrideOutputField; + } + + public function getOverrideOutputField() + { + return $this->overrideOutputField; + } +} + +class Google_Service_Analytics_FilterExpression extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $caseSensitive; + public $expressionValue; + public $field; + public $kind; + public $matchType; + + public function setCaseSensitive($caseSensitive) + { + $this->caseSensitive = $caseSensitive; + } + + public function getCaseSensitive() + { + return $this->caseSensitive; + } + + public function setExpressionValue($expressionValue) + { + $this->expressionValue = $expressionValue; + } + + public function getExpressionValue() + { + return $this->expressionValue; + } + + public function setField($field) + { + $this->field = $field; + } + + public function getField() + { + return $this->field; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMatchType($matchType) + { + $this->matchType = $matchType; + } + + public function getMatchType() + { + return $this->matchType; + } +} + +class Google_Service_Analytics_FilterLowercaseDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $field; + + public function setField($field) + { + $this->field = $field; + } + + public function getField() + { + return $this->field; + } +} + +class Google_Service_Analytics_FilterParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_FilterRef extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $href; + public $id; + public $kind; + public $name; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Analytics_FilterSearchAndReplaceDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $caseSensitive; + public $field; + public $replaceString; + public $searchString; + + public function setCaseSensitive($caseSensitive) + { + $this->caseSensitive = $caseSensitive; + } + + public function getCaseSensitive() + { + return $this->caseSensitive; + } + + public function setField($field) + { + $this->field = $field; + } + + public function getField() + { + return $this->field; + } + + public function setReplaceString($replaceString) + { + $this->replaceString = $replaceString; + } + + public function getReplaceString() + { + return $this->replaceString; + } + + public function setSearchString($searchString) + { + $this->searchString = $searchString; + } + + public function getSearchString() + { + return $this->searchString; + } +} + +class Google_Service_Analytics_FilterUppercaseDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $field; + + public function setField($field) + { + $this->field = $field; + } + + public function getField() + { + return $this->field; + } +} + +class Google_Service_Analytics_Filters extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Filter'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_GaData extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + protected $columnHeadersType = 'Google_Service_Analytics_GaDataColumnHeaders'; + protected $columnHeadersDataType = 'array'; + public $containsSampledData; + protected $dataTableType = 'Google_Service_Analytics_GaDataDataTable'; + protected $dataTableDataType = ''; + public $id; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + protected $profileInfoType = 'Google_Service_Analytics_GaDataProfileInfo'; + protected $profileInfoDataType = ''; + protected $queryType = 'Google_Service_Analytics_GaDataQuery'; + protected $queryDataType = ''; + public $rows; + public $sampleSize; + public $sampleSpace; + public $selfLink; + public $totalResults; + public $totalsForAllResults; + + public function setColumnHeaders($columnHeaders) + { + $this->columnHeaders = $columnHeaders; + } + + public function getColumnHeaders() + { + return $this->columnHeaders; + } + + public function setContainsSampledData($containsSampledData) + { + $this->containsSampledData = $containsSampledData; + } + + public function getContainsSampledData() + { + return $this->containsSampledData; + } + + public function setDataTable(Google_Service_Analytics_GaDataDataTable $dataTable) + { + $this->dataTable = $dataTable; + } + + public function getDataTable() + { + return $this->dataTable; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setProfileInfo(Google_Service_Analytics_GaDataProfileInfo $profileInfo) + { + $this->profileInfo = $profileInfo; + } + + public function getProfileInfo() + { + return $this->profileInfo; + } + + public function setQuery(Google_Service_Analytics_GaDataQuery $query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setSampleSize($sampleSize) + { + $this->sampleSize = $sampleSize; + } + + public function getSampleSize() + { + return $this->sampleSize; + } + + public function setSampleSpace($sampleSpace) + { + $this->sampleSpace = $sampleSpace; + } + + public function getSampleSpace() + { + return $this->sampleSpace; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setTotalsForAllResults($totalsForAllResults) + { + $this->totalsForAllResults = $totalsForAllResults; + } + + public function getTotalsForAllResults() + { + return $this->totalsForAllResults; + } +} + +class Google_Service_Analytics_GaDataColumnHeaders extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnType; + public $dataType; + public $name; + + public function setColumnType($columnType) + { + $this->columnType = $columnType; + } + + public function getColumnType() + { + return $this->columnType; + } + + public function setDataType($dataType) + { + $this->dataType = $dataType; + } + + public function getDataType() + { + return $this->dataType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Analytics_GaDataDataTable extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + protected $colsType = 'Google_Service_Analytics_GaDataDataTableCols'; + protected $colsDataType = 'array'; + protected $rowsType = 'Google_Service_Analytics_GaDataDataTableRows'; + protected $rowsDataType = 'array'; + + public function setCols($cols) + { + $this->cols = $cols; + } + + public function getCols() + { + return $this->cols; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } +} + +class Google_Service_Analytics_GaDataDataTableCols extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $label; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLabel($label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_GaDataDataTableRows extends Google_Collection +{ + protected $collection_key = 'c'; + protected $internal_gapi_mappings = array( + ); + protected $cType = 'Google_Service_Analytics_GaDataDataTableRowsC'; + protected $cDataType = 'array'; + + public function setC($c) + { + $this->c = $c; + } + + public function getC() + { + return $this->c; + } +} + +class Google_Service_Analytics_GaDataDataTableRowsC extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $v; + + public function setV($v) + { + $this->v = $v; + } + + public function getV() + { + return $this->v; + } +} + +class Google_Service_Analytics_GaDataProfileInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $internalWebPropertyId; + public $profileId; + public $profileName; + public $tableId; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setProfileName($profileName) + { + $this->profileName = $profileName; + } + + public function getProfileName() + { + return $this->profileName; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_GaDataQuery extends Google_Collection +{ + protected $collection_key = 'sort'; + protected $internal_gapi_mappings = array( + "endDate" => "end-date", + "maxResults" => "max-results", + "startDate" => "start-date", + "startIndex" => "start-index", + ); + public $dimensions; + public $endDate; + public $filters; + public $ids; + public $maxResults; + public $metrics; + public $samplingLevel; + public $segment; + public $sort; + public $startDate; + public $startIndex; + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setIds($ids) + { + $this->ids = $ids; + } + + public function getIds() + { + return $this->ids; + } + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setSamplingLevel($samplingLevel) + { + $this->samplingLevel = $samplingLevel; + } + + public function getSamplingLevel() + { + return $this->samplingLevel; + } + + public function setSegment($segment) + { + $this->segment = $segment; + } + + public function getSegment() + { + return $this->segment; + } + + public function setSort($sort) + { + $this->sort = $sort; + } + + public function getSort() + { + return $this->sort; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } +} + +class Google_Service_Analytics_GaDataTotalsForAllResults extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Analytics_Goal extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $active; + public $created; + protected $eventDetailsType = 'Google_Service_Analytics_GoalEventDetails'; + protected $eventDetailsDataType = ''; + public $id; + public $internalWebPropertyId; + public $kind; + public $name; + protected $parentLinkType = 'Google_Service_Analytics_GoalParentLink'; + protected $parentLinkDataType = ''; + public $profileId; + public $selfLink; + public $type; + public $updated; + protected $urlDestinationDetailsType = 'Google_Service_Analytics_GoalUrlDestinationDetails'; + protected $urlDestinationDetailsDataType = ''; + public $value; + protected $visitNumPagesDetailsType = 'Google_Service_Analytics_GoalVisitNumPagesDetails'; + protected $visitNumPagesDetailsDataType = ''; + protected $visitTimeOnSiteDetailsType = 'Google_Service_Analytics_GoalVisitTimeOnSiteDetails'; + protected $visitTimeOnSiteDetailsDataType = ''; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setActive($active) + { + $this->active = $active; + } + + public function getActive() + { + return $this->active; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setEventDetails(Google_Service_Analytics_GoalEventDetails $eventDetails) + { + $this->eventDetails = $eventDetails; + } + + public function getEventDetails() + { + return $this->eventDetails; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParentLink(Google_Service_Analytics_GoalParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrlDestinationDetails(Google_Service_Analytics_GoalUrlDestinationDetails $urlDestinationDetails) + { + $this->urlDestinationDetails = $urlDestinationDetails; + } + + public function getUrlDestinationDetails() + { + return $this->urlDestinationDetails; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } + + public function setVisitNumPagesDetails(Google_Service_Analytics_GoalVisitNumPagesDetails $visitNumPagesDetails) + { + $this->visitNumPagesDetails = $visitNumPagesDetails; + } + + public function getVisitNumPagesDetails() + { + return $this->visitNumPagesDetails; + } + + public function setVisitTimeOnSiteDetails(Google_Service_Analytics_GoalVisitTimeOnSiteDetails $visitTimeOnSiteDetails) + { + $this->visitTimeOnSiteDetails = $visitTimeOnSiteDetails; + } + + public function getVisitTimeOnSiteDetails() + { + return $this->visitTimeOnSiteDetails; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_GoalEventDetails extends Google_Collection +{ + protected $collection_key = 'eventConditions'; + protected $internal_gapi_mappings = array( + ); + protected $eventConditionsType = 'Google_Service_Analytics_GoalEventDetailsEventConditions'; + protected $eventConditionsDataType = 'array'; + public $useEventValue; + + public function setEventConditions($eventConditions) + { + $this->eventConditions = $eventConditions; + } + + public function getEventConditions() + { + return $this->eventConditions; + } + + public function setUseEventValue($useEventValue) + { + $this->useEventValue = $useEventValue; + } + + public function getUseEventValue() + { + return $this->useEventValue; + } +} + +class Google_Service_Analytics_GoalEventDetailsEventConditions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $comparisonType; + public $comparisonValue; + public $expression; + public $matchType; + public $type; + + public function setComparisonType($comparisonType) + { + $this->comparisonType = $comparisonType; + } + + public function getComparisonType() + { + return $this->comparisonType; + } + + public function setComparisonValue($comparisonValue) + { + $this->comparisonValue = $comparisonValue; + } + + public function getComparisonValue() + { + return $this->comparisonValue; + } + + public function setExpression($expression) + { + $this->expression = $expression; + } + + public function getExpression() + { + return $this->expression; + } + + public function setMatchType($matchType) + { + $this->matchType = $matchType; + } + + public function getMatchType() + { + return $this->matchType; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_GoalParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_GoalUrlDestinationDetails extends Google_Collection +{ + protected $collection_key = 'steps'; + protected $internal_gapi_mappings = array( + ); + public $caseSensitive; + public $firstStepRequired; + public $matchType; + protected $stepsType = 'Google_Service_Analytics_GoalUrlDestinationDetailsSteps'; + protected $stepsDataType = 'array'; + public $url; + + public function setCaseSensitive($caseSensitive) + { + $this->caseSensitive = $caseSensitive; + } + + public function getCaseSensitive() + { + return $this->caseSensitive; + } + + public function setFirstStepRequired($firstStepRequired) + { + $this->firstStepRequired = $firstStepRequired; + } + + public function getFirstStepRequired() + { + return $this->firstStepRequired; + } + + public function setMatchType($matchType) + { + $this->matchType = $matchType; + } + + public function getMatchType() + { + return $this->matchType; + } + + public function setSteps($steps) + { + $this->steps = $steps; + } + + public function getSteps() + { + return $this->steps; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Analytics_GoalUrlDestinationDetailsSteps extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $number; + public $url; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNumber($number) + { + $this->number = $number; + } + + public function getNumber() + { + return $this->number; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Analytics_GoalVisitNumPagesDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $comparisonType; + public $comparisonValue; + + public function setComparisonType($comparisonType) + { + $this->comparisonType = $comparisonType; + } + + public function getComparisonType() + { + return $this->comparisonType; + } + + public function setComparisonValue($comparisonValue) + { + $this->comparisonValue = $comparisonValue; + } + + public function getComparisonValue() + { + return $this->comparisonValue; + } +} + +class Google_Service_Analytics_GoalVisitTimeOnSiteDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $comparisonType; + public $comparisonValue; + + public function setComparisonType($comparisonType) + { + $this->comparisonType = $comparisonType; + } + + public function getComparisonType() + { + return $this->comparisonType; + } + + public function setComparisonValue($comparisonValue) + { + $this->comparisonValue = $comparisonValue; + } + + public function getComparisonValue() + { + return $this->comparisonValue; + } +} + +class Google_Service_Analytics_Goals extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Goal'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_McfData extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + protected $columnHeadersType = 'Google_Service_Analytics_McfDataColumnHeaders'; + protected $columnHeadersDataType = 'array'; + public $containsSampledData; + public $id; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + protected $profileInfoType = 'Google_Service_Analytics_McfDataProfileInfo'; + protected $profileInfoDataType = ''; + protected $queryType = 'Google_Service_Analytics_McfDataQuery'; + protected $queryDataType = ''; + protected $rowsType = 'Google_Service_Analytics_McfDataRows'; + protected $rowsDataType = 'array'; + public $sampleSize; + public $sampleSpace; + public $selfLink; + public $totalResults; + public $totalsForAllResults; + + public function setColumnHeaders($columnHeaders) + { + $this->columnHeaders = $columnHeaders; + } + + public function getColumnHeaders() + { + return $this->columnHeaders; + } + + public function setContainsSampledData($containsSampledData) + { + $this->containsSampledData = $containsSampledData; + } + + public function getContainsSampledData() + { + return $this->containsSampledData; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setProfileInfo(Google_Service_Analytics_McfDataProfileInfo $profileInfo) + { + $this->profileInfo = $profileInfo; + } + + public function getProfileInfo() + { + return $this->profileInfo; + } + + public function setQuery(Google_Service_Analytics_McfDataQuery $query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setSampleSize($sampleSize) + { + $this->sampleSize = $sampleSize; + } + + public function getSampleSize() + { + return $this->sampleSize; + } + + public function setSampleSpace($sampleSpace) + { + $this->sampleSpace = $sampleSpace; + } + + public function getSampleSpace() + { + return $this->sampleSpace; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setTotalsForAllResults($totalsForAllResults) + { + $this->totalsForAllResults = $totalsForAllResults; + } + + public function getTotalsForAllResults() + { + return $this->totalsForAllResults; + } +} + +class Google_Service_Analytics_McfDataColumnHeaders extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnType; + public $dataType; + public $name; + + public function setColumnType($columnType) + { + $this->columnType = $columnType; + } + + public function getColumnType() + { + return $this->columnType; + } + + public function setDataType($dataType) + { + $this->dataType = $dataType; + } + + public function getDataType() + { + return $this->dataType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Analytics_McfDataProfileInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $internalWebPropertyId; + public $profileId; + public $profileName; + public $tableId; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setProfileName($profileName) + { + $this->profileName = $profileName; + } + + public function getProfileName() + { + return $this->profileName; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_McfDataQuery extends Google_Collection +{ + protected $collection_key = 'sort'; + protected $internal_gapi_mappings = array( + "endDate" => "end-date", + "maxResults" => "max-results", + "startDate" => "start-date", + "startIndex" => "start-index", + ); + public $dimensions; + public $endDate; + public $filters; + public $ids; + public $maxResults; + public $metrics; + public $samplingLevel; + public $segment; + public $sort; + public $startDate; + public $startIndex; + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setIds($ids) + { + $this->ids = $ids; + } + + public function getIds() + { + return $this->ids; + } + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setSamplingLevel($samplingLevel) + { + $this->samplingLevel = $samplingLevel; + } + + public function getSamplingLevel() + { + return $this->samplingLevel; + } + + public function setSegment($segment) + { + $this->segment = $segment; + } + + public function getSegment() + { + return $this->segment; + } + + public function setSort($sort) + { + $this->sort = $sort; + } + + public function getSort() + { + return $this->sort; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } +} + +class Google_Service_Analytics_McfDataRows extends Google_Collection +{ + protected $collection_key = 'conversionPathValue'; + protected $internal_gapi_mappings = array( + ); + protected $conversionPathValueType = 'Google_Service_Analytics_McfDataRowsConversionPathValue'; + protected $conversionPathValueDataType = 'array'; + public $primitiveValue; + + public function setConversionPathValue($conversionPathValue) + { + $this->conversionPathValue = $conversionPathValue; + } + + public function getConversionPathValue() + { + return $this->conversionPathValue; + } + + public function setPrimitiveValue($primitiveValue) + { + $this->primitiveValue = $primitiveValue; + } + + public function getPrimitiveValue() + { + return $this->primitiveValue; + } +} + +class Google_Service_Analytics_McfDataRowsConversionPathValue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $interactionType; + public $nodeValue; + + public function setInteractionType($interactionType) + { + $this->interactionType = $interactionType; + } + + public function getInteractionType() + { + return $this->interactionType; + } + + public function setNodeValue($nodeValue) + { + $this->nodeValue = $nodeValue; + } + + public function getNodeValue() + { + return $this->nodeValue; + } +} + +class Google_Service_Analytics_McfDataTotalsForAllResults extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Analytics_Profile extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + protected $childLinkType = 'Google_Service_Analytics_ProfileChildLink'; + protected $childLinkDataType = ''; + public $created; + public $currency; + public $defaultPage; + public $eCommerceTracking; + public $excludeQueryParameters; + public $id; + public $internalWebPropertyId; + public $kind; + public $name; + protected $parentLinkType = 'Google_Service_Analytics_ProfileParentLink'; + protected $parentLinkDataType = ''; + protected $permissionsType = 'Google_Service_Analytics_ProfilePermissions'; + protected $permissionsDataType = ''; + public $selfLink; + public $siteSearchCategoryParameters; + public $siteSearchQueryParameters; + public $stripSiteSearchCategoryParameters; + public $stripSiteSearchQueryParameters; + public $timezone; + public $type; + public $updated; + public $webPropertyId; + public $websiteUrl; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setChildLink(Google_Service_Analytics_ProfileChildLink $childLink) + { + $this->childLink = $childLink; + } + + public function getChildLink() + { + return $this->childLink; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setCurrency($currency) + { + $this->currency = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setDefaultPage($defaultPage) + { + $this->defaultPage = $defaultPage; + } + + public function getDefaultPage() + { + return $this->defaultPage; + } + + public function setECommerceTracking($eCommerceTracking) + { + $this->eCommerceTracking = $eCommerceTracking; + } + + public function getECommerceTracking() + { + return $this->eCommerceTracking; + } + + public function setExcludeQueryParameters($excludeQueryParameters) + { + $this->excludeQueryParameters = $excludeQueryParameters; + } + + public function getExcludeQueryParameters() + { + return $this->excludeQueryParameters; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParentLink(Google_Service_Analytics_ProfileParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setPermissions(Google_Service_Analytics_ProfilePermissions $permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSiteSearchCategoryParameters($siteSearchCategoryParameters) + { + $this->siteSearchCategoryParameters = $siteSearchCategoryParameters; + } + + public function getSiteSearchCategoryParameters() + { + return $this->siteSearchCategoryParameters; + } + + public function setSiteSearchQueryParameters($siteSearchQueryParameters) + { + $this->siteSearchQueryParameters = $siteSearchQueryParameters; + } + + public function getSiteSearchQueryParameters() + { + return $this->siteSearchQueryParameters; + } + + public function setStripSiteSearchCategoryParameters($stripSiteSearchCategoryParameters) + { + $this->stripSiteSearchCategoryParameters = $stripSiteSearchCategoryParameters; + } + + public function getStripSiteSearchCategoryParameters() + { + return $this->stripSiteSearchCategoryParameters; + } + + public function setStripSiteSearchQueryParameters($stripSiteSearchQueryParameters) + { + $this->stripSiteSearchQueryParameters = $stripSiteSearchQueryParameters; + } + + public function getStripSiteSearchQueryParameters() + { + return $this->stripSiteSearchQueryParameters; + } + + public function setTimezone($timezone) + { + $this->timezone = $timezone; + } + + public function getTimezone() + { + return $this->timezone; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } + + public function setWebsiteUrl($websiteUrl) + { + $this->websiteUrl = $websiteUrl; + } + + public function getWebsiteUrl() + { + return $this->websiteUrl; + } +} + +class Google_Service_Analytics_ProfileChildLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_ProfileFilterLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $filterRefType = 'Google_Service_Analytics_FilterRef'; + protected $filterRefDataType = ''; + public $id; + public $kind; + protected $profileRefType = 'Google_Service_Analytics_ProfileRef'; + protected $profileRefDataType = ''; + public $rank; + public $selfLink; + + public function setFilterRef(Google_Service_Analytics_FilterRef $filterRef) + { + $this->filterRef = $filterRef; + } + + public function getFilterRef() + { + return $this->filterRef; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProfileRef(Google_Service_Analytics_ProfileRef $profileRef) + { + $this->profileRef = $profileRef; + } + + public function getProfileRef() + { + return $this->profileRef; + } + + public function setRank($rank) + { + $this->rank = $rank; + } + + public function getRank() + { + return $this->rank; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Analytics_ProfileFilterLinks extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_ProfileFilterLink'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_ProfileParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_ProfilePermissions extends Google_Collection +{ + protected $collection_key = 'effective'; + protected $internal_gapi_mappings = array( + ); + public $effective; + + public function setEffective($effective) + { + $this->effective = $effective; + } + + public function getEffective() + { + return $this->effective; + } +} + +class Google_Service_Analytics_ProfileRef extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $href; + public $id; + public $internalWebPropertyId; + public $kind; + public $name; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_ProfileSummary extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_Profiles extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Profile'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_RealtimeData extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + protected $columnHeadersType = 'Google_Service_Analytics_RealtimeDataColumnHeaders'; + protected $columnHeadersDataType = 'array'; + public $id; + public $kind; + protected $profileInfoType = 'Google_Service_Analytics_RealtimeDataProfileInfo'; + protected $profileInfoDataType = ''; + protected $queryType = 'Google_Service_Analytics_RealtimeDataQuery'; + protected $queryDataType = ''; + public $rows; + public $selfLink; + public $totalResults; + public $totalsForAllResults; + + public function setColumnHeaders($columnHeaders) + { + $this->columnHeaders = $columnHeaders; + } + + public function getColumnHeaders() + { + return $this->columnHeaders; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProfileInfo(Google_Service_Analytics_RealtimeDataProfileInfo $profileInfo) + { + $this->profileInfo = $profileInfo; + } + + public function getProfileInfo() + { + return $this->profileInfo; + } + + public function setQuery(Google_Service_Analytics_RealtimeDataQuery $query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setTotalsForAllResults($totalsForAllResults) + { + $this->totalsForAllResults = $totalsForAllResults; + } + + public function getTotalsForAllResults() + { + return $this->totalsForAllResults; + } +} + +class Google_Service_Analytics_RealtimeDataColumnHeaders extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnType; + public $dataType; + public $name; + + public function setColumnType($columnType) + { + $this->columnType = $columnType; + } + + public function getColumnType() + { + return $this->columnType; + } + + public function setDataType($dataType) + { + $this->dataType = $dataType; + } + + public function getDataType() + { + return $this->dataType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Analytics_RealtimeDataProfileInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $internalWebPropertyId; + public $profileId; + public $profileName; + public $tableId; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setProfileName($profileName) + { + $this->profileName = $profileName; + } + + public function getProfileName() + { + return $this->profileName; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_RealtimeDataQuery extends Google_Collection +{ + protected $collection_key = 'sort'; + protected $internal_gapi_mappings = array( + "maxResults" => "max-results", + ); + public $dimensions; + public $filters; + public $ids; + public $maxResults; + public $metrics; + public $sort; + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setIds($ids) + { + $this->ids = $ids; + } + + public function getIds() + { + return $this->ids; + } + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setSort($sort) + { + $this->sort = $sort; + } + + public function getSort() + { + return $this->sort; + } +} + +class Google_Service_Analytics_RealtimeDataTotalsForAllResults extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Analytics_Segment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $created; + public $definition; + public $id; + public $kind; + public $name; + public $segmentId; + public $selfLink; + public $type; + public $updated; + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDefinition($definition) + { + $this->definition = $definition; + } + + public function getDefinition() + { + return $this->definition; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSegmentId($segmentId) + { + $this->segmentId = $segmentId; + } + + public function getSegmentId() + { + return $this->segmentId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Analytics_Segments extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Segment'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_UnsampledReport extends Google_Model +{ + protected $internal_gapi_mappings = array( + "endDate" => "end-date", + "startDate" => "start-date", + ); + public $accountId; + protected $cloudStorageDownloadDetailsType = 'Google_Service_Analytics_UnsampledReportCloudStorageDownloadDetails'; + protected $cloudStorageDownloadDetailsDataType = ''; + public $created; + public $dimensions; + public $downloadType; + protected $driveDownloadDetailsType = 'Google_Service_Analytics_UnsampledReportDriveDownloadDetails'; + protected $driveDownloadDetailsDataType = ''; + public $endDate; + public $filters; + public $id; + public $kind; + public $metrics; + public $profileId; + public $segment; + public $selfLink; + public $startDate; + public $status; + public $title; + public $updated; + public $webPropertyId; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setCloudStorageDownloadDetails(Google_Service_Analytics_UnsampledReportCloudStorageDownloadDetails $cloudStorageDownloadDetails) + { + $this->cloudStorageDownloadDetails = $cloudStorageDownloadDetails; + } + + public function getCloudStorageDownloadDetails() + { + return $this->cloudStorageDownloadDetails; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setDownloadType($downloadType) + { + $this->downloadType = $downloadType; + } + + public function getDownloadType() + { + return $this->downloadType; + } + + public function setDriveDownloadDetails(Google_Service_Analytics_UnsampledReportDriveDownloadDetails $driveDownloadDetails) + { + $this->driveDownloadDetails = $driveDownloadDetails; + } + + public function getDriveDownloadDetails() + { + return $this->driveDownloadDetails; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setSegment($segment) + { + $this->segment = $segment; + } + + public function getSegment() + { + return $this->segment; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setWebPropertyId($webPropertyId) + { + $this->webPropertyId = $webPropertyId; + } + + public function getWebPropertyId() + { + return $this->webPropertyId; + } +} + +class Google_Service_Analytics_UnsampledReportCloudStorageDownloadDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bucketId; + public $objectId; + + public function setBucketId($bucketId) + { + $this->bucketId = $bucketId; + } + + public function getBucketId() + { + return $this->bucketId; + } + + public function setObjectId($objectId) + { + $this->objectId = $objectId; + } + + public function getObjectId() + { + return $this->objectId; + } +} + +class Google_Service_Analytics_UnsampledReportDriveDownloadDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $documentId; + + public function setDocumentId($documentId) + { + $this->documentId = $documentId; + } + + public function getDocumentId() + { + return $this->documentId; + } +} + +class Google_Service_Analytics_UnsampledReports extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_UnsampledReport'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_Upload extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $customDataSourceId; + public $errors; + public $id; + public $kind; + public $status; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setCustomDataSourceId($customDataSourceId) + { + $this->customDataSourceId = $customDataSourceId; + } + + public function getCustomDataSourceId() + { + return $this->customDataSourceId; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Analytics_Uploads extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Upload'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_Analytics_UserRef extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $email; + public $id; + public $kind; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Analytics_WebPropertyRef extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $href; + public $id; + public $internalWebPropertyId; + public $kind; + public $name; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Analytics_WebPropertySummary extends Google_Collection +{ + protected $collection_key = 'profiles'; + protected $internal_gapi_mappings = array( + ); + public $id; + public $internalWebPropertyId; + public $kind; + public $level; + public $name; + protected $profilesType = 'Google_Service_Analytics_ProfileSummary'; + protected $profilesDataType = 'array'; + public $websiteUrl; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLevel($level) + { + $this->level = $level; + } + + public function getLevel() + { + return $this->level; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProfiles($profiles) + { + $this->profiles = $profiles; + } + + public function getProfiles() + { + return $this->profiles; + } + + public function setWebsiteUrl($websiteUrl) + { + $this->websiteUrl = $websiteUrl; + } + + public function getWebsiteUrl() + { + return $this->websiteUrl; + } +} + +class Google_Service_Analytics_Webproperties extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Analytics_Webproperty'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextLink; + public $previousLink; + public $startIndex; + public $totalResults; + public $username; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setPreviousLink($previousLink) + { + $this->previousLink = $previousLink; + } + + public function getPreviousLink() + { + return $this->previousLink; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } +} + +class Google_Service_Analytics_Webproperty extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + protected $childLinkType = 'Google_Service_Analytics_WebpropertyChildLink'; + protected $childLinkDataType = ''; + public $created; + public $defaultProfileId; + public $id; + public $industryVertical; + public $internalWebPropertyId; + public $kind; + public $level; + public $name; + protected $parentLinkType = 'Google_Service_Analytics_WebpropertyParentLink'; + protected $parentLinkDataType = ''; + protected $permissionsType = 'Google_Service_Analytics_WebpropertyPermissions'; + protected $permissionsDataType = ''; + public $profileCount; + public $selfLink; + public $updated; + public $websiteUrl; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setChildLink(Google_Service_Analytics_WebpropertyChildLink $childLink) + { + $this->childLink = $childLink; + } + + public function getChildLink() + { + return $this->childLink; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDefaultProfileId($defaultProfileId) + { + $this->defaultProfileId = $defaultProfileId; + } + + public function getDefaultProfileId() + { + return $this->defaultProfileId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIndustryVertical($industryVertical) + { + $this->industryVertical = $industryVertical; + } + + public function getIndustryVertical() + { + return $this->industryVertical; + } + + public function setInternalWebPropertyId($internalWebPropertyId) + { + $this->internalWebPropertyId = $internalWebPropertyId; + } + + public function getInternalWebPropertyId() + { + return $this->internalWebPropertyId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLevel($level) + { + $this->level = $level; + } + + public function getLevel() + { + return $this->level; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParentLink(Google_Service_Analytics_WebpropertyParentLink $parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setPermissions(Google_Service_Analytics_WebpropertyPermissions $permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } + + public function setProfileCount($profileCount) + { + $this->profileCount = $profileCount; + } + + public function getProfileCount() + { + return $this->profileCount; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setWebsiteUrl($websiteUrl) + { + $this->websiteUrl = $websiteUrl; + } + + public function getWebsiteUrl() + { + return $this->websiteUrl; + } +} + +class Google_Service_Analytics_WebpropertyChildLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_WebpropertyParentLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Analytics_WebpropertyPermissions extends Google_Collection +{ + protected $collection_key = 'effective'; + protected $internal_gapi_mappings = array( + ); + public $effective; + + public function setEffective($effective) + { + $this->effective = $effective; + } + + public function getEffective() + { + return $this->effective; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/AndroidPublisher.php b/vendor/google/apiclient/src/Google/Service/AndroidPublisher.php new file mode 100644 index 0000000..462f43c --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/AndroidPublisher.php @@ -0,0 +1,3580 @@ + + * Lets Android application developers access their Google Play accounts. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_AndroidPublisher extends Google_Service +{ + /** View and manage your Google Play Android Developer account. */ + const ANDROIDPUBLISHER = "https://www.googleapis.com/auth/androidpublisher"; + + public $edits; + public $edits_apklistings; + public $edits_apks; + public $edits_details; + public $edits_expansionfiles; + public $edits_images; + public $edits_listings; + public $edits_testers; + public $edits_tracks; + public $inappproducts; + public $purchases_products; + public $purchases_subscriptions; + + + /** + * Constructs the internal representation of the AndroidPublisher service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'androidpublisher/v2/applications/'; + $this->version = 'v2'; + $this->serviceName = 'androidpublisher'; + + $this->edits = new Google_Service_AndroidPublisher_Edits_Resource( + $this, + $this->serviceName, + 'edits', + array( + 'methods' => array( + 'commit' => array( + 'path' => '{packageName}/edits/{editId}:commit', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{packageName}/edits/{editId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{packageName}/edits/{editId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{packageName}/edits', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'validate' => array( + 'path' => '{packageName}/edits/{editId}:validate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_apklistings = new Google_Service_AndroidPublisher_EditsApklistings_Resource( + $this, + $this->serviceName, + 'apklistings', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'deleteall' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/listings', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/listings', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_apks = new Google_Service_AndroidPublisher_EditsApks_Resource( + $this, + $this->serviceName, + 'apks', + array( + 'methods' => array( + 'list' => array( + 'path' => '{packageName}/edits/{editId}/apks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'upload' => array( + 'path' => '{packageName}/edits/{editId}/apks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_details = new Google_Service_AndroidPublisher_EditsDetails_Resource( + $this, + $this->serviceName, + 'details', + array( + 'methods' => array( + 'get' => array( + 'path' => '{packageName}/edits/{editId}/details', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{packageName}/edits/{editId}/details', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{packageName}/edits/{editId}/details', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_expansionfiles = new Google_Service_AndroidPublisher_EditsExpansionfiles_Resource( + $this, + $this->serviceName, + 'expansionfiles', + array( + 'methods' => array( + 'get' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'expansionFileType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'expansionFileType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'expansionFileType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'upload' => array( + 'path' => '{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'apkVersionCode' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'expansionFileType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_images = new Google_Service_AndroidPublisher_EditsImages_Resource( + $this, + $this->serviceName, + 'images', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'imageType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'imageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'deleteall' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}/{imageType}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'imageType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}/{imageType}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'imageType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'upload' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}/{imageType}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'imageType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_listings = new Google_Service_AndroidPublisher_EditsListings_Resource( + $this, + $this->serviceName, + 'listings', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'deleteall' => array( + 'path' => '{packageName}/edits/{editId}/listings', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{packageName}/edits/{editId}/listings', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{packageName}/edits/{editId}/listings/{language}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_testers = new Google_Service_AndroidPublisher_EditsTesters_Resource( + $this, + $this->serviceName, + 'testers', + array( + 'methods' => array( + 'get' => array( + 'path' => '{packageName}/edits/{editId}/testers/{track}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'track' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{packageName}/edits/{editId}/testers/{track}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'track' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{packageName}/edits/{editId}/testers/{track}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'track' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->edits_tracks = new Google_Service_AndroidPublisher_EditsTracks_Resource( + $this, + $this->serviceName, + 'tracks', + array( + 'methods' => array( + 'get' => array( + 'path' => '{packageName}/edits/{editId}/tracks/{track}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'track' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{packageName}/edits/{editId}/tracks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{packageName}/edits/{editId}/tracks/{track}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'track' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{packageName}/edits/{editId}/tracks/{track}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'editId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'track' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->inappproducts = new Google_Service_AndroidPublisher_Inappproducts_Resource( + $this, + $this->serviceName, + 'inappproducts', + array( + 'methods' => array( + 'batch' => array( + 'path' => 'inappproducts/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => '{packageName}/inappproducts/{sku}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sku' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{packageName}/inappproducts/{sku}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sku' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{packageName}/inappproducts', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoConvertMissingPrices' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => '{packageName}/inappproducts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{packageName}/inappproducts/{sku}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sku' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoConvertMissingPrices' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => '{packageName}/inappproducts/{sku}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sku' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoConvertMissingPrices' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->purchases_products = new Google_Service_AndroidPublisher_PurchasesProducts_Resource( + $this, + $this->serviceName, + 'products', + array( + 'methods' => array( + 'get' => array( + 'path' => '{packageName}/purchases/products/{productId}/tokens/{token}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->purchases_subscriptions = new Google_Service_AndroidPublisher_PurchasesSubscriptions_Resource( + $this, + $this->serviceName, + 'subscriptions', + array( + 'methods' => array( + 'cancel' => array( + 'path' => '{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'defer' => array( + 'path' => '{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'refund' => array( + 'path' => '{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'revoke' => array( + 'path' => '{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke', + 'httpMethod' => 'POST', + 'parameters' => array( + 'packageName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'token' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "edits" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $edits = $androidpublisherService->edits; + * + */ +class Google_Service_AndroidPublisher_Edits_Resource extends Google_Service_Resource +{ + + /** + * Commits/applies the changes made in this edit back to the app. (edits.commit) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppEdit + */ + public function commit($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('commit', array($params), "Google_Service_AndroidPublisher_AppEdit"); + } + /** + * Deletes an edit for an app. Creating a new edit will automatically delete any + * of your previous edits so this method need only be called if you want to + * preemptively abandon an edit. (edits.delete) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + */ + public function delete($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns information about the edit specified. Calls will fail if the edit is + * no long active (e.g. has been deleted, superseded or expired). (edits.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppEdit + */ + public function get($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_AppEdit"); + } + /** + * Creates a new edit for an app, populated with the app's current state. + * (edits.insert) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param Google_AppEdit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppEdit + */ + public function insert($packageName, Google_Service_AndroidPublisher_AppEdit $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AndroidPublisher_AppEdit"); + } + /** + * Checks that the edit can be successfully committed. The edit's changes are + * not applied to the live app. (edits.validate) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppEdit + */ + public function validate($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('validate', array($params), "Google_Service_AndroidPublisher_AppEdit"); + } +} + +/** + * The "apklistings" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $apklistings = $androidpublisherService->apklistings; + * + */ +class Google_Service_AndroidPublisher_EditsApklistings_Resource extends Google_Service_Resource +{ + + /** + * Deletes the APK-specific localized listing for a specified APK and language + * code. (apklistings.delete) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The APK version code whose APK-specific listings should be read or modified. + * @param string $language + * The language code (a BCP-47 language tag) of the APK-specific localized listing to read or + * modify. For example, to select Austrian German, pass "de-AT". + * @param array $optParams Optional parameters. + */ + public function delete($packageName, $editId, $apkVersionCode, $language, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'language' => $language); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Deletes all the APK-specific localized listings for a specified APK. + * (apklistings.deleteall) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The APK version code whose APK-specific listings should be read or modified. + * @param array $optParams Optional parameters. + */ + public function deleteall($packageName, $editId, $apkVersionCode, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode); + $params = array_merge($params, $optParams); + return $this->call('deleteall', array($params)); + } + /** + * Fetches the APK-specific localized listing for a specified APK and language + * code. (apklistings.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The APK version code whose APK-specific listings should be read or modified. + * @param string $language + * The language code (a BCP-47 language tag) of the APK-specific localized listing to read or + * modify. For example, to select Austrian German, pass "de-AT". + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ApkListing + */ + public function get($packageName, $editId, $apkVersionCode, $language, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'language' => $language); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_ApkListing"); + } + /** + * Lists all the APK-specific localized listings for a specified APK. + * (apklistings.listEditsApklistings) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The APK version code whose APK-specific listings should be read or modified. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ApkListingsListResponse + */ + public function listEditsApklistings($packageName, $editId, $apkVersionCode, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AndroidPublisher_ApkListingsListResponse"); + } + /** + * Updates or creates the APK-specific localized listing for a specified APK and + * language code. This method supports patch semantics. (apklistings.patch) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The APK version code whose APK-specific listings should be read or modified. + * @param string $language + * The language code (a BCP-47 language tag) of the APK-specific localized listing to read or + * modify. For example, to select Austrian German, pass "de-AT". + * @param Google_ApkListing $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ApkListing + */ + public function patch($packageName, $editId, $apkVersionCode, $language, Google_Service_AndroidPublisher_ApkListing $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'language' => $language, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_ApkListing"); + } + /** + * Updates or creates the APK-specific localized listing for a specified APK and + * language code. (apklistings.update) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The APK version code whose APK-specific listings should be read or modified. + * @param string $language + * The language code (a BCP-47 language tag) of the APK-specific localized listing to read or + * modify. For example, to select Austrian German, pass "de-AT". + * @param Google_ApkListing $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ApkListing + */ + public function update($packageName, $editId, $apkVersionCode, $language, Google_Service_AndroidPublisher_ApkListing $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'language' => $language, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_ApkListing"); + } +} +/** + * The "apks" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $apks = $androidpublisherService->apks; + * + */ +class Google_Service_AndroidPublisher_EditsApks_Resource extends Google_Service_Resource +{ + + /** + * (apks.listEditsApks) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ApksListResponse + */ + public function listEditsApks($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AndroidPublisher_ApksListResponse"); + } + /** + * (apks.upload) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Apk + */ + public function upload($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('upload', array($params), "Google_Service_AndroidPublisher_Apk"); + } +} +/** + * The "details" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $details = $androidpublisherService->details; + * + */ +class Google_Service_AndroidPublisher_EditsDetails_Resource extends Google_Service_Resource +{ + + /** + * Fetches app details for this edit. This includes the default language and + * developer support contact information. (details.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppDetails + */ + public function get($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_AppDetails"); + } + /** + * Updates app details for this edit. This method supports patch semantics. + * (details.patch) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param Google_AppDetails $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppDetails + */ + public function patch($packageName, $editId, Google_Service_AndroidPublisher_AppDetails $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_AppDetails"); + } + /** + * Updates app details for this edit. (details.update) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param Google_AppDetails $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_AppDetails + */ + public function update($packageName, $editId, Google_Service_AndroidPublisher_AppDetails $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_AppDetails"); + } +} +/** + * The "expansionfiles" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $expansionfiles = $androidpublisherService->expansionfiles; + * + */ +class Google_Service_AndroidPublisher_EditsExpansionfiles_Resource extends Google_Service_Resource +{ + + /** + * Fetches the Expansion File configuration for the APK specified. + * (expansionfiles.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The version code of the APK whose Expansion File configuration is being read or modified. + * @param string $expansionFileType + * + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ExpansionFile + */ + public function get($packageName, $editId, $apkVersionCode, $expansionFileType, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'expansionFileType' => $expansionFileType); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_ExpansionFile"); + } + /** + * Updates the APK's Expansion File configuration to reference another APK's + * Expansion Files. To add a new Expansion File use the Upload method. This + * method supports patch semantics. (expansionfiles.patch) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The version code of the APK whose Expansion File configuration is being read or modified. + * @param string $expansionFileType + * + * @param Google_ExpansionFile $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ExpansionFile + */ + public function patch($packageName, $editId, $apkVersionCode, $expansionFileType, Google_Service_AndroidPublisher_ExpansionFile $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'expansionFileType' => $expansionFileType, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_ExpansionFile"); + } + /** + * Updates the APK's Expansion File configuration to reference another APK's + * Expansion Files. To add a new Expansion File use the Upload method. + * (expansionfiles.update) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The version code of the APK whose Expansion File configuration is being read or modified. + * @param string $expansionFileType + * + * @param Google_ExpansionFile $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ExpansionFile + */ + public function update($packageName, $editId, $apkVersionCode, $expansionFileType, Google_Service_AndroidPublisher_ExpansionFile $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'expansionFileType' => $expansionFileType, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_ExpansionFile"); + } + /** + * Uploads and attaches a new Expansion File to the APK specified. + * (expansionfiles.upload) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param int $apkVersionCode + * The version code of the APK whose Expansion File configuration is being read or modified. + * @param string $expansionFileType + * + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ExpansionFilesUploadResponse + */ + public function upload($packageName, $editId, $apkVersionCode, $expansionFileType, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'apkVersionCode' => $apkVersionCode, 'expansionFileType' => $expansionFileType); + $params = array_merge($params, $optParams); + return $this->call('upload', array($params), "Google_Service_AndroidPublisher_ExpansionFilesUploadResponse"); + } +} +/** + * The "images" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $images = $androidpublisherService->images; + * + */ +class Google_Service_AndroidPublisher_EditsImages_Resource extends Google_Service_Resource +{ + + /** + * Deletes the image (specified by id) from the edit. (images.delete) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing whose images are to read or + * modified. For example, to select Austrian German, pass "de-AT". + * @param string $imageType + * + * @param string $imageId + * Unique identifier an image within the set of images attached to this edit. + * @param array $optParams Optional parameters. + */ + public function delete($packageName, $editId, $language, $imageType, $imageId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language, 'imageType' => $imageType, 'imageId' => $imageId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Deletes all images for the specified language and image type. + * (images.deleteall) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing whose images are to read or + * modified. For example, to select Austrian German, pass "de-AT". + * @param string $imageType + * + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ImagesDeleteAllResponse + */ + public function deleteall($packageName, $editId, $language, $imageType, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language, 'imageType' => $imageType); + $params = array_merge($params, $optParams); + return $this->call('deleteall', array($params), "Google_Service_AndroidPublisher_ImagesDeleteAllResponse"); + } + /** + * Lists all images for the specified language and image type. + * (images.listEditsImages) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing whose images are to read or + * modified. For example, to select Austrian German, pass "de-AT". + * @param string $imageType + * + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ImagesListResponse + */ + public function listEditsImages($packageName, $editId, $language, $imageType, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language, 'imageType' => $imageType); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AndroidPublisher_ImagesListResponse"); + } + /** + * Uploads a new image and adds it to the list of images for the specified + * language and image type. (images.upload) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing whose images are to read or + * modified. For example, to select Austrian German, pass "de-AT". + * @param string $imageType + * + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ImagesUploadResponse + */ + public function upload($packageName, $editId, $language, $imageType, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language, 'imageType' => $imageType); + $params = array_merge($params, $optParams); + return $this->call('upload', array($params), "Google_Service_AndroidPublisher_ImagesUploadResponse"); + } +} +/** + * The "listings" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $listings = $androidpublisherService->listings; + * + */ +class Google_Service_AndroidPublisher_EditsListings_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified localized store listing from an edit. (listings.delete) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing to read or modify. For + * example, to select Austrian German, pass "de-AT". + * @param array $optParams Optional parameters. + */ + public function delete($packageName, $editId, $language, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Deletes all localized listings from an edit. (listings.deleteall) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + */ + public function deleteall($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('deleteall', array($params)); + } + /** + * Fetches information about a localized store listing. (listings.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing to read or modify. For + * example, to select Austrian German, pass "de-AT". + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Listing + */ + public function get($packageName, $editId, $language, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_Listing"); + } + /** + * Returns all of the localized store listings attached to this edit. + * (listings.listEditsListings) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ListingsListResponse + */ + public function listEditsListings($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AndroidPublisher_ListingsListResponse"); + } + /** + * Creates or updates a localized store listing. This method supports patch + * semantics. (listings.patch) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing to read or modify. For + * example, to select Austrian German, pass "de-AT". + * @param Google_Listing $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Listing + */ + public function patch($packageName, $editId, $language, Google_Service_AndroidPublisher_Listing $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_Listing"); + } + /** + * Creates or updates a localized store listing. (listings.update) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $language + * The language code (a BCP-47 language tag) of the localized listing to read or modify. For + * example, to select Austrian German, pass "de-AT". + * @param Google_Listing $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Listing + */ + public function update($packageName, $editId, $language, Google_Service_AndroidPublisher_Listing $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'language' => $language, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_Listing"); + } +} +/** + * The "testers" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $testers = $androidpublisherService->testers; + * + */ +class Google_Service_AndroidPublisher_EditsTesters_Resource extends Google_Service_Resource +{ + + /** + * (testers.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $track + * + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Testers + */ + public function get($packageName, $editId, $track, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'track' => $track); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_Testers"); + } + /** + * (testers.patch) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $track + * + * @param Google_Testers $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Testers + */ + public function patch($packageName, $editId, $track, Google_Service_AndroidPublisher_Testers $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'track' => $track, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_Testers"); + } + /** + * (testers.update) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $track + * + * @param Google_Testers $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Testers + */ + public function update($packageName, $editId, $track, Google_Service_AndroidPublisher_Testers $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'track' => $track, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_Testers"); + } +} +/** + * The "tracks" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $tracks = $androidpublisherService->tracks; + * + */ +class Google_Service_AndroidPublisher_EditsTracks_Resource extends Google_Service_Resource +{ + + /** + * Fetches the track configuration for the specified track type. Includes the + * APK version codes that are in this track. (tracks.get) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $track + * The track type to read or modify. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Track + */ + public function get($packageName, $editId, $track, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'track' => $track); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_Track"); + } + /** + * Lists all the track configurations for this edit. (tracks.listEditsTracks) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_TracksListResponse + */ + public function listEditsTracks($packageName, $editId, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AndroidPublisher_TracksListResponse"); + } + /** + * Updates the track configuration for the specified track type. This method + * supports patch semantics. (tracks.patch) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $track + * The track type to read or modify. + * @param Google_Track $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Track + */ + public function patch($packageName, $editId, $track, Google_Service_AndroidPublisher_Track $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'track' => $track, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_Track"); + } + /** + * Updates the track configuration for the specified track type. (tracks.update) + * + * @param string $packageName + * Unique identifier for the Android app that is being updated; for example, "com.spiffygame". + * @param string $editId + * Unique identifier for this edit. + * @param string $track + * The track type to read or modify. + * @param Google_Track $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_Track + */ + public function update($packageName, $editId, $track, Google_Service_AndroidPublisher_Track $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'editId' => $editId, 'track' => $track, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_Track"); + } +} + +/** + * The "inappproducts" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $inappproducts = $androidpublisherService->inappproducts; + * + */ +class Google_Service_AndroidPublisher_Inappproducts_Resource extends Google_Service_Resource +{ + + /** + * (inappproducts.batch) + * + * @param Google_InappproductsBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_InappproductsBatchResponse + */ + public function batch(Google_Service_AndroidPublisher_InappproductsBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batch', array($params), "Google_Service_AndroidPublisher_InappproductsBatchResponse"); + } + /** + * Delete an in-app product for an app. (inappproducts.delete) + * + * @param string $packageName + * Unique identifier for the Android app with the in-app product; for example, "com.spiffygame". + * @param string $sku + * Unique identifier for the in-app product. + * @param array $optParams Optional parameters. + */ + public function delete($packageName, $sku, $optParams = array()) + { + $params = array('packageName' => $packageName, 'sku' => $sku); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns information about the in-app product specified. (inappproducts.get) + * + * @param string $packageName + * + * @param string $sku + * Unique identifier for the in-app product. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_InAppProduct + */ + public function get($packageName, $sku, $optParams = array()) + { + $params = array('packageName' => $packageName, 'sku' => $sku); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_InAppProduct"); + } + /** + * Creates a new in-app product for an app. (inappproducts.insert) + * + * @param string $packageName + * Unique identifier for the Android app; for example, "com.spiffygame". + * @param Google_InAppProduct $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool autoConvertMissingPrices + * If true the prices for all regions targeted by the parent app that don't have a price specified + * for this in-app product will be auto converted to the target currency based on the default + * price. Defaults to false. + * @return Google_Service_AndroidPublisher_InAppProduct + */ + public function insert($packageName, Google_Service_AndroidPublisher_InAppProduct $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_AndroidPublisher_InAppProduct"); + } + /** + * List all the in-app products for an Android app, both subscriptions and + * managed in-app products.. (inappproducts.listInappproducts) + * + * @param string $packageName + * Unique identifier for the Android app with in-app products; for example, "com.spiffygame". + * @param array $optParams Optional parameters. + * + * @opt_param string token + * + * @opt_param string startIndex + * + * @opt_param string maxResults + * + * @return Google_Service_AndroidPublisher_InappproductsListResponse + */ + public function listInappproducts($packageName, $optParams = array()) + { + $params = array('packageName' => $packageName); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AndroidPublisher_InappproductsListResponse"); + } + /** + * Updates the details of an in-app product. This method supports patch + * semantics. (inappproducts.patch) + * + * @param string $packageName + * Unique identifier for the Android app with the in-app product; for example, "com.spiffygame". + * @param string $sku + * Unique identifier for the in-app product. + * @param Google_InAppProduct $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool autoConvertMissingPrices + * If true the prices for all regions targeted by the parent app that don't have a price specified + * for this in-app product will be auto converted to the target currency based on the default + * price. Defaults to false. + * @return Google_Service_AndroidPublisher_InAppProduct + */ + public function patch($packageName, $sku, Google_Service_AndroidPublisher_InAppProduct $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'sku' => $sku, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_AndroidPublisher_InAppProduct"); + } + /** + * Updates the details of an in-app product. (inappproducts.update) + * + * @param string $packageName + * Unique identifier for the Android app with the in-app product; for example, "com.spiffygame". + * @param string $sku + * Unique identifier for the in-app product. + * @param Google_InAppProduct $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool autoConvertMissingPrices + * If true the prices for all regions targeted by the parent app that don't have a price specified + * for this in-app product will be auto converted to the target currency based on the default + * price. Defaults to false. + * @return Google_Service_AndroidPublisher_InAppProduct + */ + public function update($packageName, $sku, Google_Service_AndroidPublisher_InAppProduct $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'sku' => $sku, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AndroidPublisher_InAppProduct"); + } +} + +/** + * The "purchases" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $purchases = $androidpublisherService->purchases; + * + */ +class Google_Service_AndroidPublisher_Purchases_Resource extends Google_Service_Resource +{ + +} + +/** + * The "products" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $products = $androidpublisherService->products; + * + */ +class Google_Service_AndroidPublisher_PurchasesProducts_Resource extends Google_Service_Resource +{ + + /** + * Checks the purchase and consumption status of an inapp item. (products.get) + * + * @param string $packageName + * The package name of the application the inapp product was sold in (for example, + * 'com.some.thing'). + * @param string $productId + * The inapp product SKU (for example, 'com.some.thing.inapp1'). + * @param string $token + * The token provided to the user's device when the inapp product was purchased. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_ProductPurchase + */ + public function get($packageName, $productId, $token, $optParams = array()) + { + $params = array('packageName' => $packageName, 'productId' => $productId, 'token' => $token); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_ProductPurchase"); + } +} +/** + * The "subscriptions" collection of methods. + * Typical usage is: + * + * $androidpublisherService = new Google_Service_AndroidPublisher(...); + * $subscriptions = $androidpublisherService->subscriptions; + * + */ +class Google_Service_AndroidPublisher_PurchasesSubscriptions_Resource extends Google_Service_Resource +{ + + /** + * Cancels a user's subscription purchase. The subscription remains valid until + * its expiration time. (subscriptions.cancel) + * + * @param string $packageName + * The package name of the application for which this subscription was purchased (for example, + * 'com.some.thing'). + * @param string $subscriptionId + * The purchased subscription ID (for example, 'monthly001'). + * @param string $token + * The token provided to the user's device when the subscription was purchased. + * @param array $optParams Optional parameters. + */ + public function cancel($packageName, $subscriptionId, $token, $optParams = array()) + { + $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token); + $params = array_merge($params, $optParams); + return $this->call('cancel', array($params)); + } + /** + * Defers a user's subscription purchase until a specified future expiration + * time. (subscriptions.defer) + * + * @param string $packageName + * The package name of the application for which this subscription was purchased (for example, + * 'com.some.thing'). + * @param string $subscriptionId + * The purchased subscription ID (for example, 'monthly001'). + * @param string $token + * The token provided to the user's device when the subscription was purchased. + * @param Google_SubscriptionPurchasesDeferRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_SubscriptionPurchasesDeferResponse + */ + public function defer($packageName, $subscriptionId, $token, Google_Service_AndroidPublisher_SubscriptionPurchasesDeferRequest $postBody, $optParams = array()) + { + $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('defer', array($params), "Google_Service_AndroidPublisher_SubscriptionPurchasesDeferResponse"); + } + /** + * Checks whether a user's subscription purchase is valid and returns its expiry + * time. (subscriptions.get) + * + * @param string $packageName + * The package name of the application for which this subscription was purchased (for example, + * 'com.some.thing'). + * @param string $subscriptionId + * The purchased subscription ID (for example, 'monthly001'). + * @param string $token + * The token provided to the user's device when the subscription was purchased. + * @param array $optParams Optional parameters. + * @return Google_Service_AndroidPublisher_SubscriptionPurchase + */ + public function get($packageName, $subscriptionId, $token, $optParams = array()) + { + $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AndroidPublisher_SubscriptionPurchase"); + } + /** + * Refunds a user's subscription purchase, but the subscription remains valid + * until its expiration time and it will continue to recur. + * (subscriptions.refund) + * + * @param string $packageName + * The package name of the application for which this subscription was purchased (for example, + * 'com.some.thing'). + * @param string $subscriptionId + * The purchased subscription ID (for example, 'monthly001'). + * @param string $token + * The token provided to the user's device when the subscription was purchased. + * @param array $optParams Optional parameters. + */ + public function refund($packageName, $subscriptionId, $token, $optParams = array()) + { + $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token); + $params = array_merge($params, $optParams); + return $this->call('refund', array($params)); + } + /** + * Refunds and immediately revokes a user's subscription purchase. Access to the + * subscription will be terminated immediately and it will stop recurring. + * (subscriptions.revoke) + * + * @param string $packageName + * The package name of the application for which this subscription was purchased (for example, + * 'com.some.thing'). + * @param string $subscriptionId + * The purchased subscription ID (for example, 'monthly001'). + * @param string $token + * The token provided to the user's device when the subscription was purchased. + * @param array $optParams Optional parameters. + */ + public function revoke($packageName, $subscriptionId, $token, $optParams = array()) + { + $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token); + $params = array_merge($params, $optParams); + return $this->call('revoke', array($params)); + } +} + + + + +class Google_Service_AndroidPublisher_Apk extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $binaryType = 'Google_Service_AndroidPublisher_ApkBinary'; + protected $binaryDataType = ''; + public $versionCode; + + public function setBinary(Google_Service_AndroidPublisher_ApkBinary $binary) + { + $this->binary = $binary; + } + + public function getBinary() + { + return $this->binary; + } + + public function setVersionCode($versionCode) + { + $this->versionCode = $versionCode; + } + + public function getVersionCode() + { + return $this->versionCode; + } +} + +class Google_Service_AndroidPublisher_ApkBinary extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $sha1; + + public function setSha1($sha1) + { + $this->sha1 = $sha1; + } + + public function getSha1() + { + return $this->sha1; + } +} + +class Google_Service_AndroidPublisher_ApkListing extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $language; + public $recentChanges; + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setRecentChanges($recentChanges) + { + $this->recentChanges = $recentChanges; + } + + public function getRecentChanges() + { + return $this->recentChanges; + } +} + +class Google_Service_AndroidPublisher_ApkListingsListResponse extends Google_Collection +{ + protected $collection_key = 'listings'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $listingsType = 'Google_Service_AndroidPublisher_ApkListing'; + protected $listingsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setListings($listings) + { + $this->listings = $listings; + } + + public function getListings() + { + return $this->listings; + } +} + +class Google_Service_AndroidPublisher_ApksListResponse extends Google_Collection +{ + protected $collection_key = 'apks'; + protected $internal_gapi_mappings = array( + ); + protected $apksType = 'Google_Service_AndroidPublisher_Apk'; + protected $apksDataType = 'array'; + public $kind; + + public function setApks($apks) + { + $this->apks = $apks; + } + + public function getApks() + { + return $this->apks; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AndroidPublisher_AppDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $contactEmail; + public $contactPhone; + public $contactWebsite; + public $defaultLanguage; + + public function setContactEmail($contactEmail) + { + $this->contactEmail = $contactEmail; + } + + public function getContactEmail() + { + return $this->contactEmail; + } + + public function setContactPhone($contactPhone) + { + $this->contactPhone = $contactPhone; + } + + public function getContactPhone() + { + return $this->contactPhone; + } + + public function setContactWebsite($contactWebsite) + { + $this->contactWebsite = $contactWebsite; + } + + public function getContactWebsite() + { + return $this->contactWebsite; + } + + public function setDefaultLanguage($defaultLanguage) + { + $this->defaultLanguage = $defaultLanguage; + } + + public function getDefaultLanguage() + { + return $this->defaultLanguage; + } +} + +class Google_Service_AndroidPublisher_AppEdit extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $expiryTimeSeconds; + public $id; + + public function setExpiryTimeSeconds($expiryTimeSeconds) + { + $this->expiryTimeSeconds = $expiryTimeSeconds; + } + + public function getExpiryTimeSeconds() + { + return $this->expiryTimeSeconds; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_AndroidPublisher_ExpansionFile extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $fileSize; + public $referencesVersion; + + public function setFileSize($fileSize) + { + $this->fileSize = $fileSize; + } + + public function getFileSize() + { + return $this->fileSize; + } + + public function setReferencesVersion($referencesVersion) + { + $this->referencesVersion = $referencesVersion; + } + + public function getReferencesVersion() + { + return $this->referencesVersion; + } +} + +class Google_Service_AndroidPublisher_ExpansionFilesUploadResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $expansionFileType = 'Google_Service_AndroidPublisher_ExpansionFile'; + protected $expansionFileDataType = ''; + + public function setExpansionFile(Google_Service_AndroidPublisher_ExpansionFile $expansionFile) + { + $this->expansionFile = $expansionFile; + } + + public function getExpansionFile() + { + return $this->expansionFile; + } +} + +class Google_Service_AndroidPublisher_Image extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $sha1; + public $url; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setSha1($sha1) + { + $this->sha1 = $sha1; + } + + public function getSha1() + { + return $this->sha1; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_AndroidPublisher_ImagesDeleteAllResponse extends Google_Collection +{ + protected $collection_key = 'deleted'; + protected $internal_gapi_mappings = array( + ); + protected $deletedType = 'Google_Service_AndroidPublisher_Image'; + protected $deletedDataType = 'array'; + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } +} + +class Google_Service_AndroidPublisher_ImagesListResponse extends Google_Collection +{ + protected $collection_key = 'images'; + protected $internal_gapi_mappings = array( + ); + protected $imagesType = 'Google_Service_AndroidPublisher_Image'; + protected $imagesDataType = 'array'; + + public function setImages($images) + { + $this->images = $images; + } + + public function getImages() + { + return $this->images; + } +} + +class Google_Service_AndroidPublisher_ImagesUploadResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $imageType = 'Google_Service_AndroidPublisher_Image'; + protected $imageDataType = ''; + + public function setImage(Google_Service_AndroidPublisher_Image $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } +} + +class Google_Service_AndroidPublisher_InAppProduct extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $defaultLanguage; + protected $defaultPriceType = 'Google_Service_AndroidPublisher_Price'; + protected $defaultPriceDataType = ''; + protected $listingsType = 'Google_Service_AndroidPublisher_InAppProductListing'; + protected $listingsDataType = 'map'; + public $packageName; + protected $pricesType = 'Google_Service_AndroidPublisher_Price'; + protected $pricesDataType = 'map'; + public $purchaseType; + protected $seasonType = 'Google_Service_AndroidPublisher_Season'; + protected $seasonDataType = ''; + public $sku; + public $status; + public $subscriptionPeriod; + public $trialPeriod; + + public function setDefaultLanguage($defaultLanguage) + { + $this->defaultLanguage = $defaultLanguage; + } + + public function getDefaultLanguage() + { + return $this->defaultLanguage; + } + + public function setDefaultPrice(Google_Service_AndroidPublisher_Price $defaultPrice) + { + $this->defaultPrice = $defaultPrice; + } + + public function getDefaultPrice() + { + return $this->defaultPrice; + } + + public function setListings($listings) + { + $this->listings = $listings; + } + + public function getListings() + { + return $this->listings; + } + + public function setPackageName($packageName) + { + $this->packageName = $packageName; + } + + public function getPackageName() + { + return $this->packageName; + } + + public function setPrices($prices) + { + $this->prices = $prices; + } + + public function getPrices() + { + return $this->prices; + } + + public function setPurchaseType($purchaseType) + { + $this->purchaseType = $purchaseType; + } + + public function getPurchaseType() + { + return $this->purchaseType; + } + + public function setSeason(Google_Service_AndroidPublisher_Season $season) + { + $this->season = $season; + } + + public function getSeason() + { + return $this->season; + } + + public function setSku($sku) + { + $this->sku = $sku; + } + + public function getSku() + { + return $this->sku; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setSubscriptionPeriod($subscriptionPeriod) + { + $this->subscriptionPeriod = $subscriptionPeriod; + } + + public function getSubscriptionPeriod() + { + return $this->subscriptionPeriod; + } + + public function setTrialPeriod($trialPeriod) + { + $this->trialPeriod = $trialPeriod; + } + + public function getTrialPeriod() + { + return $this->trialPeriod; + } +} + +class Google_Service_AndroidPublisher_InAppProductListing extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $title; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_AndroidPublisher_InAppProductListings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_AndroidPublisher_InAppProductPrices extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_AndroidPublisher_InappproductsBatchRequest extends Google_Collection +{ + protected $collection_key = 'entrys'; + protected $internal_gapi_mappings = array( + ); + protected $entrysType = 'Google_Service_AndroidPublisher_InappproductsBatchRequestEntry'; + protected $entrysDataType = 'array'; + + public function setEntrys($entrys) + { + $this->entrys = $entrys; + } + + public function getEntrys() + { + return $this->entrys; + } +} + +class Google_Service_AndroidPublisher_InappproductsBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $inappproductsinsertrequestType = 'Google_Service_AndroidPublisher_InappproductsInsertRequest'; + protected $inappproductsinsertrequestDataType = ''; + protected $inappproductsupdaterequestType = 'Google_Service_AndroidPublisher_InappproductsUpdateRequest'; + protected $inappproductsupdaterequestDataType = ''; + public $methodName; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setInappproductsinsertrequest(Google_Service_AndroidPublisher_InappproductsInsertRequest $inappproductsinsertrequest) + { + $this->inappproductsinsertrequest = $inappproductsinsertrequest; + } + + public function getInappproductsinsertrequest() + { + return $this->inappproductsinsertrequest; + } + + public function setInappproductsupdaterequest(Google_Service_AndroidPublisher_InappproductsUpdateRequest $inappproductsupdaterequest) + { + $this->inappproductsupdaterequest = $inappproductsupdaterequest; + } + + public function getInappproductsupdaterequest() + { + return $this->inappproductsupdaterequest; + } + + public function setMethodName($methodName) + { + $this->methodName = $methodName; + } + + public function getMethodName() + { + return $this->methodName; + } +} + +class Google_Service_AndroidPublisher_InappproductsBatchResponse extends Google_Collection +{ + protected $collection_key = 'entrys'; + protected $internal_gapi_mappings = array( + ); + protected $entrysType = 'Google_Service_AndroidPublisher_InappproductsBatchResponseEntry'; + protected $entrysDataType = 'array'; + public $kind; + + public function setEntrys($entrys) + { + $this->entrys = $entrys; + } + + public function getEntrys() + { + return $this->entrys; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AndroidPublisher_InappproductsBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $inappproductsinsertresponseType = 'Google_Service_AndroidPublisher_InappproductsInsertResponse'; + protected $inappproductsinsertresponseDataType = ''; + protected $inappproductsupdateresponseType = 'Google_Service_AndroidPublisher_InappproductsUpdateResponse'; + protected $inappproductsupdateresponseDataType = ''; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setInappproductsinsertresponse(Google_Service_AndroidPublisher_InappproductsInsertResponse $inappproductsinsertresponse) + { + $this->inappproductsinsertresponse = $inappproductsinsertresponse; + } + + public function getInappproductsinsertresponse() + { + return $this->inappproductsinsertresponse; + } + + public function setInappproductsupdateresponse(Google_Service_AndroidPublisher_InappproductsUpdateResponse $inappproductsupdateresponse) + { + $this->inappproductsupdateresponse = $inappproductsupdateresponse; + } + + public function getInappproductsupdateresponse() + { + return $this->inappproductsupdateresponse; + } +} + +class Google_Service_AndroidPublisher_InappproductsInsertRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $inappproductType = 'Google_Service_AndroidPublisher_InAppProduct'; + protected $inappproductDataType = ''; + + public function setInappproduct(Google_Service_AndroidPublisher_InAppProduct $inappproduct) + { + $this->inappproduct = $inappproduct; + } + + public function getInappproduct() + { + return $this->inappproduct; + } +} + +class Google_Service_AndroidPublisher_InappproductsInsertResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $inappproductType = 'Google_Service_AndroidPublisher_InAppProduct'; + protected $inappproductDataType = ''; + + public function setInappproduct(Google_Service_AndroidPublisher_InAppProduct $inappproduct) + { + $this->inappproduct = $inappproduct; + } + + public function getInappproduct() + { + return $this->inappproduct; + } +} + +class Google_Service_AndroidPublisher_InappproductsListResponse extends Google_Collection +{ + protected $collection_key = 'inappproduct'; + protected $internal_gapi_mappings = array( + ); + protected $inappproductType = 'Google_Service_AndroidPublisher_InAppProduct'; + protected $inappproductDataType = 'array'; + public $kind; + protected $pageInfoType = 'Google_Service_AndroidPublisher_PageInfo'; + protected $pageInfoDataType = ''; + protected $tokenPaginationType = 'Google_Service_AndroidPublisher_TokenPagination'; + protected $tokenPaginationDataType = ''; + + public function setInappproduct($inappproduct) + { + $this->inappproduct = $inappproduct; + } + + public function getInappproduct() + { + return $this->inappproduct; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPageInfo(Google_Service_AndroidPublisher_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setTokenPagination(Google_Service_AndroidPublisher_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } +} + +class Google_Service_AndroidPublisher_InappproductsUpdateRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $inappproductType = 'Google_Service_AndroidPublisher_InAppProduct'; + protected $inappproductDataType = ''; + + public function setInappproduct(Google_Service_AndroidPublisher_InAppProduct $inappproduct) + { + $this->inappproduct = $inappproduct; + } + + public function getInappproduct() + { + return $this->inappproduct; + } +} + +class Google_Service_AndroidPublisher_InappproductsUpdateResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $inappproductType = 'Google_Service_AndroidPublisher_InAppProduct'; + protected $inappproductDataType = ''; + + public function setInappproduct(Google_Service_AndroidPublisher_InAppProduct $inappproduct) + { + $this->inappproduct = $inappproduct; + } + + public function getInappproduct() + { + return $this->inappproduct; + } +} + +class Google_Service_AndroidPublisher_Listing extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $fullDescription; + public $language; + public $shortDescription; + public $title; + public $video; + + public function setFullDescription($fullDescription) + { + $this->fullDescription = $fullDescription; + } + + public function getFullDescription() + { + return $this->fullDescription; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setShortDescription($shortDescription) + { + $this->shortDescription = $shortDescription; + } + + public function getShortDescription() + { + return $this->shortDescription; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setVideo($video) + { + $this->video = $video; + } + + public function getVideo() + { + return $this->video; + } +} + +class Google_Service_AndroidPublisher_ListingsListResponse extends Google_Collection +{ + protected $collection_key = 'listings'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $listingsType = 'Google_Service_AndroidPublisher_Listing'; + protected $listingsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setListings($listings) + { + $this->listings = $listings; + } + + public function getListings() + { + return $this->listings; + } +} + +class Google_Service_AndroidPublisher_MonthDay extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $day; + public $month; + + public function setDay($day) + { + $this->day = $day; + } + + public function getDay() + { + return $this->day; + } + + public function setMonth($month) + { + $this->month = $month; + } + + public function getMonth() + { + return $this->month; + } +} + +class Google_Service_AndroidPublisher_PageInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $resultPerPage; + public $startIndex; + public $totalResults; + + public function setResultPerPage($resultPerPage) + { + $this->resultPerPage = $resultPerPage; + } + + public function getResultPerPage() + { + return $this->resultPerPage; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_AndroidPublisher_Price extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currency; + public $priceMicros; + + public function setCurrency($currency) + { + $this->currency = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setPriceMicros($priceMicros) + { + $this->priceMicros = $priceMicros; + } + + public function getPriceMicros() + { + return $this->priceMicros; + } +} + +class Google_Service_AndroidPublisher_ProductPurchase extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $consumptionState; + public $developerPayload; + public $kind; + public $purchaseState; + public $purchaseTimeMillis; + + public function setConsumptionState($consumptionState) + { + $this->consumptionState = $consumptionState; + } + + public function getConsumptionState() + { + return $this->consumptionState; + } + + public function setDeveloperPayload($developerPayload) + { + $this->developerPayload = $developerPayload; + } + + public function getDeveloperPayload() + { + return $this->developerPayload; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPurchaseState($purchaseState) + { + $this->purchaseState = $purchaseState; + } + + public function getPurchaseState() + { + return $this->purchaseState; + } + + public function setPurchaseTimeMillis($purchaseTimeMillis) + { + $this->purchaseTimeMillis = $purchaseTimeMillis; + } + + public function getPurchaseTimeMillis() + { + return $this->purchaseTimeMillis; + } +} + +class Google_Service_AndroidPublisher_Season extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $endType = 'Google_Service_AndroidPublisher_MonthDay'; + protected $endDataType = ''; + protected $startType = 'Google_Service_AndroidPublisher_MonthDay'; + protected $startDataType = ''; + + public function setEnd(Google_Service_AndroidPublisher_MonthDay $end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setStart(Google_Service_AndroidPublisher_MonthDay $start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } +} + +class Google_Service_AndroidPublisher_SubscriptionDeferralInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $desiredExpiryTimeMillis; + public $expectedExpiryTimeMillis; + + public function setDesiredExpiryTimeMillis($desiredExpiryTimeMillis) + { + $this->desiredExpiryTimeMillis = $desiredExpiryTimeMillis; + } + + public function getDesiredExpiryTimeMillis() + { + return $this->desiredExpiryTimeMillis; + } + + public function setExpectedExpiryTimeMillis($expectedExpiryTimeMillis) + { + $this->expectedExpiryTimeMillis = $expectedExpiryTimeMillis; + } + + public function getExpectedExpiryTimeMillis() + { + return $this->expectedExpiryTimeMillis; + } +} + +class Google_Service_AndroidPublisher_SubscriptionPurchase extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $autoRenewing; + public $expiryTimeMillis; + public $kind; + public $startTimeMillis; + + public function setAutoRenewing($autoRenewing) + { + $this->autoRenewing = $autoRenewing; + } + + public function getAutoRenewing() + { + return $this->autoRenewing; + } + + public function setExpiryTimeMillis($expiryTimeMillis) + { + $this->expiryTimeMillis = $expiryTimeMillis; + } + + public function getExpiryTimeMillis() + { + return $this->expiryTimeMillis; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartTimeMillis($startTimeMillis) + { + $this->startTimeMillis = $startTimeMillis; + } + + public function getStartTimeMillis() + { + return $this->startTimeMillis; + } +} + +class Google_Service_AndroidPublisher_SubscriptionPurchasesDeferRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $deferralInfoType = 'Google_Service_AndroidPublisher_SubscriptionDeferralInfo'; + protected $deferralInfoDataType = ''; + + public function setDeferralInfo(Google_Service_AndroidPublisher_SubscriptionDeferralInfo $deferralInfo) + { + $this->deferralInfo = $deferralInfo; + } + + public function getDeferralInfo() + { + return $this->deferralInfo; + } +} + +class Google_Service_AndroidPublisher_SubscriptionPurchasesDeferResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $newExpiryTimeMillis; + + public function setNewExpiryTimeMillis($newExpiryTimeMillis) + { + $this->newExpiryTimeMillis = $newExpiryTimeMillis; + } + + public function getNewExpiryTimeMillis() + { + return $this->newExpiryTimeMillis; + } +} + +class Google_Service_AndroidPublisher_Testers extends Google_Collection +{ + protected $collection_key = 'googlePlusCommunities'; + protected $internal_gapi_mappings = array( + ); + public $googleGroups; + public $googlePlusCommunities; + + public function setGoogleGroups($googleGroups) + { + $this->googleGroups = $googleGroups; + } + + public function getGoogleGroups() + { + return $this->googleGroups; + } + + public function setGooglePlusCommunities($googlePlusCommunities) + { + $this->googlePlusCommunities = $googlePlusCommunities; + } + + public function getGooglePlusCommunities() + { + return $this->googlePlusCommunities; + } +} + +class Google_Service_AndroidPublisher_TokenPagination extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + public $previousPageToken; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPreviousPageToken($previousPageToken) + { + $this->previousPageToken = $previousPageToken; + } + + public function getPreviousPageToken() + { + return $this->previousPageToken; + } +} + +class Google_Service_AndroidPublisher_Track extends Google_Collection +{ + protected $collection_key = 'versionCodes'; + protected $internal_gapi_mappings = array( + ); + public $track; + public $userFraction; + public $versionCodes; + + public function setTrack($track) + { + $this->track = $track; + } + + public function getTrack() + { + return $this->track; + } + + public function setUserFraction($userFraction) + { + $this->userFraction = $userFraction; + } + + public function getUserFraction() + { + return $this->userFraction; + } + + public function setVersionCodes($versionCodes) + { + $this->versionCodes = $versionCodes; + } + + public function getVersionCodes() + { + return $this->versionCodes; + } +} + +class Google_Service_AndroidPublisher_TracksListResponse extends Google_Collection +{ + protected $collection_key = 'tracks'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $tracksType = 'Google_Service_AndroidPublisher_Track'; + protected $tracksDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTracks($tracks) + { + $this->tracks = $tracks; + } + + public function getTracks() + { + return $this->tracks; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/AppState.php b/vendor/google/apiclient/src/Google/Service/AppState.php new file mode 100644 index 0000000..5012b5a --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/AppState.php @@ -0,0 +1,383 @@ + + * The Google App State API. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_AppState extends Google_Service +{ + /** View and manage your data for this application. */ + const APPSTATE = "https://www.googleapis.com/auth/appstate"; + + public $states; + + + /** + * Constructs the internal representation of the AppState service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'appstate/v1/'; + $this->version = 'v1'; + $this->serviceName = 'appstate'; + + $this->states = new Google_Service_AppState_States_Resource( + $this, + $this->serviceName, + 'states', + array( + 'methods' => array( + 'clear' => array( + 'path' => 'states/{stateKey}/clear', + 'httpMethod' => 'POST', + 'parameters' => array( + 'stateKey' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'currentDataVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'delete' => array( + 'path' => 'states/{stateKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'stateKey' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'states/{stateKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'stateKey' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'states', + 'httpMethod' => 'GET', + 'parameters' => array( + 'includeData' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'states/{stateKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'stateKey' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'currentStateVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "states" collection of methods. + * Typical usage is: + * + * $appstateService = new Google_Service_AppState(...); + * $states = $appstateService->states; + * + */ +class Google_Service_AppState_States_Resource extends Google_Service_Resource +{ + + /** + * Clears (sets to empty) the data for the passed key if and only if the passed + * version matches the currently stored version. This method results in a + * conflict error on version mismatch. (states.clear) + * + * @param int $stateKey + * The key for the data to be retrieved. + * @param array $optParams Optional parameters. + * + * @opt_param string currentDataVersion + * The version of the data to be cleared. Version strings are returned by the server. + * @return Google_Service_AppState_WriteResult + */ + public function clear($stateKey, $optParams = array()) + { + $params = array('stateKey' => $stateKey); + $params = array_merge($params, $optParams); + return $this->call('clear', array($params), "Google_Service_AppState_WriteResult"); + } + /** + * Deletes a key and the data associated with it. The key is removed and no + * longer counts against the key quota. Note that since this method is not safe + * in the face of concurrent modifications, it should only be used for + * development and testing purposes. Invoking this method in shipping code can + * result in data loss and data corruption. (states.delete) + * + * @param int $stateKey + * The key for the data to be retrieved. + * @param array $optParams Optional parameters. + */ + public function delete($stateKey, $optParams = array()) + { + $params = array('stateKey' => $stateKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the data corresponding to the passed key. If the key does not exist + * on the server, an HTTP 404 will be returned. (states.get) + * + * @param int $stateKey + * The key for the data to be retrieved. + * @param array $optParams Optional parameters. + * @return Google_Service_AppState_GetResponse + */ + public function get($stateKey, $optParams = array()) + { + $params = array('stateKey' => $stateKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_AppState_GetResponse"); + } + /** + * Lists all the states keys, and optionally the state data. (states.listStates) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool includeData + * Whether to include the full data in addition to the version number + * @return Google_Service_AppState_ListResponse + */ + public function listStates($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_AppState_ListResponse"); + } + /** + * Update the data associated with the input key if and only if the passed + * version matches the currently stored version. This method is safe in the face + * of concurrent writes. Maximum per-key size is 128KB. (states.update) + * + * @param int $stateKey + * The key for the data to be retrieved. + * @param Google_UpdateRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string currentStateVersion + * The version of the app state your application is attempting to update. If this does not match + * the current version, this method will return a conflict error. If there is no data stored on the + * server for this key, the update will succeed irrespective of the value of this parameter. + * @return Google_Service_AppState_WriteResult + */ + public function update($stateKey, Google_Service_AppState_UpdateRequest $postBody, $optParams = array()) + { + $params = array('stateKey' => $stateKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_AppState_WriteResult"); + } +} + + + + +class Google_Service_AppState_GetResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentStateVersion; + public $data; + public $kind; + public $stateKey; + + public function setCurrentStateVersion($currentStateVersion) + { + $this->currentStateVersion = $currentStateVersion; + } + + public function getCurrentStateVersion() + { + return $this->currentStateVersion; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStateKey($stateKey) + { + $this->stateKey = $stateKey; + } + + public function getStateKey() + { + return $this->stateKey; + } +} + +class Google_Service_AppState_ListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_AppState_GetResponse'; + protected $itemsDataType = 'array'; + public $kind; + public $maximumKeyCount; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaximumKeyCount($maximumKeyCount) + { + $this->maximumKeyCount = $maximumKeyCount; + } + + public function getMaximumKeyCount() + { + return $this->maximumKeyCount; + } +} + +class Google_Service_AppState_UpdateRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $data; + public $kind; + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_AppState_WriteResult extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentStateVersion; + public $kind; + public $stateKey; + + public function setCurrentStateVersion($currentStateVersion) + { + $this->currentStateVersion = $currentStateVersion; + } + + public function getCurrentStateVersion() + { + return $this->currentStateVersion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStateKey($stateKey) + { + $this->stateKey = $stateKey; + } + + public function getStateKey() + { + return $this->stateKey; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Appsactivity.php b/vendor/google/apiclient/src/Google/Service/Appsactivity.php new file mode 100644 index 0000000..5548177 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Appsactivity.php @@ -0,0 +1,615 @@ + + * Provides a historical view of activity. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Appsactivity extends Google_Service +{ + /** View historical activity for Google services. */ + const ACTIVITY = "https://www.googleapis.com/auth/activity"; + /** View and manage the files and documents in your Google Drive. */ + const DRIVE = "https://www.googleapis.com/auth/drive"; + /** View metadata for files and documents in your Google Drive. */ + const DRIVE_METADATA_READONLY = "https://www.googleapis.com/auth/drive.metadata.readonly"; + /** View the files and documents in your Google Drive. */ + const DRIVE_READONLY = "https://www.googleapis.com/auth/drive.readonly"; + + public $activities; + + + /** + * Constructs the internal representation of the Appsactivity service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'appsactivity/v1/'; + $this->version = 'v1'; + $this->serviceName = 'appsactivity'; + + $this->activities = new Google_Service_Appsactivity_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'list' => array( + 'path' => 'activities', + 'httpMethod' => 'GET', + 'parameters' => array( + 'drive.ancestorId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageSize' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'userId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'groupingStrategy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'drive.fileId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $appsactivityService = new Google_Service_Appsactivity(...); + * $activities = $appsactivityService->activities; + * + */ +class Google_Service_Appsactivity_Activities_Resource extends Google_Service_Resource +{ + + /** + * Returns a list of activities visible to the current logged in user. Visible + * activities are determined by the visiblity settings of the object that was + * acted on, e.g. Drive files a user can see. An activity is a record of past + * events. Multiple events may be merged if they are similar. A request is + * scoped to activities from a given Google service using the source parameter. + * (activities.listActivities) + * + * @param array $optParams Optional parameters. + * + * @opt_param string drive.ancestorId + * Identifies the Drive folder containing the items for which to return activities. + * @opt_param int pageSize + * The maximum number of events to return on a page. The response includes a continuation token if + * there are more events. + * @opt_param string pageToken + * A token to retrieve a specific page of results. + * @opt_param string userId + * Indicates the user to return activity for. Use the special value me to indicate the currently + * authenticated user. + * @opt_param string groupingStrategy + * Indicates the strategy to use when grouping singleEvents items in the associated combinedEvent + * object. + * @opt_param string drive.fileId + * Identifies the Drive item to return activities for. + * @opt_param string source + * The Google service from which to return activities. Possible values of source are: + - + * drive.google.com + * @return Google_Service_Appsactivity_ListActivitiesResponse + */ + public function listActivities($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Appsactivity_ListActivitiesResponse"); + } +} + + + + +class Google_Service_Appsactivity_Activity extends Google_Collection +{ + protected $collection_key = 'singleEvents'; + protected $internal_gapi_mappings = array( + ); + protected $combinedEventType = 'Google_Service_Appsactivity_Event'; + protected $combinedEventDataType = ''; + protected $singleEventsType = 'Google_Service_Appsactivity_Event'; + protected $singleEventsDataType = 'array'; + + public function setCombinedEvent(Google_Service_Appsactivity_Event $combinedEvent) + { + $this->combinedEvent = $combinedEvent; + } + + public function getCombinedEvent() + { + return $this->combinedEvent; + } + + public function setSingleEvents($singleEvents) + { + $this->singleEvents = $singleEvents; + } + + public function getSingleEvents() + { + return $this->singleEvents; + } +} + +class Google_Service_Appsactivity_Event extends Google_Collection +{ + protected $collection_key = 'permissionChanges'; + protected $internal_gapi_mappings = array( + ); + public $additionalEventTypes; + public $eventTimeMillis; + public $fromUserDeletion; + protected $moveType = 'Google_Service_Appsactivity_Move'; + protected $moveDataType = ''; + protected $permissionChangesType = 'Google_Service_Appsactivity_PermissionChange'; + protected $permissionChangesDataType = 'array'; + public $primaryEventType; + protected $renameType = 'Google_Service_Appsactivity_Rename'; + protected $renameDataType = ''; + protected $targetType = 'Google_Service_Appsactivity_Target'; + protected $targetDataType = ''; + protected $userType = 'Google_Service_Appsactivity_User'; + protected $userDataType = ''; + + public function setAdditionalEventTypes($additionalEventTypes) + { + $this->additionalEventTypes = $additionalEventTypes; + } + + public function getAdditionalEventTypes() + { + return $this->additionalEventTypes; + } + + public function setEventTimeMillis($eventTimeMillis) + { + $this->eventTimeMillis = $eventTimeMillis; + } + + public function getEventTimeMillis() + { + return $this->eventTimeMillis; + } + + public function setFromUserDeletion($fromUserDeletion) + { + $this->fromUserDeletion = $fromUserDeletion; + } + + public function getFromUserDeletion() + { + return $this->fromUserDeletion; + } + + public function setMove(Google_Service_Appsactivity_Move $move) + { + $this->move = $move; + } + + public function getMove() + { + return $this->move; + } + + public function setPermissionChanges($permissionChanges) + { + $this->permissionChanges = $permissionChanges; + } + + public function getPermissionChanges() + { + return $this->permissionChanges; + } + + public function setPrimaryEventType($primaryEventType) + { + $this->primaryEventType = $primaryEventType; + } + + public function getPrimaryEventType() + { + return $this->primaryEventType; + } + + public function setRename(Google_Service_Appsactivity_Rename $rename) + { + $this->rename = $rename; + } + + public function getRename() + { + return $this->rename; + } + + public function setTarget(Google_Service_Appsactivity_Target $target) + { + $this->target = $target; + } + + public function getTarget() + { + return $this->target; + } + + public function setUser(Google_Service_Appsactivity_User $user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } +} + +class Google_Service_Appsactivity_ListActivitiesResponse extends Google_Collection +{ + protected $collection_key = 'activities'; + protected $internal_gapi_mappings = array( + ); + protected $activitiesType = 'Google_Service_Appsactivity_Activity'; + protected $activitiesDataType = 'array'; + public $nextPageToken; + + public function setActivities($activities) + { + $this->activities = $activities; + } + + public function getActivities() + { + return $this->activities; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Appsactivity_Move extends Google_Collection +{ + protected $collection_key = 'removedParents'; + protected $internal_gapi_mappings = array( + ); + protected $addedParentsType = 'Google_Service_Appsactivity_Parent'; + protected $addedParentsDataType = 'array'; + protected $removedParentsType = 'Google_Service_Appsactivity_Parent'; + protected $removedParentsDataType = 'array'; + + public function setAddedParents($addedParents) + { + $this->addedParents = $addedParents; + } + + public function getAddedParents() + { + return $this->addedParents; + } + + public function setRemovedParents($removedParents) + { + $this->removedParents = $removedParents; + } + + public function getRemovedParents() + { + return $this->removedParents; + } +} + +class Google_Service_Appsactivity_Parent extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $isRoot; + public $title; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsRoot($isRoot) + { + $this->isRoot = $isRoot; + } + + public function getIsRoot() + { + return $this->isRoot; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Appsactivity_Permission extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $permissionId; + public $role; + public $type; + protected $userType = 'Google_Service_Appsactivity_User'; + protected $userDataType = ''; + public $withLink; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPermissionId($permissionId) + { + $this->permissionId = $permissionId; + } + + public function getPermissionId() + { + return $this->permissionId; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUser(Google_Service_Appsactivity_User $user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } + + public function setWithLink($withLink) + { + $this->withLink = $withLink; + } + + public function getWithLink() + { + return $this->withLink; + } +} + +class Google_Service_Appsactivity_PermissionChange extends Google_Collection +{ + protected $collection_key = 'removedPermissions'; + protected $internal_gapi_mappings = array( + ); + protected $addedPermissionsType = 'Google_Service_Appsactivity_Permission'; + protected $addedPermissionsDataType = 'array'; + protected $removedPermissionsType = 'Google_Service_Appsactivity_Permission'; + protected $removedPermissionsDataType = 'array'; + + public function setAddedPermissions($addedPermissions) + { + $this->addedPermissions = $addedPermissions; + } + + public function getAddedPermissions() + { + return $this->addedPermissions; + } + + public function setRemovedPermissions($removedPermissions) + { + $this->removedPermissions = $removedPermissions; + } + + public function getRemovedPermissions() + { + return $this->removedPermissions; + } +} + +class Google_Service_Appsactivity_Photo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Appsactivity_Rename extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $newTitle; + public $oldTitle; + + public function setNewTitle($newTitle) + { + $this->newTitle = $newTitle; + } + + public function getNewTitle() + { + return $this->newTitle; + } + + public function setOldTitle($oldTitle) + { + $this->oldTitle = $oldTitle; + } + + public function getOldTitle() + { + return $this->oldTitle; + } +} + +class Google_Service_Appsactivity_Target extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $mimeType; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Appsactivity_User extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + protected $photoType = 'Google_Service_Appsactivity_Photo'; + protected $photoDataType = ''; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPhoto(Google_Service_Appsactivity_Photo $photo) + { + $this->photo = $photo; + } + + public function getPhoto() + { + return $this->photo; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Audit.php b/vendor/google/apiclient/src/Google/Service/Audit.php new file mode 100644 index 0000000..2e2741b --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Audit.php @@ -0,0 +1,453 @@ + + * Lets you access user activities in your enterprise made through various applications. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Audit extends Google_Service +{ + + + public $activities; + + + /** + * Constructs the internal representation of the Audit service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'apps/reporting/audit/v1/'; + $this->version = 'v1'; + $this->serviceName = 'audit'; + + $this->activities = new Google_Service_Audit_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'list' => array( + 'path' => '{customerId}/{applicationId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'applicationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'actorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'actorApplicationId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'actorIpAddress' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'caller' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'eventName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'continuationToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $auditService = new Google_Service_Audit(...); + * $activities = $auditService->activities; + * + */ +class Google_Service_Audit_Activities_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of activities for a specific customer and application. + * (activities.listActivities) + * + * @param string $customerId + * Represents the customer who is the owner of target object on which action was performed. + * @param string $applicationId + * Application ID of the application on which the event was performed. + * @param array $optParams Optional parameters. + * + * @opt_param string actorEmail + * Email address of the user who performed the action. + * @opt_param string actorApplicationId + * Application ID of the application which interacted on behalf of the user while performing the + * event. + * @opt_param string actorIpAddress + * IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses. + * @opt_param string caller + * Type of the caller. + * @opt_param int maxResults + * Number of activity records to be shown in each page. + * @opt_param string eventName + * Name of the event being queried. + * @opt_param string startTime + * Return events which occured at or after this time. + * @opt_param string endTime + * Return events which occured at or before this time. + * @opt_param string continuationToken + * Next page URL. + * @return Google_Service_Audit_Activities + */ + public function listActivities($customerId, $applicationId, $optParams = array()) + { + $params = array('customerId' => $customerId, 'applicationId' => $applicationId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Audit_Activities"); + } +} + + + + +class Google_Service_Audit_Activities extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Audit_Activity'; + protected $itemsDataType = 'array'; + public $kind; + public $next; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNext($next) + { + $this->next = $next; + } + + public function getNext() + { + return $this->next; + } +} + +class Google_Service_Audit_Activity extends Google_Collection +{ + protected $collection_key = 'events'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_Audit_ActivityActor'; + protected $actorDataType = ''; + protected $eventsType = 'Google_Service_Audit_ActivityEvents'; + protected $eventsDataType = 'array'; + protected $idType = 'Google_Service_Audit_ActivityId'; + protected $idDataType = ''; + public $ipAddress; + public $kind; + public $ownerDomain; + + public function setActor(Google_Service_Audit_ActivityActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setEvents($events) + { + $this->events = $events; + } + + public function getEvents() + { + return $this->events; + } + + public function setId(Google_Service_Audit_ActivityId $id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIpAddress($ipAddress) + { + $this->ipAddress = $ipAddress; + } + + public function getIpAddress() + { + return $this->ipAddress; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOwnerDomain($ownerDomain) + { + $this->ownerDomain = $ownerDomain; + } + + public function getOwnerDomain() + { + return $this->ownerDomain; + } +} + +class Google_Service_Audit_ActivityActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $applicationId; + public $callerType; + public $email; + public $key; + + public function setApplicationId($applicationId) + { + $this->applicationId = $applicationId; + } + + public function getApplicationId() + { + return $this->applicationId; + } + + public function setCallerType($callerType) + { + $this->callerType = $callerType; + } + + public function getCallerType() + { + return $this->callerType; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } +} + +class Google_Service_Audit_ActivityEvents extends Google_Collection +{ + protected $collection_key = 'parameters'; + protected $internal_gapi_mappings = array( + ); + public $eventType; + public $name; + protected $parametersType = 'Google_Service_Audit_ActivityEventsParameters'; + protected $parametersDataType = 'array'; + + public function setEventType($eventType) + { + $this->eventType = $eventType; + } + + public function getEventType() + { + return $this->eventType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParameters($parameters) + { + $this->parameters = $parameters; + } + + public function getParameters() + { + return $this->parameters; + } +} + +class Google_Service_Audit_ActivityEventsParameters extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $value; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Audit_ActivityId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $applicationId; + public $customerId; + public $time; + public $uniqQualifier; + + public function setApplicationId($applicationId) + { + $this->applicationId = $applicationId; + } + + public function getApplicationId() + { + return $this->applicationId; + } + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setTime($time) + { + $this->time = $time; + } + + public function getTime() + { + return $this->time; + } + + public function setUniqQualifier($uniqQualifier) + { + $this->uniqQualifier = $uniqQualifier; + } + + public function getUniqQualifier() + { + return $this->uniqQualifier; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Autoscaler.php b/vendor/google/apiclient/src/Google/Service/Autoscaler.php new file mode 100644 index 0000000..0eb8eb6 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Autoscaler.php @@ -0,0 +1,1197 @@ + + * The Google Compute Engine Autoscaler API provides autoscaling for groups of Cloud VMs. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Autoscaler extends Google_Service +{ + /** View and manage your Google Compute Engine resources. */ + const COMPUTE = "https://www.googleapis.com/auth/compute"; + /** View your Google Compute Engine resources. */ + const COMPUTE_READONLY = "https://www.googleapis.com/auth/compute.readonly"; + + public $autoscalers; + public $zoneOperations; + + + /** + * Constructs the internal representation of the Autoscaler service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'autoscaler/v1beta2/'; + $this->version = 'v1beta2'; + $this->serviceName = 'autoscaler'; + + $this->autoscalers = new Google_Service_Autoscaler_Autoscalers_Resource( + $this, + $this->serviceName, + 'autoscalers', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'projects/{project}/zones/{zone}/autoscalers/{autoscaler}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoscaler' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'projects/{project}/zones/{zone}/autoscalers/{autoscaler}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoscaler' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'projects/{project}/zones/{zone}/autoscalers', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{project}/zones/{zone}/autoscalers', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'projects/{project}/zones/{zone}/autoscalers/{autoscaler}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoscaler' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'projects/{project}/zones/{zone}/autoscalers/{autoscaler}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoscaler' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->zoneOperations = new Google_Service_Autoscaler_ZoneOperations_Resource( + $this, + $this->serviceName, + 'zoneOperations', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/zones/{zone}/operations/{operation}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/operations/{operation}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "autoscalers" collection of methods. + * Typical usage is: + * + * $autoscalerService = new Google_Service_Autoscaler(...); + * $autoscalers = $autoscalerService->autoscalers; + * + */ +class Google_Service_Autoscaler_Autoscalers_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified Autoscaler resource. (autoscalers.delete) + * + * @param string $project + * Project ID of Autoscaler resource. + * @param string $zone + * Zone name of Autoscaler resource. + * @param string $autoscaler + * Name of the Autoscaler resource. + * @param array $optParams Optional parameters. + * @return Google_Service_Autoscaler_Operation + */ + public function delete($project, $zone, $autoscaler, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'autoscaler' => $autoscaler); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Autoscaler_Operation"); + } + /** + * Gets the specified Autoscaler resource. (autoscalers.get) + * + * @param string $project + * Project ID of Autoscaler resource. + * @param string $zone + * Zone name of Autoscaler resource. + * @param string $autoscaler + * Name of the Autoscaler resource. + * @param array $optParams Optional parameters. + * @return Google_Service_Autoscaler_Autoscaler + */ + public function get($project, $zone, $autoscaler, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'autoscaler' => $autoscaler); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Autoscaler_Autoscaler"); + } + /** + * Adds new Autoscaler resource. (autoscalers.insert) + * + * @param string $project + * Project ID of Autoscaler resource. + * @param string $zone + * Zone name of Autoscaler resource. + * @param Google_Autoscaler $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Autoscaler_Operation + */ + public function insert($project, $zone, Google_Service_Autoscaler_Autoscaler $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Autoscaler_Operation"); + } + /** + * Lists all Autoscaler resources in this zone. (autoscalers.listAutoscalers) + * + * @param string $project + * Project ID of Autoscaler resource. + * @param string $zone + * Zone name of Autoscaler resource. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * + * @opt_param string pageToken + * + * @opt_param string maxResults + * + * @return Google_Service_Autoscaler_AutoscalerListResponse + */ + public function listAutoscalers($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Autoscaler_AutoscalerListResponse"); + } + /** + * Update the entire content of the Autoscaler resource. This method supports + * patch semantics. (autoscalers.patch) + * + * @param string $project + * Project ID of Autoscaler resource. + * @param string $zone + * Zone name of Autoscaler resource. + * @param string $autoscaler + * Name of the Autoscaler resource. + * @param Google_Autoscaler $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Autoscaler_Operation + */ + public function patch($project, $zone, $autoscaler, Google_Service_Autoscaler_Autoscaler $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'autoscaler' => $autoscaler, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Autoscaler_Operation"); + } + /** + * Update the entire content of the Autoscaler resource. (autoscalers.update) + * + * @param string $project + * Project ID of Autoscaler resource. + * @param string $zone + * Zone name of Autoscaler resource. + * @param string $autoscaler + * Name of the Autoscaler resource. + * @param Google_Autoscaler $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Autoscaler_Operation + */ + public function update($project, $zone, $autoscaler, Google_Service_Autoscaler_Autoscaler $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'autoscaler' => $autoscaler, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Autoscaler_Operation"); + } +} + +/** + * The "zoneOperations" collection of methods. + * Typical usage is: + * + * $autoscalerService = new Google_Service_Autoscaler(...); + * $zoneOperations = $autoscalerService->zoneOperations; + * + */ +class Google_Service_Autoscaler_ZoneOperations_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified zone-specific operation resource. + * (zoneOperations.delete) + * + * @param string $project + * + * @param string $zone + * + * @param string $operation + * + * @param array $optParams Optional parameters. + */ + public function delete($project, $zone, $operation, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the specified zone-specific operation resource. + * (zoneOperations.get) + * + * @param string $project + * + * @param string $zone + * + * @param string $operation + * + * @param array $optParams Optional parameters. + * @return Google_Service_Autoscaler_Operation + */ + public function get($project, $zone, $operation, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Autoscaler_Operation"); + } + /** + * Retrieves the list of operation resources contained within the specified + * zone. (zoneOperations.listZoneOperations) + * + * @param string $project + * + * @param string $zone + * + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * + * @opt_param string pageToken + * + * @opt_param string maxResults + * + * @return Google_Service_Autoscaler_OperationList + */ + public function listZoneOperations($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Autoscaler_OperationList"); + } +} + + + + +class Google_Service_Autoscaler_Autoscaler extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $autoscalingPolicyType = 'Google_Service_Autoscaler_AutoscalingPolicy'; + protected $autoscalingPolicyDataType = ''; + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $name; + public $selfLink; + public $target; + + public function setAutoscalingPolicy(Google_Service_Autoscaler_AutoscalingPolicy $autoscalingPolicy) + { + $this->autoscalingPolicy = $autoscalingPolicy; + } + + public function getAutoscalingPolicy() + { + return $this->autoscalingPolicy; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTarget($target) + { + $this->target = $target; + } + + public function getTarget() + { + return $this->target; + } +} + +class Google_Service_Autoscaler_AutoscalerListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Autoscaler_Autoscaler'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Autoscaler_AutoscalingPolicy extends Google_Collection +{ + protected $collection_key = 'customMetricUtilizations'; + protected $internal_gapi_mappings = array( + ); + public $coolDownPeriodSec; + protected $cpuUtilizationType = 'Google_Service_Autoscaler_AutoscalingPolicyCpuUtilization'; + protected $cpuUtilizationDataType = ''; + protected $customMetricUtilizationsType = 'Google_Service_Autoscaler_AutoscalingPolicyCustomMetricUtilization'; + protected $customMetricUtilizationsDataType = 'array'; + protected $loadBalancingUtilizationType = 'Google_Service_Autoscaler_AutoscalingPolicyLoadBalancingUtilization'; + protected $loadBalancingUtilizationDataType = ''; + public $maxNumReplicas; + public $minNumReplicas; + + public function setCoolDownPeriodSec($coolDownPeriodSec) + { + $this->coolDownPeriodSec = $coolDownPeriodSec; + } + + public function getCoolDownPeriodSec() + { + return $this->coolDownPeriodSec; + } + + public function setCpuUtilization(Google_Service_Autoscaler_AutoscalingPolicyCpuUtilization $cpuUtilization) + { + $this->cpuUtilization = $cpuUtilization; + } + + public function getCpuUtilization() + { + return $this->cpuUtilization; + } + + public function setCustomMetricUtilizations($customMetricUtilizations) + { + $this->customMetricUtilizations = $customMetricUtilizations; + } + + public function getCustomMetricUtilizations() + { + return $this->customMetricUtilizations; + } + + public function setLoadBalancingUtilization(Google_Service_Autoscaler_AutoscalingPolicyLoadBalancingUtilization $loadBalancingUtilization) + { + $this->loadBalancingUtilization = $loadBalancingUtilization; + } + + public function getLoadBalancingUtilization() + { + return $this->loadBalancingUtilization; + } + + public function setMaxNumReplicas($maxNumReplicas) + { + $this->maxNumReplicas = $maxNumReplicas; + } + + public function getMaxNumReplicas() + { + return $this->maxNumReplicas; + } + + public function setMinNumReplicas($minNumReplicas) + { + $this->minNumReplicas = $minNumReplicas; + } + + public function getMinNumReplicas() + { + return $this->minNumReplicas; + } +} + +class Google_Service_Autoscaler_AutoscalingPolicyCpuUtilization extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $utilizationTarget; + + public function setUtilizationTarget($utilizationTarget) + { + $this->utilizationTarget = $utilizationTarget; + } + + public function getUtilizationTarget() + { + return $this->utilizationTarget; + } +} + +class Google_Service_Autoscaler_AutoscalingPolicyCustomMetricUtilization extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $metric; + public $utilizationTarget; + public $utilizationTargetType; + + public function setMetric($metric) + { + $this->metric = $metric; + } + + public function getMetric() + { + return $this->metric; + } + + public function setUtilizationTarget($utilizationTarget) + { + $this->utilizationTarget = $utilizationTarget; + } + + public function getUtilizationTarget() + { + return $this->utilizationTarget; + } + + public function setUtilizationTargetType($utilizationTargetType) + { + $this->utilizationTargetType = $utilizationTargetType; + } + + public function getUtilizationTargetType() + { + return $this->utilizationTargetType; + } +} + +class Google_Service_Autoscaler_AutoscalingPolicyLoadBalancingUtilization extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $utilizationTarget; + + public function setUtilizationTarget($utilizationTarget) + { + $this->utilizationTarget = $utilizationTarget; + } + + public function getUtilizationTarget() + { + return $this->utilizationTarget; + } +} + +class Google_Service_Autoscaler_Operation extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $clientOperationId; + public $creationTimestamp; + public $endTime; + protected $errorType = 'Google_Service_Autoscaler_OperationError'; + protected $errorDataType = ''; + public $httpErrorMessage; + public $httpErrorStatusCode; + public $id; + public $insertTime; + public $kind; + public $name; + public $operationType; + public $progress; + public $region; + public $selfLink; + public $startTime; + public $status; + public $statusMessage; + public $targetId; + public $targetLink; + public $user; + protected $warningsType = 'Google_Service_Autoscaler_OperationWarnings'; + protected $warningsDataType = 'array'; + public $zone; + + public function setClientOperationId($clientOperationId) + { + $this->clientOperationId = $clientOperationId; + } + + public function getClientOperationId() + { + return $this->clientOperationId; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setError(Google_Service_Autoscaler_OperationError $error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setHttpErrorMessage($httpErrorMessage) + { + $this->httpErrorMessage = $httpErrorMessage; + } + + public function getHttpErrorMessage() + { + return $this->httpErrorMessage; + } + + public function setHttpErrorStatusCode($httpErrorStatusCode) + { + $this->httpErrorStatusCode = $httpErrorStatusCode; + } + + public function getHttpErrorStatusCode() + { + return $this->httpErrorStatusCode; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInsertTime($insertTime) + { + $this->insertTime = $insertTime; + } + + public function getInsertTime() + { + return $this->insertTime; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOperationType($operationType) + { + $this->operationType = $operationType; + } + + public function getOperationType() + { + return $this->operationType; + } + + public function setProgress($progress) + { + $this->progress = $progress; + } + + public function getProgress() + { + return $this->progress; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setStatusMessage($statusMessage) + { + $this->statusMessage = $statusMessage; + } + + public function getStatusMessage() + { + return $this->statusMessage; + } + + public function setTargetId($targetId) + { + $this->targetId = $targetId; + } + + public function getTargetId() + { + return $this->targetId; + } + + public function setTargetLink($targetLink) + { + $this->targetLink = $targetLink; + } + + public function getTargetLink() + { + return $this->targetLink; + } + + public function setUser($user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Autoscaler_OperationError extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $errorsType = 'Google_Service_Autoscaler_OperationErrorErrors'; + protected $errorsDataType = 'array'; + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_Autoscaler_OperationErrorErrors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $location; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Autoscaler_OperationList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Autoscaler_Operation'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Autoscaler_OperationWarnings extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Autoscaler_OperationWarningsData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Autoscaler_OperationWarningsData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Bigquery.php b/vendor/google/apiclient/src/Google/Service/Bigquery.php new file mode 100644 index 0000000..52be565 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Bigquery.php @@ -0,0 +1,3524 @@ + + * A data platform for customers to create, manage, share and query data. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Bigquery extends Google_Service +{ + /** View and manage your data in Google BigQuery. */ + const BIGQUERY = "https://www.googleapis.com/auth/bigquery"; + /** Insert data into Google BigQuery. */ + const BIGQUERY_INSERTDATA = "https://www.googleapis.com/auth/bigquery.insertdata"; + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** Manage your data and permissions in Google Cloud Storage. */ + const DEVSTORAGE_FULL_CONTROL = "https://www.googleapis.com/auth/devstorage.full_control"; + /** View your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_ONLY = "https://www.googleapis.com/auth/devstorage.read_only"; + /** Manage your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_WRITE = "https://www.googleapis.com/auth/devstorage.read_write"; + + public $datasets; + public $jobs; + public $projects; + public $tabledata; + public $tables; + + + /** + * Constructs the internal representation of the Bigquery service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'bigquery/v2/'; + $this->version = 'v2'; + $this->serviceName = 'bigquery'; + + $this->datasets = new Google_Service_Bigquery_Datasets_Resource( + $this, + $this->serviceName, + 'datasets', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deleteContents' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'get' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'projects/{projectId}/datasets', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{projectId}/datasets', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'all' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->jobs = new Google_Service_Bigquery_Jobs_Resource( + $this, + $this->serviceName, + 'jobs', + array( + 'methods' => array( + 'get' => array( + 'path' => 'projects/{projectId}/jobs/{jobId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getQueryResults' => array( + 'path' => 'projects/{projectId}/queries/{jobId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'timeoutMs' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'projects/{projectId}/jobs', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{projectId}/jobs', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'stateFilter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'allUsers' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'query' => array( + 'path' => 'projects/{projectId}/queries', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->projects = new Google_Service_Bigquery_Projects_Resource( + $this, + $this->serviceName, + 'projects', + array( + 'methods' => array( + 'list' => array( + 'path' => 'projects', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->tabledata = new Google_Service_Bigquery_Tabledata_Resource( + $this, + $this->serviceName, + 'tabledata', + array( + 'methods' => array( + 'insertAll' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->tables = new Google_Service_Bigquery_Tables_Resource( + $this, + $this->serviceName, + 'tables', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables/{tableId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables/{tableId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables/{tableId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'projects/{projectId}/datasets/{datasetId}/tables/{tableId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "datasets" collection of methods. + * Typical usage is: + * + * $bigqueryService = new Google_Service_Bigquery(...); + * $datasets = $bigqueryService->datasets; + * + */ +class Google_Service_Bigquery_Datasets_Resource extends Google_Service_Resource +{ + + /** + * Deletes the dataset specified by the datasetId value. Before you can delete a + * dataset, you must delete all its tables, either manually or by specifying + * deleteContents. Immediately after deletion, you can create another dataset + * with the same name. (datasets.delete) + * + * @param string $projectId + * Project ID of the dataset being deleted + * @param string $datasetId + * Dataset ID of dataset being deleted + * @param array $optParams Optional parameters. + * + * @opt_param bool deleteContents + * If True, delete all the tables in the dataset. If False and the dataset contains tables, the + * request will fail. Default is False + */ + public function delete($projectId, $datasetId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns the dataset specified by datasetID. (datasets.get) + * + * @param string $projectId + * Project ID of the requested dataset + * @param string $datasetId + * Dataset ID of the requested dataset + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Dataset + */ + public function get($projectId, $datasetId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Bigquery_Dataset"); + } + /** + * Creates a new empty dataset. (datasets.insert) + * + * @param string $projectId + * Project ID of the new dataset + * @param Google_Dataset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Dataset + */ + public function insert($projectId, Google_Service_Bigquery_Dataset $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Bigquery_Dataset"); + } + /** + * Lists all the datasets in the specified project to which the caller has read + * access; however, a project owner can list (but not necessarily get) all + * datasets in his project. (datasets.listDatasets) + * + * @param string $projectId + * Project ID of the datasets to be listed + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Page token, returned by a previous call, to request the next page of results + * @opt_param bool all + * Whether to list all datasets, including hidden ones + * @opt_param string maxResults + * The maximum number of results to return + * @return Google_Service_Bigquery_DatasetList + */ + public function listDatasets($projectId, $optParams = array()) + { + $params = array('projectId' => $projectId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Bigquery_DatasetList"); + } + /** + * Updates information in an existing dataset. The update method replaces the + * entire dataset resource, whereas the patch method only replaces fields that + * are provided in the submitted dataset resource. This method supports patch + * semantics. (datasets.patch) + * + * @param string $projectId + * Project ID of the dataset being updated + * @param string $datasetId + * Dataset ID of the dataset being updated + * @param Google_Dataset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Dataset + */ + public function patch($projectId, $datasetId, Google_Service_Bigquery_Dataset $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Bigquery_Dataset"); + } + /** + * Updates information in an existing dataset. The update method replaces the + * entire dataset resource, whereas the patch method only replaces fields that + * are provided in the submitted dataset resource. (datasets.update) + * + * @param string $projectId + * Project ID of the dataset being updated + * @param string $datasetId + * Dataset ID of the dataset being updated + * @param Google_Dataset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Dataset + */ + public function update($projectId, $datasetId, Google_Service_Bigquery_Dataset $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Bigquery_Dataset"); + } +} + +/** + * The "jobs" collection of methods. + * Typical usage is: + * + * $bigqueryService = new Google_Service_Bigquery(...); + * $jobs = $bigqueryService->jobs; + * + */ +class Google_Service_Bigquery_Jobs_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the specified job by ID. (jobs.get) + * + * @param string $projectId + * Project ID of the requested job + * @param string $jobId + * Job ID of the requested job + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Job + */ + public function get($projectId, $jobId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'jobId' => $jobId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Bigquery_Job"); + } + /** + * Retrieves the results of a query job. (jobs.getQueryResults) + * + * @param string $projectId + * Project ID of the query job + * @param string $jobId + * Job ID of the query job + * @param array $optParams Optional parameters. + * + * @opt_param string timeoutMs + * How long to wait for the query to complete, in milliseconds, before returning. Default is to + * return immediately. If the timeout passes before the job completes, the request will fail with a + * TIMEOUT error + * @opt_param string maxResults + * Maximum number of results to read + * @opt_param string pageToken + * Page token, returned by a previous call, to request the next page of results + * @opt_param string startIndex + * Zero-based index of the starting row + * @return Google_Service_Bigquery_GetQueryResultsResponse + */ + public function getQueryResults($projectId, $jobId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'jobId' => $jobId); + $params = array_merge($params, $optParams); + return $this->call('getQueryResults', array($params), "Google_Service_Bigquery_GetQueryResultsResponse"); + } + /** + * Starts a new asynchronous job. (jobs.insert) + * + * @param string $projectId + * Project ID of the project that will be billed for the job + * @param Google_Job $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Job + */ + public function insert($projectId, Google_Service_Bigquery_Job $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Bigquery_Job"); + } + /** + * Lists all the Jobs in the specified project that were started by the user. + * The job list returns in reverse chronological order of when the jobs were + * created, starting with the most recent job created. (jobs.listJobs) + * + * @param string $projectId + * Project ID of the jobs to list + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Restrict information returned to a set of selected fields + * @opt_param string stateFilter + * Filter for job state + * @opt_param bool allUsers + * Whether to display jobs owned by all users in the project. Default false + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string pageToken + * Page token, returned by a previous call, to request the next page of results + * @return Google_Service_Bigquery_JobList + */ + public function listJobs($projectId, $optParams = array()) + { + $params = array('projectId' => $projectId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Bigquery_JobList"); + } + /** + * Runs a BigQuery SQL query synchronously and returns query results if the + * query completes within a specified timeout. (jobs.query) + * + * @param string $projectId + * Project ID of the project billed for the query + * @param Google_QueryRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_QueryResponse + */ + public function query($projectId, Google_Service_Bigquery_QueryRequest $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('query', array($params), "Google_Service_Bigquery_QueryResponse"); + } +} + +/** + * The "projects" collection of methods. + * Typical usage is: + * + * $bigqueryService = new Google_Service_Bigquery(...); + * $projects = $bigqueryService->projects; + * + */ +class Google_Service_Bigquery_Projects_Resource extends Google_Service_Resource +{ + + /** + * Lists the projects to which you have at least read access. + * (projects.listProjects) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Page token, returned by a previous call, to request the next page of results + * @opt_param string maxResults + * Maximum number of results to return + * @return Google_Service_Bigquery_ProjectList + */ + public function listProjects($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Bigquery_ProjectList"); + } +} + +/** + * The "tabledata" collection of methods. + * Typical usage is: + * + * $bigqueryService = new Google_Service_Bigquery(...); + * $tabledata = $bigqueryService->tabledata; + * + */ +class Google_Service_Bigquery_Tabledata_Resource extends Google_Service_Resource +{ + + /** + * Streams data into BigQuery one record at a time without needing to run a load + * job. (tabledata.insertAll) + * + * @param string $projectId + * Project ID of the destination table. + * @param string $datasetId + * Dataset ID of the destination table. + * @param string $tableId + * Table ID of the destination table. + * @param Google_TableDataInsertAllRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_TableDataInsertAllResponse + */ + public function insertAll($projectId, $datasetId, $tableId, Google_Service_Bigquery_TableDataInsertAllRequest $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insertAll', array($params), "Google_Service_Bigquery_TableDataInsertAllResponse"); + } + /** + * Retrieves table data from a specified set of rows. (tabledata.listTabledata) + * + * @param string $projectId + * Project ID of the table to read + * @param string $datasetId + * Dataset ID of the table to read + * @param string $tableId + * Table ID of the table to read + * @param array $optParams Optional parameters. + * + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string pageToken + * Page token, returned by a previous call, identifying the result set + * @opt_param string startIndex + * Zero-based index of the starting row to read + * @return Google_Service_Bigquery_TableDataList + */ + public function listTabledata($projectId, $datasetId, $tableId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Bigquery_TableDataList"); + } +} + +/** + * The "tables" collection of methods. + * Typical usage is: + * + * $bigqueryService = new Google_Service_Bigquery(...); + * $tables = $bigqueryService->tables; + * + */ +class Google_Service_Bigquery_Tables_Resource extends Google_Service_Resource +{ + + /** + * Deletes the table specified by tableId from the dataset. If the table + * contains data, all the data will be deleted. (tables.delete) + * + * @param string $projectId + * Project ID of the table to delete + * @param string $datasetId + * Dataset ID of the table to delete + * @param string $tableId + * Table ID of the table to delete + * @param array $optParams Optional parameters. + */ + public function delete($projectId, $datasetId, $tableId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the specified table resource by table ID. This method does not return + * the data in the table, it only returns the table resource, which describes + * the structure of this table. (tables.get) + * + * @param string $projectId + * Project ID of the requested table + * @param string $datasetId + * Dataset ID of the requested table + * @param string $tableId + * Table ID of the requested table + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Table + */ + public function get($projectId, $datasetId, $tableId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Bigquery_Table"); + } + /** + * Creates a new, empty table in the dataset. (tables.insert) + * + * @param string $projectId + * Project ID of the new table + * @param string $datasetId + * Dataset ID of the new table + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Table + */ + public function insert($projectId, $datasetId, Google_Service_Bigquery_Table $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Bigquery_Table"); + } + /** + * Lists all tables in the specified dataset. (tables.listTables) + * + * @param string $projectId + * Project ID of the tables to list + * @param string $datasetId + * Dataset ID of the tables to list + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Page token, returned by a previous call, to request the next page of results + * @opt_param string maxResults + * Maximum number of results to return + * @return Google_Service_Bigquery_TableList + */ + public function listTables($projectId, $datasetId, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Bigquery_TableList"); + } + /** + * Updates information in an existing table. The update method replaces the + * entire table resource, whereas the patch method only replaces fields that are + * provided in the submitted table resource. This method supports patch + * semantics. (tables.patch) + * + * @param string $projectId + * Project ID of the table to update + * @param string $datasetId + * Dataset ID of the table to update + * @param string $tableId + * Table ID of the table to update + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Table + */ + public function patch($projectId, $datasetId, $tableId, Google_Service_Bigquery_Table $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Bigquery_Table"); + } + /** + * Updates information in an existing table. The update method replaces the + * entire table resource, whereas the patch method only replaces fields that are + * provided in the submitted table resource. (tables.update) + * + * @param string $projectId + * Project ID of the table to update + * @param string $datasetId + * Dataset ID of the table to update + * @param string $tableId + * Table ID of the table to update + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Bigquery_Table + */ + public function update($projectId, $datasetId, $tableId, Google_Service_Bigquery_Table $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Bigquery_Table"); + } +} + + + + +class Google_Service_Bigquery_Dataset extends Google_Collection +{ + protected $collection_key = 'access'; + protected $internal_gapi_mappings = array( + ); + protected $accessType = 'Google_Service_Bigquery_DatasetAccess'; + protected $accessDataType = 'array'; + public $creationTime; + protected $datasetReferenceType = 'Google_Service_Bigquery_DatasetReference'; + protected $datasetReferenceDataType = ''; + public $description; + public $etag; + public $friendlyName; + public $id; + public $kind; + public $lastModifiedTime; + public $selfLink; + + public function setAccess($access) + { + $this->access = $access; + } + + public function getAccess() + { + return $this->access; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setDatasetReference(Google_Service_Bigquery_DatasetReference $datasetReference) + { + $this->datasetReference = $datasetReference; + } + + public function getDatasetReference() + { + return $this->datasetReference; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFriendlyName($friendlyName) + { + $this->friendlyName = $friendlyName; + } + + public function getFriendlyName() + { + return $this->friendlyName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Bigquery_DatasetAccess extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $domain; + public $groupByEmail; + public $role; + public $specialGroup; + public $userByEmail; + protected $viewType = 'Google_Service_Bigquery_TableReference'; + protected $viewDataType = ''; + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setGroupByEmail($groupByEmail) + { + $this->groupByEmail = $groupByEmail; + } + + public function getGroupByEmail() + { + return $this->groupByEmail; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setSpecialGroup($specialGroup) + { + $this->specialGroup = $specialGroup; + } + + public function getSpecialGroup() + { + return $this->specialGroup; + } + + public function setUserByEmail($userByEmail) + { + $this->userByEmail = $userByEmail; + } + + public function getUserByEmail() + { + return $this->userByEmail; + } + + public function setView(Google_Service_Bigquery_TableReference $view) + { + $this->view = $view; + } + + public function getView() + { + return $this->view; + } +} + +class Google_Service_Bigquery_DatasetList extends Google_Collection +{ + protected $collection_key = 'datasets'; + protected $internal_gapi_mappings = array( + ); + protected $datasetsType = 'Google_Service_Bigquery_DatasetListDatasets'; + protected $datasetsDataType = 'array'; + public $etag; + public $kind; + public $nextPageToken; + + public function setDatasets($datasets) + { + $this->datasets = $datasets; + } + + public function getDatasets() + { + return $this->datasets; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Bigquery_DatasetListDatasets extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $datasetReferenceType = 'Google_Service_Bigquery_DatasetReference'; + protected $datasetReferenceDataType = ''; + public $friendlyName; + public $id; + public $kind; + + public function setDatasetReference(Google_Service_Bigquery_DatasetReference $datasetReference) + { + $this->datasetReference = $datasetReference; + } + + public function getDatasetReference() + { + return $this->datasetReference; + } + + public function setFriendlyName($friendlyName) + { + $this->friendlyName = $friendlyName; + } + + public function getFriendlyName() + { + return $this->friendlyName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Bigquery_DatasetReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $datasetId; + public $projectId; + + public function setDatasetId($datasetId) + { + $this->datasetId = $datasetId; + } + + public function getDatasetId() + { + return $this->datasetId; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } +} + +class Google_Service_Bigquery_ErrorProto extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $debugInfo; + public $location; + public $message; + public $reason; + + public function setDebugInfo($debugInfo) + { + $this->debugInfo = $debugInfo; + } + + public function getDebugInfo() + { + return $this->debugInfo; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_Bigquery_GetQueryResultsResponse extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + public $cacheHit; + public $etag; + public $jobComplete; + protected $jobReferenceType = 'Google_Service_Bigquery_JobReference'; + protected $jobReferenceDataType = ''; + public $kind; + public $pageToken; + protected $rowsType = 'Google_Service_Bigquery_TableRow'; + protected $rowsDataType = 'array'; + protected $schemaType = 'Google_Service_Bigquery_TableSchema'; + protected $schemaDataType = ''; + public $totalRows; + + public function setCacheHit($cacheHit) + { + $this->cacheHit = $cacheHit; + } + + public function getCacheHit() + { + return $this->cacheHit; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setJobComplete($jobComplete) + { + $this->jobComplete = $jobComplete; + } + + public function getJobComplete() + { + return $this->jobComplete; + } + + public function setJobReference(Google_Service_Bigquery_JobReference $jobReference) + { + $this->jobReference = $jobReference; + } + + public function getJobReference() + { + return $this->jobReference; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setSchema(Google_Service_Bigquery_TableSchema $schema) + { + $this->schema = $schema; + } + + public function getSchema() + { + return $this->schema; + } + + public function setTotalRows($totalRows) + { + $this->totalRows = $totalRows; + } + + public function getTotalRows() + { + return $this->totalRows; + } +} + +class Google_Service_Bigquery_Job extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $configurationType = 'Google_Service_Bigquery_JobConfiguration'; + protected $configurationDataType = ''; + public $etag; + public $id; + protected $jobReferenceType = 'Google_Service_Bigquery_JobReference'; + protected $jobReferenceDataType = ''; + public $kind; + public $selfLink; + protected $statisticsType = 'Google_Service_Bigquery_JobStatistics'; + protected $statisticsDataType = ''; + protected $statusType = 'Google_Service_Bigquery_JobStatus'; + protected $statusDataType = ''; + + public function setConfiguration(Google_Service_Bigquery_JobConfiguration $configuration) + { + $this->configuration = $configuration; + } + + public function getConfiguration() + { + return $this->configuration; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setJobReference(Google_Service_Bigquery_JobReference $jobReference) + { + $this->jobReference = $jobReference; + } + + public function getJobReference() + { + return $this->jobReference; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatistics(Google_Service_Bigquery_JobStatistics $statistics) + { + $this->statistics = $statistics; + } + + public function getStatistics() + { + return $this->statistics; + } + + public function setStatus(Google_Service_Bigquery_JobStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Bigquery_JobConfiguration extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $copyType = 'Google_Service_Bigquery_JobConfigurationTableCopy'; + protected $copyDataType = ''; + public $dryRun; + protected $extractType = 'Google_Service_Bigquery_JobConfigurationExtract'; + protected $extractDataType = ''; + protected $linkType = 'Google_Service_Bigquery_JobConfigurationLink'; + protected $linkDataType = ''; + protected $loadType = 'Google_Service_Bigquery_JobConfigurationLoad'; + protected $loadDataType = ''; + protected $queryType = 'Google_Service_Bigquery_JobConfigurationQuery'; + protected $queryDataType = ''; + + public function setCopy(Google_Service_Bigquery_JobConfigurationTableCopy $copy) + { + $this->copy = $copy; + } + + public function getCopy() + { + return $this->copy; + } + + public function setDryRun($dryRun) + { + $this->dryRun = $dryRun; + } + + public function getDryRun() + { + return $this->dryRun; + } + + public function setExtract(Google_Service_Bigquery_JobConfigurationExtract $extract) + { + $this->extract = $extract; + } + + public function getExtract() + { + return $this->extract; + } + + public function setLink(Google_Service_Bigquery_JobConfigurationLink $link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setLoad(Google_Service_Bigquery_JobConfigurationLoad $load) + { + $this->load = $load; + } + + public function getLoad() + { + return $this->load; + } + + public function setQuery(Google_Service_Bigquery_JobConfigurationQuery $query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } +} + +class Google_Service_Bigquery_JobConfigurationExtract extends Google_Collection +{ + protected $collection_key = 'destinationUris'; + protected $internal_gapi_mappings = array( + ); + public $compression; + public $destinationFormat; + public $destinationUri; + public $destinationUris; + public $fieldDelimiter; + public $printHeader; + protected $sourceTableType = 'Google_Service_Bigquery_TableReference'; + protected $sourceTableDataType = ''; + + public function setCompression($compression) + { + $this->compression = $compression; + } + + public function getCompression() + { + return $this->compression; + } + + public function setDestinationFormat($destinationFormat) + { + $this->destinationFormat = $destinationFormat; + } + + public function getDestinationFormat() + { + return $this->destinationFormat; + } + + public function setDestinationUri($destinationUri) + { + $this->destinationUri = $destinationUri; + } + + public function getDestinationUri() + { + return $this->destinationUri; + } + + public function setDestinationUris($destinationUris) + { + $this->destinationUris = $destinationUris; + } + + public function getDestinationUris() + { + return $this->destinationUris; + } + + public function setFieldDelimiter($fieldDelimiter) + { + $this->fieldDelimiter = $fieldDelimiter; + } + + public function getFieldDelimiter() + { + return $this->fieldDelimiter; + } + + public function setPrintHeader($printHeader) + { + $this->printHeader = $printHeader; + } + + public function getPrintHeader() + { + return $this->printHeader; + } + + public function setSourceTable(Google_Service_Bigquery_TableReference $sourceTable) + { + $this->sourceTable = $sourceTable; + } + + public function getSourceTable() + { + return $this->sourceTable; + } +} + +class Google_Service_Bigquery_JobConfigurationLink extends Google_Collection +{ + protected $collection_key = 'sourceUri'; + protected $internal_gapi_mappings = array( + ); + public $createDisposition; + protected $destinationTableType = 'Google_Service_Bigquery_TableReference'; + protected $destinationTableDataType = ''; + public $sourceUri; + public $writeDisposition; + + public function setCreateDisposition($createDisposition) + { + $this->createDisposition = $createDisposition; + } + + public function getCreateDisposition() + { + return $this->createDisposition; + } + + public function setDestinationTable(Google_Service_Bigquery_TableReference $destinationTable) + { + $this->destinationTable = $destinationTable; + } + + public function getDestinationTable() + { + return $this->destinationTable; + } + + public function setSourceUri($sourceUri) + { + $this->sourceUri = $sourceUri; + } + + public function getSourceUri() + { + return $this->sourceUri; + } + + public function setWriteDisposition($writeDisposition) + { + $this->writeDisposition = $writeDisposition; + } + + public function getWriteDisposition() + { + return $this->writeDisposition; + } +} + +class Google_Service_Bigquery_JobConfigurationLoad extends Google_Collection +{ + protected $collection_key = 'sourceUris'; + protected $internal_gapi_mappings = array( + ); + public $allowJaggedRows; + public $allowQuotedNewlines; + public $createDisposition; + protected $destinationTableType = 'Google_Service_Bigquery_TableReference'; + protected $destinationTableDataType = ''; + public $encoding; + public $fieldDelimiter; + public $ignoreUnknownValues; + public $maxBadRecords; + public $quote; + protected $schemaType = 'Google_Service_Bigquery_TableSchema'; + protected $schemaDataType = ''; + public $schemaInline; + public $schemaInlineFormat; + public $skipLeadingRows; + public $sourceFormat; + public $sourceUris; + public $writeDisposition; + + public function setAllowJaggedRows($allowJaggedRows) + { + $this->allowJaggedRows = $allowJaggedRows; + } + + public function getAllowJaggedRows() + { + return $this->allowJaggedRows; + } + + public function setAllowQuotedNewlines($allowQuotedNewlines) + { + $this->allowQuotedNewlines = $allowQuotedNewlines; + } + + public function getAllowQuotedNewlines() + { + return $this->allowQuotedNewlines; + } + + public function setCreateDisposition($createDisposition) + { + $this->createDisposition = $createDisposition; + } + + public function getCreateDisposition() + { + return $this->createDisposition; + } + + public function setDestinationTable(Google_Service_Bigquery_TableReference $destinationTable) + { + $this->destinationTable = $destinationTable; + } + + public function getDestinationTable() + { + return $this->destinationTable; + } + + public function setEncoding($encoding) + { + $this->encoding = $encoding; + } + + public function getEncoding() + { + return $this->encoding; + } + + public function setFieldDelimiter($fieldDelimiter) + { + $this->fieldDelimiter = $fieldDelimiter; + } + + public function getFieldDelimiter() + { + return $this->fieldDelimiter; + } + + public function setIgnoreUnknownValues($ignoreUnknownValues) + { + $this->ignoreUnknownValues = $ignoreUnknownValues; + } + + public function getIgnoreUnknownValues() + { + return $this->ignoreUnknownValues; + } + + public function setMaxBadRecords($maxBadRecords) + { + $this->maxBadRecords = $maxBadRecords; + } + + public function getMaxBadRecords() + { + return $this->maxBadRecords; + } + + public function setQuote($quote) + { + $this->quote = $quote; + } + + public function getQuote() + { + return $this->quote; + } + + public function setSchema(Google_Service_Bigquery_TableSchema $schema) + { + $this->schema = $schema; + } + + public function getSchema() + { + return $this->schema; + } + + public function setSchemaInline($schemaInline) + { + $this->schemaInline = $schemaInline; + } + + public function getSchemaInline() + { + return $this->schemaInline; + } + + public function setSchemaInlineFormat($schemaInlineFormat) + { + $this->schemaInlineFormat = $schemaInlineFormat; + } + + public function getSchemaInlineFormat() + { + return $this->schemaInlineFormat; + } + + public function setSkipLeadingRows($skipLeadingRows) + { + $this->skipLeadingRows = $skipLeadingRows; + } + + public function getSkipLeadingRows() + { + return $this->skipLeadingRows; + } + + public function setSourceFormat($sourceFormat) + { + $this->sourceFormat = $sourceFormat; + } + + public function getSourceFormat() + { + return $this->sourceFormat; + } + + public function setSourceUris($sourceUris) + { + $this->sourceUris = $sourceUris; + } + + public function getSourceUris() + { + return $this->sourceUris; + } + + public function setWriteDisposition($writeDisposition) + { + $this->writeDisposition = $writeDisposition; + } + + public function getWriteDisposition() + { + return $this->writeDisposition; + } +} + +class Google_Service_Bigquery_JobConfigurationQuery extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $allowLargeResults; + public $createDisposition; + protected $defaultDatasetType = 'Google_Service_Bigquery_DatasetReference'; + protected $defaultDatasetDataType = ''; + protected $destinationTableType = 'Google_Service_Bigquery_TableReference'; + protected $destinationTableDataType = ''; + public $flattenResults; + public $preserveNulls; + public $priority; + public $query; + public $useQueryCache; + public $writeDisposition; + + public function setAllowLargeResults($allowLargeResults) + { + $this->allowLargeResults = $allowLargeResults; + } + + public function getAllowLargeResults() + { + return $this->allowLargeResults; + } + + public function setCreateDisposition($createDisposition) + { + $this->createDisposition = $createDisposition; + } + + public function getCreateDisposition() + { + return $this->createDisposition; + } + + public function setDefaultDataset(Google_Service_Bigquery_DatasetReference $defaultDataset) + { + $this->defaultDataset = $defaultDataset; + } + + public function getDefaultDataset() + { + return $this->defaultDataset; + } + + public function setDestinationTable(Google_Service_Bigquery_TableReference $destinationTable) + { + $this->destinationTable = $destinationTable; + } + + public function getDestinationTable() + { + return $this->destinationTable; + } + + public function setFlattenResults($flattenResults) + { + $this->flattenResults = $flattenResults; + } + + public function getFlattenResults() + { + return $this->flattenResults; + } + + public function setPreserveNulls($preserveNulls) + { + $this->preserveNulls = $preserveNulls; + } + + public function getPreserveNulls() + { + return $this->preserveNulls; + } + + public function setPriority($priority) + { + $this->priority = $priority; + } + + public function getPriority() + { + return $this->priority; + } + + public function setQuery($query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setUseQueryCache($useQueryCache) + { + $this->useQueryCache = $useQueryCache; + } + + public function getUseQueryCache() + { + return $this->useQueryCache; + } + + public function setWriteDisposition($writeDisposition) + { + $this->writeDisposition = $writeDisposition; + } + + public function getWriteDisposition() + { + return $this->writeDisposition; + } +} + +class Google_Service_Bigquery_JobConfigurationTableCopy extends Google_Collection +{ + protected $collection_key = 'sourceTables'; + protected $internal_gapi_mappings = array( + ); + public $createDisposition; + protected $destinationTableType = 'Google_Service_Bigquery_TableReference'; + protected $destinationTableDataType = ''; + protected $sourceTableType = 'Google_Service_Bigquery_TableReference'; + protected $sourceTableDataType = ''; + protected $sourceTablesType = 'Google_Service_Bigquery_TableReference'; + protected $sourceTablesDataType = 'array'; + public $writeDisposition; + + public function setCreateDisposition($createDisposition) + { + $this->createDisposition = $createDisposition; + } + + public function getCreateDisposition() + { + return $this->createDisposition; + } + + public function setDestinationTable(Google_Service_Bigquery_TableReference $destinationTable) + { + $this->destinationTable = $destinationTable; + } + + public function getDestinationTable() + { + return $this->destinationTable; + } + + public function setSourceTable(Google_Service_Bigquery_TableReference $sourceTable) + { + $this->sourceTable = $sourceTable; + } + + public function getSourceTable() + { + return $this->sourceTable; + } + + public function setSourceTables($sourceTables) + { + $this->sourceTables = $sourceTables; + } + + public function getSourceTables() + { + return $this->sourceTables; + } + + public function setWriteDisposition($writeDisposition) + { + $this->writeDisposition = $writeDisposition; + } + + public function getWriteDisposition() + { + return $this->writeDisposition; + } +} + +class Google_Service_Bigquery_JobList extends Google_Collection +{ + protected $collection_key = 'jobs'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $jobsType = 'Google_Service_Bigquery_JobListJobs'; + protected $jobsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setJobs($jobs) + { + $this->jobs = $jobs; + } + + public function getJobs() + { + return $this->jobs; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Bigquery_JobListJobs extends Google_Model +{ + protected $internal_gapi_mappings = array( + "userEmail" => "user_email", + ); + protected $configurationType = 'Google_Service_Bigquery_JobConfiguration'; + protected $configurationDataType = ''; + protected $errorResultType = 'Google_Service_Bigquery_ErrorProto'; + protected $errorResultDataType = ''; + public $id; + protected $jobReferenceType = 'Google_Service_Bigquery_JobReference'; + protected $jobReferenceDataType = ''; + public $kind; + public $state; + protected $statisticsType = 'Google_Service_Bigquery_JobStatistics'; + protected $statisticsDataType = ''; + protected $statusType = 'Google_Service_Bigquery_JobStatus'; + protected $statusDataType = ''; + public $userEmail; + + public function setConfiguration(Google_Service_Bigquery_JobConfiguration $configuration) + { + $this->configuration = $configuration; + } + + public function getConfiguration() + { + return $this->configuration; + } + + public function setErrorResult(Google_Service_Bigquery_ErrorProto $errorResult) + { + $this->errorResult = $errorResult; + } + + public function getErrorResult() + { + return $this->errorResult; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setJobReference(Google_Service_Bigquery_JobReference $jobReference) + { + $this->jobReference = $jobReference; + } + + public function getJobReference() + { + return $this->jobReference; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setStatistics(Google_Service_Bigquery_JobStatistics $statistics) + { + $this->statistics = $statistics; + } + + public function getStatistics() + { + return $this->statistics; + } + + public function setStatus(Google_Service_Bigquery_JobStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUserEmail($userEmail) + { + $this->userEmail = $userEmail; + } + + public function getUserEmail() + { + return $this->userEmail; + } +} + +class Google_Service_Bigquery_JobReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $jobId; + public $projectId; + + public function setJobId($jobId) + { + $this->jobId = $jobId; + } + + public function getJobId() + { + return $this->jobId; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } +} + +class Google_Service_Bigquery_JobStatistics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $creationTime; + public $endTime; + protected $loadType = 'Google_Service_Bigquery_JobStatistics3'; + protected $loadDataType = ''; + protected $queryType = 'Google_Service_Bigquery_JobStatistics2'; + protected $queryDataType = ''; + public $startTime; + public $totalBytesProcessed; + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setLoad(Google_Service_Bigquery_JobStatistics3 $load) + { + $this->load = $load; + } + + public function getLoad() + { + return $this->load; + } + + public function setQuery(Google_Service_Bigquery_JobStatistics2 $query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setTotalBytesProcessed($totalBytesProcessed) + { + $this->totalBytesProcessed = $totalBytesProcessed; + } + + public function getTotalBytesProcessed() + { + return $this->totalBytesProcessed; + } +} + +class Google_Service_Bigquery_JobStatistics2 extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $cacheHit; + public $totalBytesProcessed; + + public function setCacheHit($cacheHit) + { + $this->cacheHit = $cacheHit; + } + + public function getCacheHit() + { + return $this->cacheHit; + } + + public function setTotalBytesProcessed($totalBytesProcessed) + { + $this->totalBytesProcessed = $totalBytesProcessed; + } + + public function getTotalBytesProcessed() + { + return $this->totalBytesProcessed; + } +} + +class Google_Service_Bigquery_JobStatistics3 extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $inputFileBytes; + public $inputFiles; + public $outputBytes; + public $outputRows; + + public function setInputFileBytes($inputFileBytes) + { + $this->inputFileBytes = $inputFileBytes; + } + + public function getInputFileBytes() + { + return $this->inputFileBytes; + } + + public function setInputFiles($inputFiles) + { + $this->inputFiles = $inputFiles; + } + + public function getInputFiles() + { + return $this->inputFiles; + } + + public function setOutputBytes($outputBytes) + { + $this->outputBytes = $outputBytes; + } + + public function getOutputBytes() + { + return $this->outputBytes; + } + + public function setOutputRows($outputRows) + { + $this->outputRows = $outputRows; + } + + public function getOutputRows() + { + return $this->outputRows; + } +} + +class Google_Service_Bigquery_JobStatus extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $errorResultType = 'Google_Service_Bigquery_ErrorProto'; + protected $errorResultDataType = ''; + protected $errorsType = 'Google_Service_Bigquery_ErrorProto'; + protected $errorsDataType = 'array'; + public $state; + + public function setErrorResult(Google_Service_Bigquery_ErrorProto $errorResult) + { + $this->errorResult = $errorResult; + } + + public function getErrorResult() + { + return $this->errorResult; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_Bigquery_JsonObject extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Bigquery_ProjectList extends Google_Collection +{ + protected $collection_key = 'projects'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + public $nextPageToken; + protected $projectsType = 'Google_Service_Bigquery_ProjectListProjects'; + protected $projectsDataType = 'array'; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setProjects($projects) + { + $this->projects = $projects; + } + + public function getProjects() + { + return $this->projects; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Bigquery_ProjectListProjects extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $friendlyName; + public $id; + public $kind; + public $numericId; + protected $projectReferenceType = 'Google_Service_Bigquery_ProjectReference'; + protected $projectReferenceDataType = ''; + + public function setFriendlyName($friendlyName) + { + $this->friendlyName = $friendlyName; + } + + public function getFriendlyName() + { + return $this->friendlyName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNumericId($numericId) + { + $this->numericId = $numericId; + } + + public function getNumericId() + { + return $this->numericId; + } + + public function setProjectReference(Google_Service_Bigquery_ProjectReference $projectReference) + { + $this->projectReference = $projectReference; + } + + public function getProjectReference() + { + return $this->projectReference; + } +} + +class Google_Service_Bigquery_ProjectReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $projectId; + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } +} + +class Google_Service_Bigquery_QueryRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $defaultDatasetType = 'Google_Service_Bigquery_DatasetReference'; + protected $defaultDatasetDataType = ''; + public $dryRun; + public $kind; + public $maxResults; + public $preserveNulls; + public $query; + public $timeoutMs; + public $useQueryCache; + + public function setDefaultDataset(Google_Service_Bigquery_DatasetReference $defaultDataset) + { + $this->defaultDataset = $defaultDataset; + } + + public function getDefaultDataset() + { + return $this->defaultDataset; + } + + public function setDryRun($dryRun) + { + $this->dryRun = $dryRun; + } + + public function getDryRun() + { + return $this->dryRun; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setPreserveNulls($preserveNulls) + { + $this->preserveNulls = $preserveNulls; + } + + public function getPreserveNulls() + { + return $this->preserveNulls; + } + + public function setQuery($query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setTimeoutMs($timeoutMs) + { + $this->timeoutMs = $timeoutMs; + } + + public function getTimeoutMs() + { + return $this->timeoutMs; + } + + public function setUseQueryCache($useQueryCache) + { + $this->useQueryCache = $useQueryCache; + } + + public function getUseQueryCache() + { + return $this->useQueryCache; + } +} + +class Google_Service_Bigquery_QueryResponse extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + public $cacheHit; + public $jobComplete; + protected $jobReferenceType = 'Google_Service_Bigquery_JobReference'; + protected $jobReferenceDataType = ''; + public $kind; + public $pageToken; + protected $rowsType = 'Google_Service_Bigquery_TableRow'; + protected $rowsDataType = 'array'; + protected $schemaType = 'Google_Service_Bigquery_TableSchema'; + protected $schemaDataType = ''; + public $totalBytesProcessed; + public $totalRows; + + public function setCacheHit($cacheHit) + { + $this->cacheHit = $cacheHit; + } + + public function getCacheHit() + { + return $this->cacheHit; + } + + public function setJobComplete($jobComplete) + { + $this->jobComplete = $jobComplete; + } + + public function getJobComplete() + { + return $this->jobComplete; + } + + public function setJobReference(Google_Service_Bigquery_JobReference $jobReference) + { + $this->jobReference = $jobReference; + } + + public function getJobReference() + { + return $this->jobReference; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setSchema(Google_Service_Bigquery_TableSchema $schema) + { + $this->schema = $schema; + } + + public function getSchema() + { + return $this->schema; + } + + public function setTotalBytesProcessed($totalBytesProcessed) + { + $this->totalBytesProcessed = $totalBytesProcessed; + } + + public function getTotalBytesProcessed() + { + return $this->totalBytesProcessed; + } + + public function setTotalRows($totalRows) + { + $this->totalRows = $totalRows; + } + + public function getTotalRows() + { + return $this->totalRows; + } +} + +class Google_Service_Bigquery_Table extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $creationTime; + public $description; + public $etag; + public $expirationTime; + public $friendlyName; + public $id; + public $kind; + public $lastModifiedTime; + public $numBytes; + public $numRows; + protected $schemaType = 'Google_Service_Bigquery_TableSchema'; + protected $schemaDataType = ''; + public $selfLink; + protected $tableReferenceType = 'Google_Service_Bigquery_TableReference'; + protected $tableReferenceDataType = ''; + public $type; + protected $viewType = 'Google_Service_Bigquery_ViewDefinition'; + protected $viewDataType = ''; + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExpirationTime($expirationTime) + { + $this->expirationTime = $expirationTime; + } + + public function getExpirationTime() + { + return $this->expirationTime; + } + + public function setFriendlyName($friendlyName) + { + $this->friendlyName = $friendlyName; + } + + public function getFriendlyName() + { + return $this->friendlyName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setNumBytes($numBytes) + { + $this->numBytes = $numBytes; + } + + public function getNumBytes() + { + return $this->numBytes; + } + + public function setNumRows($numRows) + { + $this->numRows = $numRows; + } + + public function getNumRows() + { + return $this->numRows; + } + + public function setSchema(Google_Service_Bigquery_TableSchema $schema) + { + $this->schema = $schema; + } + + public function getSchema() + { + return $this->schema; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTableReference(Google_Service_Bigquery_TableReference $tableReference) + { + $this->tableReference = $tableReference; + } + + public function getTableReference() + { + return $this->tableReference; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setView(Google_Service_Bigquery_ViewDefinition $view) + { + $this->view = $view; + } + + public function getView() + { + return $this->view; + } +} + +class Google_Service_Bigquery_TableCell extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $v; + + public function setV($v) + { + $this->v = $v; + } + + public function getV() + { + return $this->v; + } +} + +class Google_Service_Bigquery_TableDataInsertAllRequest extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $rowsType = 'Google_Service_Bigquery_TableDataInsertAllRequestRows'; + protected $rowsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } +} + +class Google_Service_Bigquery_TableDataInsertAllRequestRows extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $insertId; + public $json; + + public function setInsertId($insertId) + { + $this->insertId = $insertId; + } + + public function getInsertId() + { + return $this->insertId; + } + + public function setJson($json) + { + $this->json = $json; + } + + public function getJson() + { + return $this->json; + } +} + +class Google_Service_Bigquery_TableDataInsertAllResponse extends Google_Collection +{ + protected $collection_key = 'insertErrors'; + protected $internal_gapi_mappings = array( + ); + protected $insertErrorsType = 'Google_Service_Bigquery_TableDataInsertAllResponseInsertErrors'; + protected $insertErrorsDataType = 'array'; + public $kind; + + public function setInsertErrors($insertErrors) + { + $this->insertErrors = $insertErrors; + } + + public function getInsertErrors() + { + return $this->insertErrors; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Bigquery_TableDataInsertAllResponseInsertErrors extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $errorsType = 'Google_Service_Bigquery_ErrorProto'; + protected $errorsDataType = 'array'; + public $index; + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setIndex($index) + { + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } +} + +class Google_Service_Bigquery_TableDataList extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + public $pageToken; + protected $rowsType = 'Google_Service_Bigquery_TableRow'; + protected $rowsDataType = 'array'; + public $totalRows; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setTotalRows($totalRows) + { + $this->totalRows = $totalRows; + } + + public function getTotalRows() + { + return $this->totalRows; + } +} + +class Google_Service_Bigquery_TableFieldSchema extends Google_Collection +{ + protected $collection_key = 'fields'; + protected $internal_gapi_mappings = array( + ); + public $description; + protected $fieldsType = 'Google_Service_Bigquery_TableFieldSchema'; + protected $fieldsDataType = 'array'; + public $mode; + public $name; + public $type; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setFields($fields) + { + $this->fields = $fields; + } + + public function getFields() + { + return $this->fields; + } + + public function setMode($mode) + { + $this->mode = $mode; + } + + public function getMode() + { + return $this->mode; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Bigquery_TableList extends Google_Collection +{ + protected $collection_key = 'tables'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + public $nextPageToken; + protected $tablesType = 'Google_Service_Bigquery_TableListTables'; + protected $tablesDataType = 'array'; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTables($tables) + { + $this->tables = $tables; + } + + public function getTables() + { + return $this->tables; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Bigquery_TableListTables extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $friendlyName; + public $id; + public $kind; + protected $tableReferenceType = 'Google_Service_Bigquery_TableReference'; + protected $tableReferenceDataType = ''; + public $type; + + public function setFriendlyName($friendlyName) + { + $this->friendlyName = $friendlyName; + } + + public function getFriendlyName() + { + return $this->friendlyName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTableReference(Google_Service_Bigquery_TableReference $tableReference) + { + $this->tableReference = $tableReference; + } + + public function getTableReference() + { + return $this->tableReference; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Bigquery_TableReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $datasetId; + public $projectId; + public $tableId; + + public function setDatasetId($datasetId) + { + $this->datasetId = $datasetId; + } + + public function getDatasetId() + { + return $this->datasetId; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } +} + +class Google_Service_Bigquery_TableRow extends Google_Collection +{ + protected $collection_key = 'f'; + protected $internal_gapi_mappings = array( + ); + protected $fType = 'Google_Service_Bigquery_TableCell'; + protected $fDataType = 'array'; + + public function setF($f) + { + $this->f = $f; + } + + public function getF() + { + return $this->f; + } +} + +class Google_Service_Bigquery_TableSchema extends Google_Collection +{ + protected $collection_key = 'fields'; + protected $internal_gapi_mappings = array( + ); + protected $fieldsType = 'Google_Service_Bigquery_TableFieldSchema'; + protected $fieldsDataType = 'array'; + + public function setFields($fields) + { + $this->fields = $fields; + } + + public function getFields() + { + return $this->fields; + } +} + +class Google_Service_Bigquery_ViewDefinition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $query; + + public function setQuery($query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Blogger.php b/vendor/google/apiclient/src/Google/Service/Blogger.php new file mode 100644 index 0000000..304eb51 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Blogger.php @@ -0,0 +1,3546 @@ + + * API for access to the data within Blogger. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Blogger extends Google_Service +{ + /** Manage your Blogger account. */ + const BLOGGER = "https://www.googleapis.com/auth/blogger"; + /** View your Blogger account. */ + const BLOGGER_READONLY = "https://www.googleapis.com/auth/blogger.readonly"; + + public $blogUserInfos; + public $blogs; + public $comments; + public $pageViews; + public $pages; + public $postUserInfos; + public $posts; + public $users; + + + /** + * Constructs the internal representation of the Blogger service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'blogger/v3/'; + $this->version = 'v3'; + $this->serviceName = 'blogger'; + + $this->blogUserInfos = new Google_Service_Blogger_BlogUserInfos_Resource( + $this, + $this->serviceName, + 'blogUserInfos', + array( + 'methods' => array( + 'get' => array( + 'path' => 'users/{userId}/blogs/{blogId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxPosts' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->blogs = new Google_Service_Blogger_Blogs_Resource( + $this, + $this->serviceName, + 'blogs', + array( + 'methods' => array( + 'get' => array( + 'path' => 'blogs/{blogId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxPosts' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'getByUrl' => array( + 'path' => 'blogs/byurl', + 'httpMethod' => 'GET', + 'parameters' => array( + 'url' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'listByUser' => array( + 'path' => 'users/{userId}/blogs', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'fetchUserInfo' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'status' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->comments = new Google_Service_Blogger_Comments_Resource( + $this, + $this->serviceName, + 'comments', + array( + 'methods' => array( + 'approve' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/comments/{commentId}/approve', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/comments/{commentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/comments/{commentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'status' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'fetchBodies' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'listByBlog' => array( + 'path' => 'blogs/{blogId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'fetchBodies' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'markAsSpam' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/comments/{commentId}/spam', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'removeContent' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/comments/{commentId}/removecontent', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->pageViews = new Google_Service_Blogger_PageViews_Resource( + $this, + $this->serviceName, + 'pageViews', + array( + 'methods' => array( + 'get' => array( + 'path' => 'blogs/{blogId}/pageviews', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'range' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->pages = new Google_Service_Blogger_Pages_Resource( + $this, + $this->serviceName, + 'pages', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'blogs/{blogId}/pages/{pageId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'blogs/{blogId}/pages/{pageId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'blogs/{blogId}/pages', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'isDraft' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'blogs/{blogId}/pages', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'status' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'fetchBodies' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'blogs/{blogId}/pages/{pageId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'publish' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'publish' => array( + 'path' => 'blogs/{blogId}/pages/{pageId}/publish', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'revert' => array( + 'path' => 'blogs/{blogId}/pages/{pageId}/revert', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'blogs/{blogId}/pages/{pageId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'publish' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->postUserInfos = new Google_Service_Blogger_PostUserInfos_Resource( + $this, + $this->serviceName, + 'postUserInfos', + array( + 'methods' => array( + 'get' => array( + 'path' => 'users/{userId}/blogs/{blogId}/posts/{postId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxComments' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'list' => array( + 'path' => 'users/{userId}/blogs/{blogId}/posts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'labels' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'status' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'fetchBodies' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->posts = new Google_Service_Blogger_Posts_Resource( + $this, + $this->serviceName, + 'posts', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'blogs/{blogId}/posts/{postId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'blogs/{blogId}/posts/{postId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'fetchBody' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxComments' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'fetchImages' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'getByPath' => array( + 'path' => 'blogs/{blogId}/posts/bypath', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'path' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'maxComments' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'blogs/{blogId}/posts', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'fetchImages' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'isDraft' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'fetchBody' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'blogs/{blogId}/posts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'labels' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'fetchImages' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'status' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'fetchBodies' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'view' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'blogs/{blogId}/posts/{postId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'publish' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'fetchBody' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxComments' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'fetchImages' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'publish' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/publish', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'publishDate' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'revert' => array( + 'path' => 'blogs/{blogId}/posts/{postId}/revert', + 'httpMethod' => 'POST', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'search' => array( + 'path' => 'blogs/{blogId}/posts/search', + 'httpMethod' => 'GET', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'fetchBodies' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'blogs/{blogId}/posts/{postId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'blogId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'postId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'publish' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'fetchBody' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxComments' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'fetchImages' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->users = new Google_Service_Blogger_Users_Resource( + $this, + $this->serviceName, + 'users', + array( + 'methods' => array( + 'get' => array( + 'path' => 'users/{userId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "blogUserInfos" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $blogUserInfos = $bloggerService->blogUserInfos; + * + */ +class Google_Service_Blogger_BlogUserInfos_Resource extends Google_Service_Resource +{ + + /** + * Gets one blog and user info pair by blogId and userId. (blogUserInfos.get) + * + * @param string $userId + * ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the + * user's profile identifier. + * @param string $blogId + * The ID of the blog to get. + * @param array $optParams Optional parameters. + * + * @opt_param string maxPosts + * Maximum number of posts to pull back with the blog. + * @return Google_Service_Blogger_BlogUserInfo + */ + public function get($userId, $blogId, $optParams = array()) + { + $params = array('userId' => $userId, 'blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_BlogUserInfo"); + } +} + +/** + * The "blogs" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $blogs = $bloggerService->blogs; + * + */ +class Google_Service_Blogger_Blogs_Resource extends Google_Service_Resource +{ + + /** + * Gets one blog by ID. (blogs.get) + * + * @param string $blogId + * The ID of the blog to get. + * @param array $optParams Optional parameters. + * + * @opt_param string maxPosts + * Maximum number of posts to pull back with the blog. + * @opt_param string view + * Access level with which to view the blog. Note that some fields require elevated access. + * @return Google_Service_Blogger_Blog + */ + public function get($blogId, $optParams = array()) + { + $params = array('blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_Blog"); + } + /** + * Retrieve a Blog by URL. (blogs.getByUrl) + * + * @param string $url + * The URL of the blog to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string view + * Access level with which to view the blog. Note that some fields require elevated access. + * @return Google_Service_Blogger_Blog + */ + public function getByUrl($url, $optParams = array()) + { + $params = array('url' => $url); + $params = array_merge($params, $optParams); + return $this->call('getByUrl', array($params), "Google_Service_Blogger_Blog"); + } + /** + * Retrieves a list of blogs, possibly filtered. (blogs.listByUser) + * + * @param string $userId + * ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the + * user's profile identifier. + * @param array $optParams Optional parameters. + * + * @opt_param bool fetchUserInfo + * Whether the response is a list of blogs with per-user information instead of just blogs. + * @opt_param string status + * Blog statuses to include in the result (default: Live blogs only). Note that ADMIN access is + * required to view deleted blogs. + * @opt_param string role + * User access types for blogs to include in the results, e.g. AUTHOR will return blogs where the + * user has author level access. If no roles are specified, defaults to ADMIN and AUTHOR roles. + * @opt_param string view + * Access level with which to view the blogs. Note that some fields require elevated access. + * @return Google_Service_Blogger_BlogList + */ + public function listByUser($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('listByUser', array($params), "Google_Service_Blogger_BlogList"); + } +} + +/** + * The "comments" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $comments = $bloggerService->comments; + * + */ +class Google_Service_Blogger_Comments_Resource extends Google_Service_Resource +{ + + /** + * Marks a comment as not spam. (comments.approve) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param string $commentId + * The ID of the comment to mark as not spam. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_Comment + */ + public function approve($blogId, $postId, $commentId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('approve', array($params), "Google_Service_Blogger_Comment"); + } + /** + * Delete a comment by ID. (comments.delete) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param string $commentId + * The ID of the comment to delete. + * @param array $optParams Optional parameters. + */ + public function delete($blogId, $postId, $commentId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets one comment by ID. (comments.get) + * + * @param string $blogId + * ID of the blog to containing the comment. + * @param string $postId + * ID of the post to fetch posts from. + * @param string $commentId + * The ID of the comment to get. + * @param array $optParams Optional parameters. + * + * @opt_param string view + * Access level for the requested comment (default: READER). Note that some comments will require + * elevated permissions, for example comments where the parent posts which is in a draft state, or + * comments that are pending moderation. + * @return Google_Service_Blogger_Comment + */ + public function get($blogId, $postId, $commentId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_Comment"); + } + /** + * Retrieves the comments for a post, possibly filtered. (comments.listComments) + * + * @param string $blogId + * ID of the blog to fetch comments from. + * @param string $postId + * ID of the post to fetch posts from. + * @param array $optParams Optional parameters. + * + * @opt_param string status + * + * @opt_param string startDate + * Earliest date of comment to fetch, a date-time with RFC 3339 formatting. + * @opt_param string endDate + * Latest date of comment to fetch, a date-time with RFC 3339 formatting. + * @opt_param string maxResults + * Maximum number of comments to include in the result. + * @opt_param string pageToken + * Continuation token if request is paged. + * @opt_param bool fetchBodies + * Whether the body content of the comments is included. + * @opt_param string view + * Access level with which to view the returned result. Note that some fields require elevated + * access. + * @return Google_Service_Blogger_CommentList + */ + public function listComments($blogId, $postId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Blogger_CommentList"); + } + /** + * Retrieves the comments for a blog, across all posts, possibly filtered. + * (comments.listByBlog) + * + * @param string $blogId + * ID of the blog to fetch comments from. + * @param array $optParams Optional parameters. + * + * @opt_param string startDate + * Earliest date of comment to fetch, a date-time with RFC 3339 formatting. + * @opt_param string endDate + * Latest date of comment to fetch, a date-time with RFC 3339 formatting. + * @opt_param string maxResults + * Maximum number of comments to include in the result. + * @opt_param string pageToken + * Continuation token if request is paged. + * @opt_param bool fetchBodies + * Whether the body content of the comments is included. + * @return Google_Service_Blogger_CommentList + */ + public function listByBlog($blogId, $optParams = array()) + { + $params = array('blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('listByBlog', array($params), "Google_Service_Blogger_CommentList"); + } + /** + * Marks a comment as spam. (comments.markAsSpam) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param string $commentId + * The ID of the comment to mark as spam. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_Comment + */ + public function markAsSpam($blogId, $postId, $commentId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('markAsSpam', array($params), "Google_Service_Blogger_Comment"); + } + /** + * Removes the content of a comment. (comments.removeContent) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param string $commentId + * The ID of the comment to delete content from. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_Comment + */ + public function removeContent($blogId, $postId, $commentId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('removeContent', array($params), "Google_Service_Blogger_Comment"); + } +} + +/** + * The "pageViews" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $pageViews = $bloggerService->pageViews; + * + */ +class Google_Service_Blogger_PageViews_Resource extends Google_Service_Resource +{ + + /** + * Retrieve pageview stats for a Blog. (pageViews.get) + * + * @param string $blogId + * The ID of the blog to get. + * @param array $optParams Optional parameters. + * + * @opt_param string range + * + * @return Google_Service_Blogger_Pageviews + */ + public function get($blogId, $optParams = array()) + { + $params = array('blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_Pageviews"); + } +} + +/** + * The "pages" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $pages = $bloggerService->pages; + * + */ +class Google_Service_Blogger_Pages_Resource extends Google_Service_Resource +{ + + /** + * Delete a page by ID. (pages.delete) + * + * @param string $blogId + * The ID of the Blog. + * @param string $pageId + * The ID of the Page. + * @param array $optParams Optional parameters. + */ + public function delete($blogId, $pageId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'pageId' => $pageId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets one blog page by ID. (pages.get) + * + * @param string $blogId + * ID of the blog containing the page. + * @param string $pageId + * The ID of the page to get. + * @param array $optParams Optional parameters. + * + * @opt_param string view + * + * @return Google_Service_Blogger_Page + */ + public function get($blogId, $pageId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'pageId' => $pageId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_Page"); + } + /** + * Add a page. (pages.insert) + * + * @param string $blogId + * ID of the blog to add the page to. + * @param Google_Page $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool isDraft + * Whether to create the page as a draft (default: false). + * @return Google_Service_Blogger_Page + */ + public function insert($blogId, Google_Service_Blogger_Page $postBody, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Blogger_Page"); + } + /** + * Retrieves the pages for a blog, optionally including non-LIVE statuses. + * (pages.listPages) + * + * @param string $blogId + * ID of the blog to fetch pages from. + * @param array $optParams Optional parameters. + * + * @opt_param string status + * + * @opt_param bool fetchBodies + * Whether to retrieve the Page bodies. + * @opt_param string view + * Access level with which to view the returned result. Note that some fields require elevated + * access. + * @return Google_Service_Blogger_PageList + */ + public function listPages($blogId, $optParams = array()) + { + $params = array('blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Blogger_PageList"); + } + /** + * Update a page. This method supports patch semantics. (pages.patch) + * + * @param string $blogId + * The ID of the Blog. + * @param string $pageId + * The ID of the Page. + * @param Google_Page $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool revert + * Whether a revert action should be performed when the page is updated (default: false). + * @opt_param bool publish + * Whether a publish action should be performed when the page is updated (default: false). + * @return Google_Service_Blogger_Page + */ + public function patch($blogId, $pageId, Google_Service_Blogger_Page $postBody, $optParams = array()) + { + $params = array('blogId' => $blogId, 'pageId' => $pageId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Blogger_Page"); + } + /** + * Publishes a draft page. (pages.publish) + * + * @param string $blogId + * The ID of the blog. + * @param string $pageId + * The ID of the page. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_Page + */ + public function publish($blogId, $pageId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'pageId' => $pageId); + $params = array_merge($params, $optParams); + return $this->call('publish', array($params), "Google_Service_Blogger_Page"); + } + /** + * Revert a published or scheduled page to draft state. (pages.revert) + * + * @param string $blogId + * The ID of the blog. + * @param string $pageId + * The ID of the page. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_Page + */ + public function revert($blogId, $pageId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'pageId' => $pageId); + $params = array_merge($params, $optParams); + return $this->call('revert', array($params), "Google_Service_Blogger_Page"); + } + /** + * Update a page. (pages.update) + * + * @param string $blogId + * The ID of the Blog. + * @param string $pageId + * The ID of the Page. + * @param Google_Page $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool revert + * Whether a revert action should be performed when the page is updated (default: false). + * @opt_param bool publish + * Whether a publish action should be performed when the page is updated (default: false). + * @return Google_Service_Blogger_Page + */ + public function update($blogId, $pageId, Google_Service_Blogger_Page $postBody, $optParams = array()) + { + $params = array('blogId' => $blogId, 'pageId' => $pageId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Blogger_Page"); + } +} + +/** + * The "postUserInfos" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $postUserInfos = $bloggerService->postUserInfos; + * + */ +class Google_Service_Blogger_PostUserInfos_Resource extends Google_Service_Resource +{ + + /** + * Gets one post and user info pair, by post ID and user ID. The post user info + * contains per-user information about the post, such as access rights, specific + * to the user. (postUserInfos.get) + * + * @param string $userId + * ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote + * marks) or the user's profile identifier. + * @param string $blogId + * The ID of the blog. + * @param string $postId + * The ID of the post to get. + * @param array $optParams Optional parameters. + * + * @opt_param string maxComments + * Maximum number of comments to pull back on a post. + * @return Google_Service_Blogger_PostUserInfo + */ + public function get($userId, $blogId, $postId, $optParams = array()) + { + $params = array('userId' => $userId, 'blogId' => $blogId, 'postId' => $postId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_PostUserInfo"); + } + /** + * Retrieves a list of post and post user info pairs, possibly filtered. The + * post user info contains per-user information about the post, such as access + * rights, specific to the user. (postUserInfos.listPostUserInfos) + * + * @param string $userId + * ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote + * marks) or the user's profile identifier. + * @param string $blogId + * ID of the blog to fetch posts from. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Sort order applied to search results. Default is published. + * @opt_param string startDate + * Earliest post date to fetch, a date-time with RFC 3339 formatting. + * @opt_param string endDate + * Latest post date to fetch, a date-time with RFC 3339 formatting. + * @opt_param string labels + * Comma-separated list of labels to search for. + * @opt_param string maxResults + * Maximum number of posts to fetch. + * @opt_param string pageToken + * Continuation token if the request is paged. + * @opt_param string status + * + * @opt_param bool fetchBodies + * Whether the body content of posts is included. Default is false. + * @opt_param string view + * Access level with which to view the returned result. Note that some fields require elevated + * access. + * @return Google_Service_Blogger_PostUserInfosList + */ + public function listPostUserInfos($userId, $blogId, $optParams = array()) + { + $params = array('userId' => $userId, 'blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Blogger_PostUserInfosList"); + } +} + +/** + * The "posts" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $posts = $bloggerService->posts; + * + */ +class Google_Service_Blogger_Posts_Resource extends Google_Service_Resource +{ + + /** + * Delete a post by ID. (posts.delete) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param array $optParams Optional parameters. + */ + public function delete($blogId, $postId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Get a post by ID. (posts.get) + * + * @param string $blogId + * ID of the blog to fetch the post from. + * @param string $postId + * The ID of the post + * @param array $optParams Optional parameters. + * + * @opt_param bool fetchBody + * Whether the body content of the post is included (default: true). This should be set to false + * when the post bodies are not required, to help minimize traffic. + * @opt_param string maxComments + * Maximum number of comments to pull back on a post. + * @opt_param bool fetchImages + * Whether image URL metadata for each post is included (default: false). + * @opt_param string view + * Access level with which to view the returned result. Note that some fields require elevated + * access. + * @return Google_Service_Blogger_Post + */ + public function get($blogId, $postId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_Post"); + } + /** + * Retrieve a Post by Path. (posts.getByPath) + * + * @param string $blogId + * ID of the blog to fetch the post from. + * @param string $path + * Path of the Post to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string maxComments + * Maximum number of comments to pull back on a post. + * @opt_param string view + * Access level with which to view the returned result. Note that some fields require elevated + * access. + * @return Google_Service_Blogger_Post + */ + public function getByPath($blogId, $path, $optParams = array()) + { + $params = array('blogId' => $blogId, 'path' => $path); + $params = array_merge($params, $optParams); + return $this->call('getByPath', array($params), "Google_Service_Blogger_Post"); + } + /** + * Add a post. (posts.insert) + * + * @param string $blogId + * ID of the blog to add the post to. + * @param Google_Post $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool fetchImages + * Whether image URL metadata for each post is included in the returned result (default: false). + * @opt_param bool isDraft + * Whether to create the post as a draft (default: false). + * @opt_param bool fetchBody + * Whether the body content of the post is included with the result (default: true). + * @return Google_Service_Blogger_Post + */ + public function insert($blogId, Google_Service_Blogger_Post $postBody, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Blogger_Post"); + } + /** + * Retrieves a list of posts, possibly filtered. (posts.listPosts) + * + * @param string $blogId + * ID of the blog to fetch posts from. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Sort search results + * @opt_param string startDate + * Earliest post date to fetch, a date-time with RFC 3339 formatting. + * @opt_param string endDate + * Latest post date to fetch, a date-time with RFC 3339 formatting. + * @opt_param string labels + * Comma-separated list of labels to search for. + * @opt_param string maxResults + * Maximum number of posts to fetch. + * @opt_param bool fetchImages + * Whether image URL metadata for each post is included. + * @opt_param string pageToken + * Continuation token if the request is paged. + * @opt_param string status + * Statuses to include in the results. + * @opt_param bool fetchBodies + * Whether the body content of posts is included (default: true). This should be set to false when + * the post bodies are not required, to help minimize traffic. + * @opt_param string view + * Access level with which to view the returned result. Note that some fields require escalated + * access. + * @return Google_Service_Blogger_PostList + */ + public function listPosts($blogId, $optParams = array()) + { + $params = array('blogId' => $blogId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Blogger_PostList"); + } + /** + * Update a post. This method supports patch semantics. (posts.patch) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param Google_Post $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool revert + * Whether a revert action should be performed when the post is updated (default: false). + * @opt_param bool publish + * Whether a publish action should be performed when the post is updated (default: false). + * @opt_param bool fetchBody + * Whether the body content of the post is included with the result (default: true). + * @opt_param string maxComments + * Maximum number of comments to retrieve with the returned post. + * @opt_param bool fetchImages + * Whether image URL metadata for each post is included in the returned result (default: false). + * @return Google_Service_Blogger_Post + */ + public function patch($blogId, $postId, Google_Service_Blogger_Post $postBody, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Blogger_Post"); + } + /** + * Publishes a draft post, optionally at the specific time of the given + * publishDate parameter. (posts.publish) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param array $optParams Optional parameters. + * + * @opt_param string publishDate + * Optional date and time to schedule the publishing of the Blog. If no publishDate parameter is + * given, the post is either published at the a previously saved schedule date (if present), or the + * current time. If a future date is given, the post will be scheduled to be published. + * @return Google_Service_Blogger_Post + */ + public function publish($blogId, $postId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId); + $params = array_merge($params, $optParams); + return $this->call('publish', array($params), "Google_Service_Blogger_Post"); + } + /** + * Revert a published or scheduled post to draft state. (posts.revert) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_Post + */ + public function revert($blogId, $postId, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId); + $params = array_merge($params, $optParams); + return $this->call('revert', array($params), "Google_Service_Blogger_Post"); + } + /** + * Search for a post. (posts.search) + * + * @param string $blogId + * ID of the blog to fetch the post from. + * @param string $q + * Query terms to search this blog for matching posts. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Sort search results + * @opt_param bool fetchBodies + * Whether the body content of posts is included (default: true). This should be set to false when + * the post bodies are not required, to help minimize traffic. + * @return Google_Service_Blogger_PostList + */ + public function search($blogId, $q, $optParams = array()) + { + $params = array('blogId' => $blogId, 'q' => $q); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Blogger_PostList"); + } + /** + * Update a post. (posts.update) + * + * @param string $blogId + * The ID of the Blog. + * @param string $postId + * The ID of the Post. + * @param Google_Post $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool revert + * Whether a revert action should be performed when the post is updated (default: false). + * @opt_param bool publish + * Whether a publish action should be performed when the post is updated (default: false). + * @opt_param bool fetchBody + * Whether the body content of the post is included with the result (default: true). + * @opt_param string maxComments + * Maximum number of comments to retrieve with the returned post. + * @opt_param bool fetchImages + * Whether image URL metadata for each post is included in the returned result (default: false). + * @return Google_Service_Blogger_Post + */ + public function update($blogId, $postId, Google_Service_Blogger_Post $postBody, $optParams = array()) + { + $params = array('blogId' => $blogId, 'postId' => $postId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Blogger_Post"); + } +} + +/** + * The "users" collection of methods. + * Typical usage is: + * + * $bloggerService = new Google_Service_Blogger(...); + * $users = $bloggerService->users; + * + */ +class Google_Service_Blogger_Users_Resource extends Google_Service_Resource +{ + + /** + * Gets one user by ID. (users.get) + * + * @param string $userId + * The ID of the user to get. + * @param array $optParams Optional parameters. + * @return Google_Service_Blogger_User + */ + public function get($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Blogger_User"); + } +} + + + + +class Google_Service_Blogger_Blog extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customMetaData; + public $description; + public $id; + public $kind; + protected $localeType = 'Google_Service_Blogger_BlogLocale'; + protected $localeDataType = ''; + public $name; + protected $pagesType = 'Google_Service_Blogger_BlogPages'; + protected $pagesDataType = ''; + protected $postsType = 'Google_Service_Blogger_BlogPosts'; + protected $postsDataType = ''; + public $published; + public $selfLink; + public $status; + public $updated; + public $url; + + public function setCustomMetaData($customMetaData) + { + $this->customMetaData = $customMetaData; + } + + public function getCustomMetaData() + { + return $this->customMetaData; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocale(Google_Service_Blogger_BlogLocale $locale) + { + $this->locale = $locale; + } + + public function getLocale() + { + return $this->locale; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPages(Google_Service_Blogger_BlogPages $pages) + { + $this->pages = $pages; + } + + public function getPages() + { + return $this->pages; + } + + public function setPosts(Google_Service_Blogger_BlogPosts $posts) + { + $this->posts = $posts; + } + + public function getPosts() + { + return $this->posts; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_BlogList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $blogUserInfosType = 'Google_Service_Blogger_BlogUserInfo'; + protected $blogUserInfosDataType = 'array'; + protected $itemsType = 'Google_Service_Blogger_Blog'; + protected $itemsDataType = 'array'; + public $kind; + + public function setBlogUserInfos($blogUserInfos) + { + $this->blogUserInfos = $blogUserInfos; + } + + public function getBlogUserInfos() + { + return $this->blogUserInfos; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Blogger_BlogLocale extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $country; + public $language; + public $variant; + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setVariant($variant) + { + $this->variant = $variant; + } + + public function getVariant() + { + return $this->variant; + } +} + +class Google_Service_Blogger_BlogPages extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Blogger_BlogPerUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $blogId; + public $hasAdminAccess; + public $kind; + public $photosAlbumKey; + public $role; + public $userId; + + public function setBlogId($blogId) + { + $this->blogId = $blogId; + } + + public function getBlogId() + { + return $this->blogId; + } + + public function setHasAdminAccess($hasAdminAccess) + { + $this->hasAdminAccess = $hasAdminAccess; + } + + public function getHasAdminAccess() + { + return $this->hasAdminAccess; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPhotosAlbumKey($photosAlbumKey) + { + $this->photosAlbumKey = $photosAlbumKey; + } + + public function getPhotosAlbumKey() + { + return $this->photosAlbumKey; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setUserId($userId) + { + $this->userId = $userId; + } + + public function getUserId() + { + return $this->userId; + } +} + +class Google_Service_Blogger_BlogPosts extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Blogger_Post'; + protected $itemsDataType = 'array'; + public $selfLink; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Blogger_BlogUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + "blogUserInfo" => "blog_user_info", + ); + protected $blogType = 'Google_Service_Blogger_Blog'; + protected $blogDataType = ''; + protected $blogUserInfoType = 'Google_Service_Blogger_BlogPerUserInfo'; + protected $blogUserInfoDataType = ''; + public $kind; + + public function setBlog(Google_Service_Blogger_Blog $blog) + { + $this->blog = $blog; + } + + public function getBlog() + { + return $this->blog; + } + + public function setBlogUserInfo(Google_Service_Blogger_BlogPerUserInfo $blogUserInfo) + { + $this->blogUserInfo = $blogUserInfo; + } + + public function getBlogUserInfo() + { + return $this->blogUserInfo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Blogger_Comment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Blogger_CommentAuthor'; + protected $authorDataType = ''; + protected $blogType = 'Google_Service_Blogger_CommentBlog'; + protected $blogDataType = ''; + public $content; + public $id; + protected $inReplyToType = 'Google_Service_Blogger_CommentInReplyTo'; + protected $inReplyToDataType = ''; + public $kind; + protected $postType = 'Google_Service_Blogger_CommentPost'; + protected $postDataType = ''; + public $published; + public $selfLink; + public $status; + public $updated; + + public function setAuthor(Google_Service_Blogger_CommentAuthor $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBlog(Google_Service_Blogger_CommentBlog $blog) + { + $this->blog = $blog; + } + + public function getBlog() + { + return $this->blog; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInReplyTo(Google_Service_Blogger_CommentInReplyTo $inReplyTo) + { + $this->inReplyTo = $inReplyTo; + } + + public function getInReplyTo() + { + return $this->inReplyTo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPost(Google_Service_Blogger_CommentPost $post) + { + $this->post = $post; + } + + public function getPost() + { + return $this->post; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Blogger_CommentAuthor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Blogger_CommentAuthorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Blogger_CommentAuthorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_CommentAuthorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_CommentBlog extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Blogger_CommentInReplyTo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Blogger_CommentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Blogger_Comment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $prevPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Blogger_CommentPost extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Blogger_Page extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Blogger_PageAuthor'; + protected $authorDataType = ''; + protected $blogType = 'Google_Service_Blogger_PageBlog'; + protected $blogDataType = ''; + public $content; + public $etag; + public $id; + public $kind; + public $published; + public $selfLink; + public $status; + public $title; + public $updated; + public $url; + + public function setAuthor(Google_Service_Blogger_PageAuthor $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBlog(Google_Service_Blogger_PageBlog $blog) + { + $this->blog = $blog; + } + + public function getBlog() + { + return $this->blog; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PageAuthor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Blogger_PageAuthorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Blogger_PageAuthorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PageAuthorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PageBlog extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Blogger_PageList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Blogger_Page'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Blogger_Pageviews extends Google_Collection +{ + protected $collection_key = 'counts'; + protected $internal_gapi_mappings = array( + ); + public $blogId; + protected $countsType = 'Google_Service_Blogger_PageviewsCounts'; + protected $countsDataType = 'array'; + public $kind; + + public function setBlogId($blogId) + { + $this->blogId = $blogId; + } + + public function getBlogId() + { + return $this->blogId; + } + + public function setCounts($counts) + { + $this->counts = $counts; + } + + public function getCounts() + { + return $this->counts; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Blogger_PageviewsCounts extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $timeRange; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setTimeRange($timeRange) + { + $this->timeRange = $timeRange; + } + + public function getTimeRange() + { + return $this->timeRange; + } +} + +class Google_Service_Blogger_Post extends Google_Collection +{ + protected $collection_key = 'labels'; + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Blogger_PostAuthor'; + protected $authorDataType = ''; + protected $blogType = 'Google_Service_Blogger_PostBlog'; + protected $blogDataType = ''; + public $content; + public $customMetaData; + public $etag; + public $id; + protected $imagesType = 'Google_Service_Blogger_PostImages'; + protected $imagesDataType = 'array'; + public $kind; + public $labels; + protected $locationType = 'Google_Service_Blogger_PostLocation'; + protected $locationDataType = ''; + public $published; + public $readerComments; + protected $repliesType = 'Google_Service_Blogger_PostReplies'; + protected $repliesDataType = ''; + public $selfLink; + public $status; + public $title; + public $titleLink; + public $updated; + public $url; + + public function setAuthor(Google_Service_Blogger_PostAuthor $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBlog(Google_Service_Blogger_PostBlog $blog) + { + $this->blog = $blog; + } + + public function getBlog() + { + return $this->blog; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setCustomMetaData($customMetaData) + { + $this->customMetaData = $customMetaData; + } + + public function getCustomMetaData() + { + return $this->customMetaData; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImages($images) + { + $this->images = $images; + } + + public function getImages() + { + return $this->images; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setLocation(Google_Service_Blogger_PostLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setReaderComments($readerComments) + { + $this->readerComments = $readerComments; + } + + public function getReaderComments() + { + return $this->readerComments; + } + + public function setReplies(Google_Service_Blogger_PostReplies $replies) + { + $this->replies = $replies; + } + + public function getReplies() + { + return $this->replies; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setTitleLink($titleLink) + { + $this->titleLink = $titleLink; + } + + public function getTitleLink() + { + return $this->titleLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PostAuthor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Blogger_PostAuthorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Blogger_PostAuthorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PostAuthorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PostBlog extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Blogger_PostImages extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_PostList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Blogger_Post'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Blogger_PostLocation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $lat; + public $lng; + public $name; + public $span; + + public function setLat($lat) + { + $this->lat = $lat; + } + + public function getLat() + { + return $this->lat; + } + + public function setLng($lng) + { + $this->lng = $lng; + } + + public function getLng() + { + return $this->lng; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSpan($span) + { + $this->span = $span; + } + + public function getSpan() + { + return $this->span; + } +} + +class Google_Service_Blogger_PostPerUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $blogId; + public $hasEditAccess; + public $kind; + public $postId; + public $userId; + + public function setBlogId($blogId) + { + $this->blogId = $blogId; + } + + public function getBlogId() + { + return $this->blogId; + } + + public function setHasEditAccess($hasEditAccess) + { + $this->hasEditAccess = $hasEditAccess; + } + + public function getHasEditAccess() + { + return $this->hasEditAccess; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPostId($postId) + { + $this->postId = $postId; + } + + public function getPostId() + { + return $this->postId; + } + + public function setUserId($userId) + { + $this->userId = $userId; + } + + public function getUserId() + { + return $this->userId; + } +} + +class Google_Service_Blogger_PostReplies extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Blogger_Comment'; + protected $itemsDataType = 'array'; + public $selfLink; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Blogger_PostUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + "postUserInfo" => "post_user_info", + ); + public $kind; + protected $postType = 'Google_Service_Blogger_Post'; + protected $postDataType = ''; + protected $postUserInfoType = 'Google_Service_Blogger_PostPerUserInfo'; + protected $postUserInfoDataType = ''; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPost(Google_Service_Blogger_Post $post) + { + $this->post = $post; + } + + public function getPost() + { + return $this->post; + } + + public function setPostUserInfo(Google_Service_Blogger_PostPerUserInfo $postUserInfo) + { + $this->postUserInfo = $postUserInfo; + } + + public function getPostUserInfo() + { + return $this->postUserInfo; + } +} + +class Google_Service_Blogger_PostUserInfosList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Blogger_PostUserInfo'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Blogger_User extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $about; + protected $blogsType = 'Google_Service_Blogger_UserBlogs'; + protected $blogsDataType = ''; + public $created; + public $displayName; + public $id; + public $kind; + protected $localeType = 'Google_Service_Blogger_UserLocale'; + protected $localeDataType = ''; + public $selfLink; + public $url; + + public function setAbout($about) + { + $this->about = $about; + } + + public function getAbout() + { + return $this->about; + } + + public function setBlogs(Google_Service_Blogger_UserBlogs $blogs) + { + $this->blogs = $blogs; + } + + public function getBlogs() + { + return $this->blogs; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocale(Google_Service_Blogger_UserLocale $locale) + { + $this->locale = $locale; + } + + public function getLocale() + { + return $this->locale; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Blogger_UserBlogs extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Blogger_UserLocale extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $country; + public $language; + public $variant; + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setVariant($variant) + { + $this->variant = $variant; + } + + public function getVariant() + { + return $this->variant; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Books.php b/vendor/google/apiclient/src/Google/Service/Books.php new file mode 100644 index 0000000..16a0ea6 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Books.php @@ -0,0 +1,6943 @@ + + * Lets you search for books and manage your Google Books library. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Books extends Google_Service +{ + /** Manage your books. */ + const BOOKS = "https://www.googleapis.com/auth/books"; + + public $bookshelves; + public $bookshelves_volumes; + public $cloudloading; + public $layers; + public $layers_annotationData; + public $layers_volumeAnnotations; + public $myconfig; + public $mylibrary_annotations; + public $mylibrary_bookshelves; + public $mylibrary_bookshelves_volumes; + public $mylibrary_readingpositions; + public $promooffer; + public $volumes; + public $volumes_associated; + public $volumes_mybooks; + public $volumes_recommended; + public $volumes_useruploaded; + + + /** + * Constructs the internal representation of the Books service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'books/v1/'; + $this->version = 'v1'; + $this->serviceName = 'books'; + + $this->bookshelves = new Google_Service_Books_Bookshelves_Resource( + $this, + $this->serviceName, + 'bookshelves', + array( + 'methods' => array( + 'get' => array( + 'path' => 'users/{userId}/bookshelves/{shelf}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'users/{userId}/bookshelves', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->bookshelves_volumes = new Google_Service_Books_BookshelvesVolumes_Resource( + $this, + $this->serviceName, + 'volumes', + array( + 'methods' => array( + 'list' => array( + 'path' => 'users/{userId}/bookshelves/{shelf}/volumes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'showPreorders' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->cloudloading = new Google_Service_Books_Cloudloading_Resource( + $this, + $this->serviceName, + 'cloudloading', + array( + 'methods' => array( + 'addBook' => array( + 'path' => 'cloudloading/addBook', + 'httpMethod' => 'POST', + 'parameters' => array( + 'upload_client_token' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'drive_document_id' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mime_type' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'name' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'deleteBook' => array( + 'path' => 'cloudloading/deleteBook', + 'httpMethod' => 'POST', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'updateBook' => array( + 'path' => 'cloudloading/updateBook', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->layers = new Google_Service_Books_Layers_Resource( + $this, + $this->serviceName, + 'layers', + array( + 'methods' => array( + 'get' => array( + 'path' => 'volumes/{volumeId}/layersummary/{summaryId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'summaryId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'volumes/{volumeId}/layersummary', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->layers_annotationData = new Google_Service_Books_LayersAnnotationData_Resource( + $this, + $this->serviceName, + 'annotationData', + array( + 'methods' => array( + 'get' => array( + 'path' => 'volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'layerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'annotationDataId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'scale' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'allowWebDefinitions' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'h' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'w' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'list' => array( + 'path' => 'volumes/{volumeId}/layers/{layerId}/data', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'layerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'scale' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'h' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'updatedMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'annotationDataId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'w' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->layers_volumeAnnotations = new Google_Service_Books_LayersVolumeAnnotations_Resource( + $this, + $this->serviceName, + 'volumeAnnotations', + array( + 'methods' => array( + 'get' => array( + 'path' => 'volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'layerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'annotationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'volumes/{volumeId}/layers/{layerId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'layerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'volumeAnnotationsVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endPosition' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endOffset' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startOffset' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startPosition' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->myconfig = new Google_Service_Books_Myconfig_Resource( + $this, + $this->serviceName, + 'myconfig', + array( + 'methods' => array( + 'releaseDownloadAccess' => array( + 'path' => 'myconfig/releaseDownloadAccess', + 'httpMethod' => 'POST', + 'parameters' => array( + 'volumeIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + 'cpksver' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'requestAccess' => array( + 'path' => 'myconfig/requestAccess', + 'httpMethod' => 'POST', + 'parameters' => array( + 'source' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'nonce' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'cpksver' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'licenseTypes' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'syncVolumeLicenses' => array( + 'path' => 'myconfig/syncVolumeLicenses', + 'httpMethod' => 'POST', + 'parameters' => array( + 'source' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'nonce' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'cpksver' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'features' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showPreorders' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'volumeIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->mylibrary_annotations = new Google_Service_Books_MylibraryAnnotations_Resource( + $this, + $this->serviceName, + 'annotations', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'mylibrary/annotations/{annotationId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'annotationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'mylibrary/annotations/{annotationId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'annotationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'mylibrary/annotations', + 'httpMethod' => 'POST', + 'parameters' => array( + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showOnlySummaryInResponse' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'mylibrary/annotations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'layerIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'layerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'summary' => array( + 'path' => 'mylibrary/annotations/summary', + 'httpMethod' => 'POST', + 'parameters' => array( + 'layerIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'mylibrary/annotations/{annotationId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'annotationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->mylibrary_bookshelves = new Google_Service_Books_MylibraryBookshelves_Resource( + $this, + $this->serviceName, + 'bookshelves', + array( + 'methods' => array( + 'addVolume' => array( + 'path' => 'mylibrary/bookshelves/{shelf}/addVolume', + 'httpMethod' => 'POST', + 'parameters' => array( + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'clearVolumes' => array( + 'path' => 'mylibrary/bookshelves/{shelf}/clearVolumes', + 'httpMethod' => 'POST', + 'parameters' => array( + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'mylibrary/bookshelves/{shelf}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'mylibrary/bookshelves', + 'httpMethod' => 'GET', + 'parameters' => array( + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'moveVolume' => array( + 'path' => 'mylibrary/bookshelves/{shelf}/moveVolume', + 'httpMethod' => 'POST', + 'parameters' => array( + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'volumePosition' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'removeVolume' => array( + 'path' => 'mylibrary/bookshelves/{shelf}/removeVolume', + 'httpMethod' => 'POST', + 'parameters' => array( + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->mylibrary_bookshelves_volumes = new Google_Service_Books_MylibraryBookshelvesVolumes_Resource( + $this, + $this->serviceName, + 'volumes', + array( + 'methods' => array( + 'list' => array( + 'path' => 'mylibrary/bookshelves/{shelf}/volumes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'shelf' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'country' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showPreorders' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->mylibrary_readingpositions = new Google_Service_Books_MylibraryReadingpositions_Resource( + $this, + $this->serviceName, + 'readingpositions', + array( + 'methods' => array( + 'get' => array( + 'path' => 'mylibrary/readingpositions/{volumeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'setPosition' => array( + 'path' => 'mylibrary/readingpositions/{volumeId}/setPosition', + 'httpMethod' => 'POST', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'timestamp' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'position' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'deviceCookie' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'contentVersion' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'action' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->promooffer = new Google_Service_Books_Promooffer_Resource( + $this, + $this->serviceName, + 'promooffer', + array( + 'methods' => array( + 'accept' => array( + 'path' => 'promooffer/accept', + 'httpMethod' => 'POST', + 'parameters' => array( + 'product' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'offerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'androidId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'device' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'model' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'serial' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'manufacturer' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'dismiss' => array( + 'path' => 'promooffer/dismiss', + 'httpMethod' => 'POST', + 'parameters' => array( + 'product' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'offerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'androidId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'device' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'model' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'serial' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'manufacturer' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'promooffer/get', + 'httpMethod' => 'GET', + 'parameters' => array( + 'product' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'androidId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'device' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'model' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'serial' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'manufacturer' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->volumes = new Google_Service_Books_Volumes_Resource( + $this, + $this->serviceName, + 'volumes', + array( + 'methods' => array( + 'get' => array( + 'path' => 'volumes/{volumeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'country' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'partner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'volumes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'q' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'libraryRestrict' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'langRestrict' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showPreorders' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'printType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'download' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'partner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->volumes_associated = new Google_Service_Books_VolumesAssociated_Resource( + $this, + $this->serviceName, + 'associated', + array( + 'methods' => array( + 'list' => array( + 'path' => 'volumes/{volumeId}/associated', + 'httpMethod' => 'GET', + 'parameters' => array( + 'volumeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'association' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->volumes_mybooks = new Google_Service_Books_VolumesMybooks_Resource( + $this, + $this->serviceName, + 'mybooks', + array( + 'methods' => array( + 'list' => array( + 'path' => 'volumes/mybooks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'acquireMethod' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'processingState' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->volumes_recommended = new Google_Service_Books_VolumesRecommended_Resource( + $this, + $this->serviceName, + 'recommended', + array( + 'methods' => array( + 'list' => array( + 'path' => 'volumes/recommended', + 'httpMethod' => 'GET', + 'parameters' => array( + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'rate' => array( + 'path' => 'volumes/recommended/rate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'rating' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->volumes_useruploaded = new Google_Service_Books_VolumesUseruploaded_Resource( + $this, + $this->serviceName, + 'useruploaded', + array( + 'methods' => array( + 'list' => array( + 'path' => 'volumes/useruploaded', + 'httpMethod' => 'GET', + 'parameters' => array( + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'volumeId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'processingState' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "bookshelves" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $bookshelves = $booksService->bookshelves; + * + */ +class Google_Service_Books_Bookshelves_Resource extends Google_Service_Resource +{ + + /** + * Retrieves metadata for a specific bookshelf for the specified user. + * (bookshelves.get) + * + * @param string $userId + * ID of user for whom to retrieve bookshelves. + * @param string $shelf + * ID of bookshelf to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Bookshelf + */ + public function get($userId, $shelf, $optParams = array()) + { + $params = array('userId' => $userId, 'shelf' => $shelf); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Bookshelf"); + } + /** + * Retrieves a list of public bookshelves for the specified user. + * (bookshelves.listBookshelves) + * + * @param string $userId + * ID of user for whom to retrieve bookshelves. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Bookshelves + */ + public function listBookshelves($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Bookshelves"); + } +} + +/** + * The "volumes" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $volumes = $booksService->volumes; + * + */ +class Google_Service_Books_BookshelvesVolumes_Resource extends Google_Service_Resource +{ + + /** + * Retrieves volumes in a specific bookshelf for the specified user. + * (volumes.listBookshelvesVolumes) + * + * @param string $userId + * ID of user for whom to retrieve bookshelf volumes. + * @param string $shelf + * ID of bookshelf to retrieve volumes. + * @param array $optParams Optional parameters. + * + * @opt_param bool showPreorders + * Set to true to show pre-ordered books. Defaults to false. + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string startIndex + * Index of the first element to return (starts at 0) + * @return Google_Service_Books_Volumes + */ + public function listBookshelvesVolumes($userId, $shelf, $optParams = array()) + { + $params = array('userId' => $userId, 'shelf' => $shelf); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } +} + +/** + * The "cloudloading" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $cloudloading = $booksService->cloudloading; + * + */ +class Google_Service_Books_Cloudloading_Resource extends Google_Service_Resource +{ + + /** + * (cloudloading.addBook) + * + * @param array $optParams Optional parameters. + * + * @opt_param string upload_client_token + * + * @opt_param string drive_document_id + * A drive document id. The upload_client_token must not be set. + * @opt_param string mime_type + * The document MIME type. It can be set only if the drive_document_id is set. + * @opt_param string name + * The document name. It can be set only if the drive_document_id is set. + * @return Google_Service_Books_BooksCloudloadingResource + */ + public function addBook($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('addBook', array($params), "Google_Service_Books_BooksCloudloadingResource"); + } + /** + * Remove the book and its contents (cloudloading.deleteBook) + * + * @param string $volumeId + * The id of the book to be removed. + * @param array $optParams Optional parameters. + */ + public function deleteBook($volumeId, $optParams = array()) + { + $params = array('volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('deleteBook', array($params)); + } + /** + * (cloudloading.updateBook) + * + * @param Google_BooksCloudloadingResource $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Books_BooksCloudloadingResource + */ + public function updateBook(Google_Service_Books_BooksCloudloadingResource $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('updateBook', array($params), "Google_Service_Books_BooksCloudloadingResource"); + } +} + +/** + * The "layers" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $layers = $booksService->layers; + * + */ +class Google_Service_Books_Layers_Resource extends Google_Service_Resource +{ + + /** + * Gets the layer summary for a volume. (layers.get) + * + * @param string $volumeId + * The volume to retrieve layers for. + * @param string $summaryId + * The ID for the layer to get the summary for. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string contentVersion + * The content version for the requested volume. + * @return Google_Service_Books_Layersummary + */ + public function get($volumeId, $summaryId, $optParams = array()) + { + $params = array('volumeId' => $volumeId, 'summaryId' => $summaryId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Layersummary"); + } + /** + * List the layer summaries for a volume. (layers.listLayers) + * + * @param string $volumeId + * The volume to retrieve layers for. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The value of the nextToken from the previous page. + * @opt_param string contentVersion + * The content version for the requested volume. + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Layersummaries + */ + public function listLayers($volumeId, $optParams = array()) + { + $params = array('volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Layersummaries"); + } +} + +/** + * The "annotationData" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $annotationData = $booksService->annotationData; + * + */ +class Google_Service_Books_LayersAnnotationData_Resource extends Google_Service_Resource +{ + + /** + * Gets the annotation data. (annotationData.get) + * + * @param string $volumeId + * The volume to retrieve annotations for. + * @param string $layerId + * The ID for the layer to get the annotations. + * @param string $annotationDataId + * The ID of the annotation data to retrieve. + * @param string $contentVersion + * The content version for the volume you are trying to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param int scale + * The requested scale for the image. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param bool allowWebDefinitions + * For the dictionary layer. Whether or not to allow web definitions. + * @opt_param int h + * The requested pixel height for any images. If height is provided width must also be provided. + * @opt_param string locale + * The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: + * 'en_US'. + * @opt_param int w + * The requested pixel width for any images. If width is provided height must also be provided. + * @return Google_Service_Books_Annotationdata + */ + public function get($volumeId, $layerId, $annotationDataId, $contentVersion, $optParams = array()) + { + $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'annotationDataId' => $annotationDataId, 'contentVersion' => $contentVersion); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Annotationdata"); + } + /** + * Gets the annotation data for a volume and layer. + * (annotationData.listLayersAnnotationData) + * + * @param string $volumeId + * The volume to retrieve annotation data for. + * @param string $layerId + * The ID for the layer to get the annotation data. + * @param string $contentVersion + * The content version for the requested volume. + * @param array $optParams Optional parameters. + * + * @opt_param int scale + * The requested scale for the image. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string locale + * The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: + * 'en_US'. + * @opt_param int h + * The requested pixel height for any images. If height is provided width must also be provided. + * @opt_param string updatedMax + * RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive). + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string annotationDataId + * The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set. + * @opt_param string pageToken + * The value of the nextToken from the previous page. + * @opt_param int w + * The requested pixel width for any images. If width is provided height must also be provided. + * @opt_param string updatedMin + * RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive). + * @return Google_Service_Books_Annotationsdata + */ + public function listLayersAnnotationData($volumeId, $layerId, $contentVersion, $optParams = array()) + { + $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'contentVersion' => $contentVersion); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Annotationsdata"); + } +} +/** + * The "volumeAnnotations" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $volumeAnnotations = $booksService->volumeAnnotations; + * + */ +class Google_Service_Books_LayersVolumeAnnotations_Resource extends Google_Service_Resource +{ + + /** + * Gets the volume annotation. (volumeAnnotations.get) + * + * @param string $volumeId + * The volume to retrieve annotations for. + * @param string $layerId + * The ID for the layer to get the annotations. + * @param string $annotationId + * The ID of the volume annotation to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: + * 'en_US'. + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Volumeannotation + */ + public function get($volumeId, $layerId, $annotationId, $optParams = array()) + { + $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'annotationId' => $annotationId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Volumeannotation"); + } + /** + * Gets the volume annotations for a volume and layer. + * (volumeAnnotations.listLayersVolumeAnnotations) + * + * @param string $volumeId + * The volume to retrieve annotations for. + * @param string $layerId + * The ID for the layer to get the annotations. + * @param string $contentVersion + * The content version for the requested volume. + * @param array $optParams Optional parameters. + * + * @opt_param bool showDeleted + * Set to true to return deleted annotations. updatedMin must be in the request to use this. + * Defaults to false. + * @opt_param string volumeAnnotationsVersion + * The version of the volume annotations that you are requesting. + * @opt_param string endPosition + * The end position to end retrieving data from. + * @opt_param string endOffset + * The end offset to end retrieving data from. + * @opt_param string locale + * The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: + * 'en_US'. + * @opt_param string updatedMin + * RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive). + * @opt_param string updatedMax + * RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive). + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string pageToken + * The value of the nextToken from the previous page. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string startOffset + * The start offset to start retrieving data from. + * @opt_param string startPosition + * The start position to start retrieving data from. + * @return Google_Service_Books_Volumeannotations + */ + public function listLayersVolumeAnnotations($volumeId, $layerId, $contentVersion, $optParams = array()) + { + $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'contentVersion' => $contentVersion); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumeannotations"); + } +} + +/** + * The "myconfig" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $myconfig = $booksService->myconfig; + * + */ +class Google_Service_Books_Myconfig_Resource extends Google_Service_Resource +{ + + /** + * Release downloaded content access restriction. + * (myconfig.releaseDownloadAccess) + * + * @param string $volumeIds + * The volume(s) to release restrictions for. + * @param string $cpksver + * The device/version ID from which to release the restriction. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US. + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_DownloadAccesses + */ + public function releaseDownloadAccess($volumeIds, $cpksver, $optParams = array()) + { + $params = array('volumeIds' => $volumeIds, 'cpksver' => $cpksver); + $params = array_merge($params, $optParams); + return $this->call('releaseDownloadAccess', array($params), "Google_Service_Books_DownloadAccesses"); + } + /** + * Request concurrent and download access restrictions. (myconfig.requestAccess) + * + * @param string $source + * String to identify the originator of this request. + * @param string $volumeId + * The volume to request concurrent/download restrictions for. + * @param string $nonce + * The client nonce value. + * @param string $cpksver + * The device/version ID from which to request the restrictions. + * @param array $optParams Optional parameters. + * + * @opt_param string licenseTypes + * The type of access license to request. If not specified, the default is BOTH. + * @opt_param string locale + * ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US. + * @return Google_Service_Books_RequestAccess + */ + public function requestAccess($source, $volumeId, $nonce, $cpksver, $optParams = array()) + { + $params = array('source' => $source, 'volumeId' => $volumeId, 'nonce' => $nonce, 'cpksver' => $cpksver); + $params = array_merge($params, $optParams); + return $this->call('requestAccess', array($params), "Google_Service_Books_RequestAccess"); + } + /** + * Request downloaded content access for specified volumes on the My eBooks + * shelf. (myconfig.syncVolumeLicenses) + * + * @param string $source + * String to identify the originator of this request. + * @param string $nonce + * The client nonce value. + * @param string $cpksver + * The device/version ID from which to release the restriction. + * @param array $optParams Optional parameters. + * + * @opt_param string features + * List of features supported by the client, i.e., 'RENTALS' + * @opt_param string locale + * ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US. + * @opt_param bool showPreorders + * Set to true to show pre-ordered books. Defaults to false. + * @opt_param string volumeIds + * The volume(s) to request download restrictions for. + * @return Google_Service_Books_Volumes + */ + public function syncVolumeLicenses($source, $nonce, $cpksver, $optParams = array()) + { + $params = array('source' => $source, 'nonce' => $nonce, 'cpksver' => $cpksver); + $params = array_merge($params, $optParams); + return $this->call('syncVolumeLicenses', array($params), "Google_Service_Books_Volumes"); + } +} + +/** + * The "mylibrary" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $mylibrary = $booksService->mylibrary; + * + */ +class Google_Service_Books_Mylibrary_Resource extends Google_Service_Resource +{ + +} + +/** + * The "annotations" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $annotations = $booksService->annotations; + * + */ +class Google_Service_Books_MylibraryAnnotations_Resource extends Google_Service_Resource +{ + + /** + * Deletes an annotation. (annotations.delete) + * + * @param string $annotationId + * The ID for the annotation to delete. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + */ + public function delete($annotationId, $optParams = array()) + { + $params = array('annotationId' => $annotationId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets an annotation by its ID. (annotations.get) + * + * @param string $annotationId + * The ID for the annotation to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Annotation + */ + public function get($annotationId, $optParams = array()) + { + $params = array('annotationId' => $annotationId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Annotation"); + } + /** + * Inserts a new annotation. (annotations.insert) + * + * @param Google_Annotation $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @opt_param bool showOnlySummaryInResponse + * Requests that only the summary of the specified layer be provided in the response. + * @return Google_Service_Books_Annotation + */ + public function insert(Google_Service_Books_Annotation $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Books_Annotation"); + } + /** + * Retrieves a list of annotations, possibly filtered. + * (annotations.listMylibraryAnnotations) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool showDeleted + * Set to true to return deleted annotations. updatedMin must be in the request to use this. + * Defaults to false. + * @opt_param string updatedMin + * RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive). + * @opt_param string layerIds + * The layer ID(s) to limit annotation by. + * @opt_param string volumeId + * The volume to restrict annotations to. + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string pageToken + * The value of the nextToken from the previous page. + * @opt_param string pageIds + * The page ID(s) for the volume that is being queried. + * @opt_param string contentVersion + * The content version for the requested volume. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string layerId + * The layer ID to limit annotation by. + * @opt_param string updatedMax + * RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive). + * @return Google_Service_Books_Annotations + */ + public function listMylibraryAnnotations($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Annotations"); + } + /** + * Gets the summary of specified layers. (annotations.summary) + * + * @param string $layerIds + * Array of layer IDs to get the summary for. + * @param string $volumeId + * Volume id to get the summary for. + * @param array $optParams Optional parameters. + * @return Google_Service_Books_AnnotationsSummary + */ + public function summary($layerIds, $volumeId, $optParams = array()) + { + $params = array('layerIds' => $layerIds, 'volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('summary', array($params), "Google_Service_Books_AnnotationsSummary"); + } + /** + * Updates an existing annotation. (annotations.update) + * + * @param string $annotationId + * The ID for the annotation to update. + * @param Google_Annotation $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Annotation + */ + public function update($annotationId, Google_Service_Books_Annotation $postBody, $optParams = array()) + { + $params = array('annotationId' => $annotationId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Books_Annotation"); + } +} +/** + * The "bookshelves" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $bookshelves = $booksService->bookshelves; + * + */ +class Google_Service_Books_MylibraryBookshelves_Resource extends Google_Service_Resource +{ + + /** + * Adds a volume to a bookshelf. (bookshelves.addVolume) + * + * @param string $shelf + * ID of bookshelf to which to add a volume. + * @param string $volumeId + * ID of volume to add. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + */ + public function addVolume($shelf, $volumeId, $optParams = array()) + { + $params = array('shelf' => $shelf, 'volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('addVolume', array($params)); + } + /** + * Clears all volumes from a bookshelf. (bookshelves.clearVolumes) + * + * @param string $shelf + * ID of bookshelf from which to remove a volume. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + */ + public function clearVolumes($shelf, $optParams = array()) + { + $params = array('shelf' => $shelf); + $params = array_merge($params, $optParams); + return $this->call('clearVolumes', array($params)); + } + /** + * Retrieves metadata for a specific bookshelf belonging to the authenticated + * user. (bookshelves.get) + * + * @param string $shelf + * ID of bookshelf to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Bookshelf + */ + public function get($shelf, $optParams = array()) + { + $params = array('shelf' => $shelf); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Bookshelf"); + } + /** + * Retrieves a list of bookshelves belonging to the authenticated user. + * (bookshelves.listMylibraryBookshelves) + * + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Bookshelves + */ + public function listMylibraryBookshelves($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Bookshelves"); + } + /** + * Moves a volume within a bookshelf. (bookshelves.moveVolume) + * + * @param string $shelf + * ID of bookshelf with the volume. + * @param string $volumeId + * ID of volume to move. + * @param int $volumePosition + * Position on shelf to move the item (0 puts the item before the current first item, 1 puts it + * between the first and the second and so on.) + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + */ + public function moveVolume($shelf, $volumeId, $volumePosition, $optParams = array()) + { + $params = array('shelf' => $shelf, 'volumeId' => $volumeId, 'volumePosition' => $volumePosition); + $params = array_merge($params, $optParams); + return $this->call('moveVolume', array($params)); + } + /** + * Removes a volume from a bookshelf. (bookshelves.removeVolume) + * + * @param string $shelf + * ID of bookshelf from which to remove a volume. + * @param string $volumeId + * ID of volume to remove. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + */ + public function removeVolume($shelf, $volumeId, $optParams = array()) + { + $params = array('shelf' => $shelf, 'volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('removeVolume', array($params)); + } +} + +/** + * The "volumes" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $volumes = $booksService->volumes; + * + */ +class Google_Service_Books_MylibraryBookshelvesVolumes_Resource extends Google_Service_Resource +{ + + /** + * Gets volume information for volumes on a bookshelf. + * (volumes.listMylibraryBookshelvesVolumes) + * + * @param string $shelf + * The bookshelf ID or name retrieve volumes for. + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @opt_param string country + * ISO-3166-1 code to override the IP-based location. + * @opt_param bool showPreorders + * Set to true to show pre-ordered books. Defaults to false. + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string q + * Full-text search query string in this bookshelf. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string startIndex + * Index of the first element to return (starts at 0) + * @return Google_Service_Books_Volumes + */ + public function listMylibraryBookshelvesVolumes($shelf, $optParams = array()) + { + $params = array('shelf' => $shelf); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } +} +/** + * The "readingpositions" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $readingpositions = $booksService->readingpositions; + * + */ +class Google_Service_Books_MylibraryReadingpositions_Resource extends Google_Service_Resource +{ + + /** + * Retrieves my reading position information for a volume. + * (readingpositions.get) + * + * @param string $volumeId + * ID of volume for which to retrieve a reading position. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string contentVersion + * Volume content version for which this reading position is requested. + * @return Google_Service_Books_ReadingPosition + */ + public function get($volumeId, $optParams = array()) + { + $params = array('volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_ReadingPosition"); + } + /** + * Sets my reading position information for a volume. + * (readingpositions.setPosition) + * + * @param string $volumeId + * ID of volume for which to update the reading position. + * @param string $timestamp + * RFC 3339 UTC format timestamp associated with this reading position. + * @param string $position + * Position string for the new volume reading position. + * @param array $optParams Optional parameters. + * + * @opt_param string deviceCookie + * Random persistent device cookie optional on set position. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string contentVersion + * Volume content version for which this reading position applies. + * @opt_param string action + * Action that caused this reading position to be set. + */ + public function setPosition($volumeId, $timestamp, $position, $optParams = array()) + { + $params = array('volumeId' => $volumeId, 'timestamp' => $timestamp, 'position' => $position); + $params = array_merge($params, $optParams); + return $this->call('setPosition', array($params)); + } +} + +/** + * The "promooffer" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $promooffer = $booksService->promooffer; + * + */ +class Google_Service_Books_Promooffer_Resource extends Google_Service_Resource +{ + + /** + * (promooffer.accept) + * + * @param array $optParams Optional parameters. + * + * @opt_param string product + * device product + * @opt_param string volumeId + * Volume id to exercise the offer + * @opt_param string offerId + * + * @opt_param string androidId + * device android_id + * @opt_param string device + * device device + * @opt_param string model + * device model + * @opt_param string serial + * device serial + * @opt_param string manufacturer + * device manufacturer + */ + public function accept($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('accept', array($params)); + } + /** + * (promooffer.dismiss) + * + * @param array $optParams Optional parameters. + * + * @opt_param string product + * device product + * @opt_param string offerId + * Offer to dimiss + * @opt_param string androidId + * device android_id + * @opt_param string device + * device device + * @opt_param string model + * device model + * @opt_param string serial + * device serial + * @opt_param string manufacturer + * device manufacturer + */ + public function dismiss($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('dismiss', array($params)); + } + /** + * Returns a list of promo offers available to the user (promooffer.get) + * + * @param array $optParams Optional parameters. + * + * @opt_param string product + * device product + * @opt_param string androidId + * device android_id + * @opt_param string device + * device device + * @opt_param string model + * device model + * @opt_param string serial + * device serial + * @opt_param string manufacturer + * device manufacturer + * @return Google_Service_Books_Offers + */ + public function get($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Offers"); + } +} + +/** + * The "volumes" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $volumes = $booksService->volumes; + * + */ +class Google_Service_Books_Volumes_Resource extends Google_Service_Resource +{ + + /** + * Gets volume information for a single volume. (volumes.get) + * + * @param string $volumeId + * ID of volume to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string country + * ISO-3166-1 code to override the IP-based location. + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @opt_param string partner + * Brand results for partner ID. + * @return Google_Service_Books_Volume + */ + public function get($volumeId, $optParams = array()) + { + $params = array('volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Books_Volume"); + } + /** + * Performs a book search. (volumes.listVolumes) + * + * @param string $q + * Full-text search query string. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Sort search results. + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @opt_param string libraryRestrict + * Restrict search to this user's library. + * @opt_param string langRestrict + * Restrict results to books with this language code. + * @opt_param bool showPreorders + * Set to true to show books available for preorder. Defaults to false. + * @opt_param string printType + * Restrict to books or magazines. + * @opt_param string maxResults + * Maximum number of results to return. + * @opt_param string filter + * Filter search results. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string startIndex + * Index of the first result to return (starts at 0) + * @opt_param string download + * Restrict to volumes by download availability. + * @opt_param string partner + * Restrict and brand results for partner ID. + * @return Google_Service_Books_Volumes + */ + public function listVolumes($q, $optParams = array()) + { + $params = array('q' => $q); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } +} + +/** + * The "associated" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $associated = $booksService->associated; + * + */ +class Google_Service_Books_VolumesAssociated_Resource extends Google_Service_Resource +{ + + /** + * Return a list of associated books. (associated.listVolumesAssociated) + * + * @param string $volumeId + * ID of the source volume. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating + * recommendations. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string association + * Association type. + * @return Google_Service_Books_Volumes + */ + public function listVolumesAssociated($volumeId, $optParams = array()) + { + $params = array('volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } +} +/** + * The "mybooks" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $mybooks = $booksService->mybooks; + * + */ +class Google_Service_Books_VolumesMybooks_Resource extends Google_Service_Resource +{ + + /** + * Return a list of books in My Library. (mybooks.listVolumesMybooks) + * + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * ISO-639-1 language and ISO-3166-1 country code. Ex:'en_US'. Used for generating recommendations. + * @opt_param string startIndex + * Index of the first result to return (starts at 0) + * @opt_param string maxResults + * Maximum number of results to return. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string acquireMethod + * How the book was aquired + * @opt_param string processingState + * The processing state of the user uploaded volumes to be returned. Applicable only if the + * UPLOADED is specified in the acquireMethod. + * @return Google_Service_Books_Volumes + */ + public function listVolumesMybooks($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } +} +/** + * The "recommended" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $recommended = $booksService->recommended; + * + */ +class Google_Service_Books_VolumesRecommended_Resource extends Google_Service_Resource +{ + + /** + * Return a list of recommended books for the current user. + * (recommended.listVolumesRecommended) + * + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating + * recommendations. + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_Volumes + */ + public function listVolumesRecommended($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } + /** + * Rate a recommended book for the current user. (recommended.rate) + * + * @param string $rating + * Rating to be given to the volume. + * @param string $volumeId + * ID of the source volume. + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating + * recommendations. + * @opt_param string source + * String to identify the originator of this request. + * @return Google_Service_Books_BooksVolumesRecommendedRateResponse + */ + public function rate($rating, $volumeId, $optParams = array()) + { + $params = array('rating' => $rating, 'volumeId' => $volumeId); + $params = array_merge($params, $optParams); + return $this->call('rate', array($params), "Google_Service_Books_BooksVolumesRecommendedRateResponse"); + } +} +/** + * The "useruploaded" collection of methods. + * Typical usage is: + * + * $booksService = new Google_Service_Books(...); + * $useruploaded = $booksService->useruploaded; + * + */ +class Google_Service_Books_VolumesUseruploaded_Resource extends Google_Service_Resource +{ + + /** + * Return a list of books uploaded by the current user. + * (useruploaded.listVolumesUseruploaded) + * + * @param array $optParams Optional parameters. + * + * @opt_param string locale + * ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating + * recommendations. + * @opt_param string volumeId + * The ids of the volumes to be returned. If not specified all that match the processingState are + * returned. + * @opt_param string maxResults + * Maximum number of results to return. + * @opt_param string source + * String to identify the originator of this request. + * @opt_param string startIndex + * Index of the first result to return (starts at 0) + * @opt_param string processingState + * The processing state of the user uploaded volumes to be returned. + * @return Google_Service_Books_Volumes + */ + public function listVolumesUseruploaded($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Books_Volumes"); + } +} + + + + +class Google_Service_Books_Annotation extends Google_Collection +{ + protected $collection_key = 'pageIds'; + protected $internal_gapi_mappings = array( + ); + public $afterSelectedText; + public $beforeSelectedText; + protected $clientVersionRangesType = 'Google_Service_Books_AnnotationClientVersionRanges'; + protected $clientVersionRangesDataType = ''; + public $created; + protected $currentVersionRangesType = 'Google_Service_Books_AnnotationCurrentVersionRanges'; + protected $currentVersionRangesDataType = ''; + public $data; + public $deleted; + public $highlightStyle; + public $id; + public $kind; + public $layerId; + protected $layerSummaryType = 'Google_Service_Books_AnnotationLayerSummary'; + protected $layerSummaryDataType = ''; + public $pageIds; + public $selectedText; + public $selfLink; + public $updated; + public $volumeId; + + public function setAfterSelectedText($afterSelectedText) + { + $this->afterSelectedText = $afterSelectedText; + } + + public function getAfterSelectedText() + { + return $this->afterSelectedText; + } + + public function setBeforeSelectedText($beforeSelectedText) + { + $this->beforeSelectedText = $beforeSelectedText; + } + + public function getBeforeSelectedText() + { + return $this->beforeSelectedText; + } + + public function setClientVersionRanges(Google_Service_Books_AnnotationClientVersionRanges $clientVersionRanges) + { + $this->clientVersionRanges = $clientVersionRanges; + } + + public function getClientVersionRanges() + { + return $this->clientVersionRanges; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setCurrentVersionRanges(Google_Service_Books_AnnotationCurrentVersionRanges $currentVersionRanges) + { + $this->currentVersionRanges = $currentVersionRanges; + } + + public function getCurrentVersionRanges() + { + return $this->currentVersionRanges; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setHighlightStyle($highlightStyle) + { + $this->highlightStyle = $highlightStyle; + } + + public function getHighlightStyle() + { + return $this->highlightStyle; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLayerId($layerId) + { + $this->layerId = $layerId; + } + + public function getLayerId() + { + return $this->layerId; + } + + public function setLayerSummary(Google_Service_Books_AnnotationLayerSummary $layerSummary) + { + $this->layerSummary = $layerSummary; + } + + public function getLayerSummary() + { + return $this->layerSummary; + } + + public function setPageIds($pageIds) + { + $this->pageIds = $pageIds; + } + + public function getPageIds() + { + return $this->pageIds; + } + + public function setSelectedText($selectedText) + { + $this->selectedText = $selectedText; + } + + public function getSelectedText() + { + return $this->selectedText; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_AnnotationClientVersionRanges extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $cfiRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $cfiRangeDataType = ''; + public $contentVersion; + protected $gbImageRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $gbImageRangeDataType = ''; + protected $gbTextRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $gbTextRangeDataType = ''; + protected $imageCfiRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $imageCfiRangeDataType = ''; + + public function setCfiRange(Google_Service_Books_BooksAnnotationsRange $cfiRange) + { + $this->cfiRange = $cfiRange; + } + + public function getCfiRange() + { + return $this->cfiRange; + } + + public function setContentVersion($contentVersion) + { + $this->contentVersion = $contentVersion; + } + + public function getContentVersion() + { + return $this->contentVersion; + } + + public function setGbImageRange(Google_Service_Books_BooksAnnotationsRange $gbImageRange) + { + $this->gbImageRange = $gbImageRange; + } + + public function getGbImageRange() + { + return $this->gbImageRange; + } + + public function setGbTextRange(Google_Service_Books_BooksAnnotationsRange $gbTextRange) + { + $this->gbTextRange = $gbTextRange; + } + + public function getGbTextRange() + { + return $this->gbTextRange; + } + + public function setImageCfiRange(Google_Service_Books_BooksAnnotationsRange $imageCfiRange) + { + $this->imageCfiRange = $imageCfiRange; + } + + public function getImageCfiRange() + { + return $this->imageCfiRange; + } +} + +class Google_Service_Books_AnnotationCurrentVersionRanges extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $cfiRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $cfiRangeDataType = ''; + public $contentVersion; + protected $gbImageRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $gbImageRangeDataType = ''; + protected $gbTextRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $gbTextRangeDataType = ''; + protected $imageCfiRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $imageCfiRangeDataType = ''; + + public function setCfiRange(Google_Service_Books_BooksAnnotationsRange $cfiRange) + { + $this->cfiRange = $cfiRange; + } + + public function getCfiRange() + { + return $this->cfiRange; + } + + public function setContentVersion($contentVersion) + { + $this->contentVersion = $contentVersion; + } + + public function getContentVersion() + { + return $this->contentVersion; + } + + public function setGbImageRange(Google_Service_Books_BooksAnnotationsRange $gbImageRange) + { + $this->gbImageRange = $gbImageRange; + } + + public function getGbImageRange() + { + return $this->gbImageRange; + } + + public function setGbTextRange(Google_Service_Books_BooksAnnotationsRange $gbTextRange) + { + $this->gbTextRange = $gbTextRange; + } + + public function getGbTextRange() + { + return $this->gbTextRange; + } + + public function setImageCfiRange(Google_Service_Books_BooksAnnotationsRange $imageCfiRange) + { + $this->imageCfiRange = $imageCfiRange; + } + + public function getImageCfiRange() + { + return $this->imageCfiRange; + } +} + +class Google_Service_Books_AnnotationLayerSummary extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $allowedCharacterCount; + public $limitType; + public $remainingCharacterCount; + + public function setAllowedCharacterCount($allowedCharacterCount) + { + $this->allowedCharacterCount = $allowedCharacterCount; + } + + public function getAllowedCharacterCount() + { + return $this->allowedCharacterCount; + } + + public function setLimitType($limitType) + { + $this->limitType = $limitType; + } + + public function getLimitType() + { + return $this->limitType; + } + + public function setRemainingCharacterCount($remainingCharacterCount) + { + $this->remainingCharacterCount = $remainingCharacterCount; + } + + public function getRemainingCharacterCount() + { + return $this->remainingCharacterCount; + } +} + +class Google_Service_Books_Annotationdata extends Google_Model +{ + protected $internal_gapi_mappings = array( + "encodedData" => "encoded_data", + ); + public $annotationType; + public $data; + public $encodedData; + public $id; + public $kind; + public $layerId; + public $selfLink; + public $updated; + public $volumeId; + + public function setAnnotationType($annotationType) + { + $this->annotationType = $annotationType; + } + + public function getAnnotationType() + { + return $this->annotationType; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setEncodedData($encodedData) + { + $this->encodedData = $encodedData; + } + + public function getEncodedData() + { + return $this->encodedData; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLayerId($layerId) + { + $this->layerId = $layerId; + } + + public function getLayerId() + { + return $this->layerId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_Annotations extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_Annotation'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Books_AnnotationsSummary extends Google_Collection +{ + protected $collection_key = 'layers'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $layersType = 'Google_Service_Books_AnnotationsSummaryLayers'; + protected $layersDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLayers($layers) + { + $this->layers = $layers; + } + + public function getLayers() + { + return $this->layers; + } +} + +class Google_Service_Books_AnnotationsSummaryLayers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $allowedCharacterCount; + public $layerId; + public $limitType; + public $remainingCharacterCount; + public $updated; + + public function setAllowedCharacterCount($allowedCharacterCount) + { + $this->allowedCharacterCount = $allowedCharacterCount; + } + + public function getAllowedCharacterCount() + { + return $this->allowedCharacterCount; + } + + public function setLayerId($layerId) + { + $this->layerId = $layerId; + } + + public function getLayerId() + { + return $this->layerId; + } + + public function setLimitType($limitType) + { + $this->limitType = $limitType; + } + + public function getLimitType() + { + return $this->limitType; + } + + public function setRemainingCharacterCount($remainingCharacterCount) + { + $this->remainingCharacterCount = $remainingCharacterCount; + } + + public function getRemainingCharacterCount() + { + return $this->remainingCharacterCount; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Books_Annotationsdata extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_Annotationdata'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Books_BooksAnnotationsRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endOffset; + public $endPosition; + public $startOffset; + public $startPosition; + + public function setEndOffset($endOffset) + { + $this->endOffset = $endOffset; + } + + public function getEndOffset() + { + return $this->endOffset; + } + + public function setEndPosition($endPosition) + { + $this->endPosition = $endPosition; + } + + public function getEndPosition() + { + return $this->endPosition; + } + + public function setStartOffset($startOffset) + { + $this->startOffset = $startOffset; + } + + public function getStartOffset() + { + return $this->startOffset; + } + + public function setStartPosition($startPosition) + { + $this->startPosition = $startPosition; + } + + public function getStartPosition() + { + return $this->startPosition; + } +} + +class Google_Service_Books_BooksCloudloadingResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $author; + public $processingState; + public $title; + public $volumeId; + + public function setAuthor($author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setProcessingState($processingState) + { + $this->processingState = $processingState; + } + + public function getProcessingState() + { + return $this->processingState; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_BooksVolumesRecommendedRateResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + "consistencyToken" => "consistency_token", + ); + public $consistencyToken; + + public function setConsistencyToken($consistencyToken) + { + $this->consistencyToken = $consistencyToken; + } + + public function getConsistencyToken() + { + return $this->consistencyToken; + } +} + +class Google_Service_Books_Bookshelf extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $access; + public $created; + public $description; + public $id; + public $kind; + public $selfLink; + public $title; + public $updated; + public $volumeCount; + public $volumesLastUpdated; + + public function setAccess($access) + { + $this->access = $access; + } + + public function getAccess() + { + return $this->access; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVolumeCount($volumeCount) + { + $this->volumeCount = $volumeCount; + } + + public function getVolumeCount() + { + return $this->volumeCount; + } + + public function setVolumesLastUpdated($volumesLastUpdated) + { + $this->volumesLastUpdated = $volumesLastUpdated; + } + + public function getVolumesLastUpdated() + { + return $this->volumesLastUpdated; + } +} + +class Google_Service_Books_Bookshelves extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_Bookshelf'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Books_ConcurrentAccessRestriction extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deviceAllowed; + public $kind; + public $maxConcurrentDevices; + public $message; + public $nonce; + public $reasonCode; + public $restricted; + public $signature; + public $source; + public $timeWindowSeconds; + public $volumeId; + + public function setDeviceAllowed($deviceAllowed) + { + $this->deviceAllowed = $deviceAllowed; + } + + public function getDeviceAllowed() + { + return $this->deviceAllowed; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxConcurrentDevices($maxConcurrentDevices) + { + $this->maxConcurrentDevices = $maxConcurrentDevices; + } + + public function getMaxConcurrentDevices() + { + return $this->maxConcurrentDevices; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setNonce($nonce) + { + $this->nonce = $nonce; + } + + public function getNonce() + { + return $this->nonce; + } + + public function setReasonCode($reasonCode) + { + $this->reasonCode = $reasonCode; + } + + public function getReasonCode() + { + return $this->reasonCode; + } + + public function setRestricted($restricted) + { + $this->restricted = $restricted; + } + + public function getRestricted() + { + return $this->restricted; + } + + public function setSignature($signature) + { + $this->signature = $signature; + } + + public function getSignature() + { + return $this->signature; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setTimeWindowSeconds($timeWindowSeconds) + { + $this->timeWindowSeconds = $timeWindowSeconds; + } + + public function getTimeWindowSeconds() + { + return $this->timeWindowSeconds; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_Dictlayerdata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $commonType = 'Google_Service_Books_DictlayerdataCommon'; + protected $commonDataType = ''; + protected $dictType = 'Google_Service_Books_DictlayerdataDict'; + protected $dictDataType = ''; + public $kind; + + public function setCommon(Google_Service_Books_DictlayerdataCommon $common) + { + $this->common = $common; + } + + public function getCommon() + { + return $this->common; + } + + public function setDict(Google_Service_Books_DictlayerdataDict $dict) + { + $this->dict = $dict; + } + + public function getDict() + { + return $this->dict; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Books_DictlayerdataCommon extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $title; + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Books_DictlayerdataDict extends Google_Collection +{ + protected $collection_key = 'words'; + protected $internal_gapi_mappings = array( + ); + protected $sourceType = 'Google_Service_Books_DictlayerdataDictSource'; + protected $sourceDataType = ''; + protected $wordsType = 'Google_Service_Books_DictlayerdataDictWords'; + protected $wordsDataType = 'array'; + + public function setSource(Google_Service_Books_DictlayerdataDictSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setWords($words) + { + $this->words = $words; + } + + public function getWords() + { + return $this->words; + } +} + +class Google_Service_Books_DictlayerdataDictSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DictlayerdataDictWords extends Google_Collection +{ + protected $collection_key = 'senses'; + protected $internal_gapi_mappings = array( + ); + protected $derivativesType = 'Google_Service_Books_DictlayerdataDictWordsDerivatives'; + protected $derivativesDataType = 'array'; + protected $examplesType = 'Google_Service_Books_DictlayerdataDictWordsExamples'; + protected $examplesDataType = 'array'; + protected $sensesType = 'Google_Service_Books_DictlayerdataDictWordsSenses'; + protected $sensesDataType = 'array'; + protected $sourceType = 'Google_Service_Books_DictlayerdataDictWordsSource'; + protected $sourceDataType = ''; + + public function setDerivatives($derivatives) + { + $this->derivatives = $derivatives; + } + + public function getDerivatives() + { + return $this->derivatives; + } + + public function setExamples($examples) + { + $this->examples = $examples; + } + + public function getExamples() + { + return $this->examples; + } + + public function setSenses($senses) + { + $this->senses = $senses; + } + + public function getSenses() + { + return $this->senses; + } + + public function setSource(Google_Service_Books_DictlayerdataDictWordsSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } +} + +class Google_Service_Books_DictlayerdataDictWordsDerivatives extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $sourceType = 'Google_Service_Books_DictlayerdataDictWordsDerivativesSource'; + protected $sourceDataType = ''; + public $text; + + public function setSource(Google_Service_Books_DictlayerdataDictWordsDerivativesSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Books_DictlayerdataDictWordsDerivativesSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DictlayerdataDictWordsExamples extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $sourceType = 'Google_Service_Books_DictlayerdataDictWordsExamplesSource'; + protected $sourceDataType = ''; + public $text; + + public function setSource(Google_Service_Books_DictlayerdataDictWordsExamplesSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Books_DictlayerdataDictWordsExamplesSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSenses extends Google_Collection +{ + protected $collection_key = 'synonyms'; + protected $internal_gapi_mappings = array( + ); + protected $conjugationsType = 'Google_Service_Books_DictlayerdataDictWordsSensesConjugations'; + protected $conjugationsDataType = 'array'; + protected $definitionsType = 'Google_Service_Books_DictlayerdataDictWordsSensesDefinitions'; + protected $definitionsDataType = 'array'; + public $partOfSpeech; + public $pronunciation; + public $pronunciationUrl; + protected $sourceType = 'Google_Service_Books_DictlayerdataDictWordsSensesSource'; + protected $sourceDataType = ''; + public $syllabification; + protected $synonymsType = 'Google_Service_Books_DictlayerdataDictWordsSensesSynonyms'; + protected $synonymsDataType = 'array'; + + public function setConjugations($conjugations) + { + $this->conjugations = $conjugations; + } + + public function getConjugations() + { + return $this->conjugations; + } + + public function setDefinitions($definitions) + { + $this->definitions = $definitions; + } + + public function getDefinitions() + { + return $this->definitions; + } + + public function setPartOfSpeech($partOfSpeech) + { + $this->partOfSpeech = $partOfSpeech; + } + + public function getPartOfSpeech() + { + return $this->partOfSpeech; + } + + public function setPronunciation($pronunciation) + { + $this->pronunciation = $pronunciation; + } + + public function getPronunciation() + { + return $this->pronunciation; + } + + public function setPronunciationUrl($pronunciationUrl) + { + $this->pronunciationUrl = $pronunciationUrl; + } + + public function getPronunciationUrl() + { + return $this->pronunciationUrl; + } + + public function setSource(Google_Service_Books_DictlayerdataDictWordsSensesSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setSyllabification($syllabification) + { + $this->syllabification = $syllabification; + } + + public function getSyllabification() + { + return $this->syllabification; + } + + public function setSynonyms($synonyms) + { + $this->synonyms = $synonyms; + } + + public function getSynonyms() + { + return $this->synonyms; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesConjugations extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesDefinitions extends Google_Collection +{ + protected $collection_key = 'examples'; + protected $internal_gapi_mappings = array( + ); + public $definition; + protected $examplesType = 'Google_Service_Books_DictlayerdataDictWordsSensesDefinitionsExamples'; + protected $examplesDataType = 'array'; + + public function setDefinition($definition) + { + $this->definition = $definition; + } + + public function getDefinition() + { + return $this->definition; + } + + public function setExamples($examples) + { + $this->examples = $examples; + } + + public function getExamples() + { + return $this->examples; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesDefinitionsExamples extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $sourceType = 'Google_Service_Books_DictlayerdataDictWordsSensesDefinitionsExamplesSource'; + protected $sourceDataType = ''; + public $text; + + public function setSource(Google_Service_Books_DictlayerdataDictWordsSensesDefinitionsExamplesSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesDefinitionsExamplesSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesSynonyms extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $sourceType = 'Google_Service_Books_DictlayerdataDictWordsSensesSynonymsSource'; + protected $sourceDataType = ''; + public $text; + + public function setSource(Google_Service_Books_DictlayerdataDictWordsSensesSynonymsSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSensesSynonymsSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DictlayerdataDictWordsSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $url; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_DownloadAccessRestriction extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deviceAllowed; + public $downloadsAcquired; + public $justAcquired; + public $kind; + public $maxDownloadDevices; + public $message; + public $nonce; + public $reasonCode; + public $restricted; + public $signature; + public $source; + public $volumeId; + + public function setDeviceAllowed($deviceAllowed) + { + $this->deviceAllowed = $deviceAllowed; + } + + public function getDeviceAllowed() + { + return $this->deviceAllowed; + } + + public function setDownloadsAcquired($downloadsAcquired) + { + $this->downloadsAcquired = $downloadsAcquired; + } + + public function getDownloadsAcquired() + { + return $this->downloadsAcquired; + } + + public function setJustAcquired($justAcquired) + { + $this->justAcquired = $justAcquired; + } + + public function getJustAcquired() + { + return $this->justAcquired; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxDownloadDevices($maxDownloadDevices) + { + $this->maxDownloadDevices = $maxDownloadDevices; + } + + public function getMaxDownloadDevices() + { + return $this->maxDownloadDevices; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setNonce($nonce) + { + $this->nonce = $nonce; + } + + public function getNonce() + { + return $this->nonce; + } + + public function setReasonCode($reasonCode) + { + $this->reasonCode = $reasonCode; + } + + public function getReasonCode() + { + return $this->reasonCode; + } + + public function setRestricted($restricted) + { + $this->restricted = $restricted; + } + + public function getRestricted() + { + return $this->restricted; + } + + public function setSignature($signature) + { + $this->signature = $signature; + } + + public function getSignature() + { + return $this->signature; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_DownloadAccesses extends Google_Collection +{ + protected $collection_key = 'downloadAccessList'; + protected $internal_gapi_mappings = array( + ); + protected $downloadAccessListType = 'Google_Service_Books_DownloadAccessRestriction'; + protected $downloadAccessListDataType = 'array'; + public $kind; + + public function setDownloadAccessList($downloadAccessList) + { + $this->downloadAccessList = $downloadAccessList; + } + + public function getDownloadAccessList() + { + return $this->downloadAccessList; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Books_Geolayerdata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $commonType = 'Google_Service_Books_GeolayerdataCommon'; + protected $commonDataType = ''; + protected $geoType = 'Google_Service_Books_GeolayerdataGeo'; + protected $geoDataType = ''; + public $kind; + + public function setCommon(Google_Service_Books_GeolayerdataCommon $common) + { + $this->common = $common; + } + + public function getCommon() + { + return $this->common; + } + + public function setGeo(Google_Service_Books_GeolayerdataGeo $geo) + { + $this->geo = $geo; + } + + public function getGeo() + { + return $this->geo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Books_GeolayerdataCommon extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $lang; + public $previewImageUrl; + public $snippet; + public $snippetUrl; + public $title; + + public function setLang($lang) + { + $this->lang = $lang; + } + + public function getLang() + { + return $this->lang; + } + + public function setPreviewImageUrl($previewImageUrl) + { + $this->previewImageUrl = $previewImageUrl; + } + + public function getPreviewImageUrl() + { + return $this->previewImageUrl; + } + + public function setSnippet($snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setSnippetUrl($snippetUrl) + { + $this->snippetUrl = $snippetUrl; + } + + public function getSnippetUrl() + { + return $this->snippetUrl; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Books_GeolayerdataGeo extends Google_Collection +{ + protected $collection_key = 'boundary'; + protected $internal_gapi_mappings = array( + ); + protected $boundaryType = 'Google_Service_Books_GeolayerdataGeoBoundary'; + protected $boundaryDataType = 'array'; + public $cachePolicy; + public $countryCode; + public $latitude; + public $longitude; + public $mapType; + protected $viewportType = 'Google_Service_Books_GeolayerdataGeoViewport'; + protected $viewportDataType = ''; + public $zoom; + + public function setBoundary($boundary) + { + $this->boundary = $boundary; + } + + public function getBoundary() + { + return $this->boundary; + } + + public function setCachePolicy($cachePolicy) + { + $this->cachePolicy = $cachePolicy; + } + + public function getCachePolicy() + { + return $this->cachePolicy; + } + + public function setCountryCode($countryCode) + { + $this->countryCode = $countryCode; + } + + public function getCountryCode() + { + return $this->countryCode; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } + + public function setMapType($mapType) + { + $this->mapType = $mapType; + } + + public function getMapType() + { + return $this->mapType; + } + + public function setViewport(Google_Service_Books_GeolayerdataGeoViewport $viewport) + { + $this->viewport = $viewport; + } + + public function getViewport() + { + return $this->viewport; + } + + public function setZoom($zoom) + { + $this->zoom = $zoom; + } + + public function getZoom() + { + return $this->zoom; + } +} + +class Google_Service_Books_GeolayerdataGeoBoundary extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $latitude; + public $longitude; + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Books_GeolayerdataGeoViewport extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $hiType = 'Google_Service_Books_GeolayerdataGeoViewportHi'; + protected $hiDataType = ''; + protected $loType = 'Google_Service_Books_GeolayerdataGeoViewportLo'; + protected $loDataType = ''; + + public function setHi(Google_Service_Books_GeolayerdataGeoViewportHi $hi) + { + $this->hi = $hi; + } + + public function getHi() + { + return $this->hi; + } + + public function setLo(Google_Service_Books_GeolayerdataGeoViewportLo $lo) + { + $this->lo = $lo; + } + + public function getLo() + { + return $this->lo; + } +} + +class Google_Service_Books_GeolayerdataGeoViewportHi extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $latitude; + public $longitude; + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Books_GeolayerdataGeoViewportLo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $latitude; + public $longitude; + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Books_Layersummaries extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_Layersummary'; + protected $itemsDataType = 'array'; + public $kind; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Books_Layersummary extends Google_Collection +{ + protected $collection_key = 'annotationTypes'; + protected $internal_gapi_mappings = array( + ); + public $annotationCount; + public $annotationTypes; + public $annotationsDataLink; + public $annotationsLink; + public $contentVersion; + public $dataCount; + public $id; + public $kind; + public $layerId; + public $selfLink; + public $updated; + public $volumeAnnotationsVersion; + public $volumeId; + + public function setAnnotationCount($annotationCount) + { + $this->annotationCount = $annotationCount; + } + + public function getAnnotationCount() + { + return $this->annotationCount; + } + + public function setAnnotationTypes($annotationTypes) + { + $this->annotationTypes = $annotationTypes; + } + + public function getAnnotationTypes() + { + return $this->annotationTypes; + } + + public function setAnnotationsDataLink($annotationsDataLink) + { + $this->annotationsDataLink = $annotationsDataLink; + } + + public function getAnnotationsDataLink() + { + return $this->annotationsDataLink; + } + + public function setAnnotationsLink($annotationsLink) + { + $this->annotationsLink = $annotationsLink; + } + + public function getAnnotationsLink() + { + return $this->annotationsLink; + } + + public function setContentVersion($contentVersion) + { + $this->contentVersion = $contentVersion; + } + + public function getContentVersion() + { + return $this->contentVersion; + } + + public function setDataCount($dataCount) + { + $this->dataCount = $dataCount; + } + + public function getDataCount() + { + return $this->dataCount; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLayerId($layerId) + { + $this->layerId = $layerId; + } + + public function getLayerId() + { + return $this->layerId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVolumeAnnotationsVersion($volumeAnnotationsVersion) + { + $this->volumeAnnotationsVersion = $volumeAnnotationsVersion; + } + + public function getVolumeAnnotationsVersion() + { + return $this->volumeAnnotationsVersion; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_Offers extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_OffersItems'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Books_OffersItems extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $artUrl; + public $id; + protected $itemsType = 'Google_Service_Books_OffersItemsItems'; + protected $itemsDataType = 'array'; + + public function setArtUrl($artUrl) + { + $this->artUrl = $artUrl; + } + + public function getArtUrl() + { + return $this->artUrl; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_Books_OffersItemsItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $author; + public $canonicalVolumeLink; + public $coverUrl; + public $description; + public $title; + public $volumeId; + + public function setAuthor($author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setCanonicalVolumeLink($canonicalVolumeLink) + { + $this->canonicalVolumeLink = $canonicalVolumeLink; + } + + public function getCanonicalVolumeLink() + { + return $this->canonicalVolumeLink; + } + + public function setCoverUrl($coverUrl) + { + $this->coverUrl = $coverUrl; + } + + public function getCoverUrl() + { + return $this->coverUrl; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_ReadingPosition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $epubCfiPosition; + public $gbImagePosition; + public $gbTextPosition; + public $kind; + public $pdfPosition; + public $updated; + public $volumeId; + + public function setEpubCfiPosition($epubCfiPosition) + { + $this->epubCfiPosition = $epubCfiPosition; + } + + public function getEpubCfiPosition() + { + return $this->epubCfiPosition; + } + + public function setGbImagePosition($gbImagePosition) + { + $this->gbImagePosition = $gbImagePosition; + } + + public function getGbImagePosition() + { + return $this->gbImagePosition; + } + + public function setGbTextPosition($gbTextPosition) + { + $this->gbTextPosition = $gbTextPosition; + } + + public function getGbTextPosition() + { + return $this->gbTextPosition; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPdfPosition($pdfPosition) + { + $this->pdfPosition = $pdfPosition; + } + + public function getPdfPosition() + { + return $this->pdfPosition; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_RequestAccess extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $concurrentAccessType = 'Google_Service_Books_ConcurrentAccessRestriction'; + protected $concurrentAccessDataType = ''; + protected $downloadAccessType = 'Google_Service_Books_DownloadAccessRestriction'; + protected $downloadAccessDataType = ''; + public $kind; + + public function setConcurrentAccess(Google_Service_Books_ConcurrentAccessRestriction $concurrentAccess) + { + $this->concurrentAccess = $concurrentAccess; + } + + public function getConcurrentAccess() + { + return $this->concurrentAccess; + } + + public function setDownloadAccess(Google_Service_Books_DownloadAccessRestriction $downloadAccess) + { + $this->downloadAccess = $downloadAccess; + } + + public function getDownloadAccess() + { + return $this->downloadAccess; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Books_Review extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Books_ReviewAuthor'; + protected $authorDataType = ''; + public $content; + public $date; + public $fullTextUrl; + public $kind; + public $rating; + protected $sourceType = 'Google_Service_Books_ReviewSource'; + protected $sourceDataType = ''; + public $title; + public $type; + public $volumeId; + + public function setAuthor(Google_Service_Books_ReviewAuthor $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setFullTextUrl($fullTextUrl) + { + $this->fullTextUrl = $fullTextUrl; + } + + public function getFullTextUrl() + { + return $this->fullTextUrl; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRating($rating) + { + $this->rating = $rating; + } + + public function getRating() + { + return $this->rating; + } + + public function setSource(Google_Service_Books_ReviewSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_ReviewAuthor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } +} + +class Google_Service_Books_ReviewSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $extraDescription; + public $url; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setExtraDescription($extraDescription) + { + $this->extraDescription = $extraDescription; + } + + public function getExtraDescription() + { + return $this->extraDescription; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Books_Volume extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accessInfoType = 'Google_Service_Books_VolumeAccessInfo'; + protected $accessInfoDataType = ''; + public $etag; + public $id; + public $kind; + protected $layerInfoType = 'Google_Service_Books_VolumeLayerInfo'; + protected $layerInfoDataType = ''; + protected $recommendedInfoType = 'Google_Service_Books_VolumeRecommendedInfo'; + protected $recommendedInfoDataType = ''; + protected $saleInfoType = 'Google_Service_Books_VolumeSaleInfo'; + protected $saleInfoDataType = ''; + protected $searchInfoType = 'Google_Service_Books_VolumeSearchInfo'; + protected $searchInfoDataType = ''; + public $selfLink; + protected $userInfoType = 'Google_Service_Books_VolumeUserInfo'; + protected $userInfoDataType = ''; + protected $volumeInfoType = 'Google_Service_Books_VolumeVolumeInfo'; + protected $volumeInfoDataType = ''; + + public function setAccessInfo(Google_Service_Books_VolumeAccessInfo $accessInfo) + { + $this->accessInfo = $accessInfo; + } + + public function getAccessInfo() + { + return $this->accessInfo; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLayerInfo(Google_Service_Books_VolumeLayerInfo $layerInfo) + { + $this->layerInfo = $layerInfo; + } + + public function getLayerInfo() + { + return $this->layerInfo; + } + + public function setRecommendedInfo(Google_Service_Books_VolumeRecommendedInfo $recommendedInfo) + { + $this->recommendedInfo = $recommendedInfo; + } + + public function getRecommendedInfo() + { + return $this->recommendedInfo; + } + + public function setSaleInfo(Google_Service_Books_VolumeSaleInfo $saleInfo) + { + $this->saleInfo = $saleInfo; + } + + public function getSaleInfo() + { + return $this->saleInfo; + } + + public function setSearchInfo(Google_Service_Books_VolumeSearchInfo $searchInfo) + { + $this->searchInfo = $searchInfo; + } + + public function getSearchInfo() + { + return $this->searchInfo; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUserInfo(Google_Service_Books_VolumeUserInfo $userInfo) + { + $this->userInfo = $userInfo; + } + + public function getUserInfo() + { + return $this->userInfo; + } + + public function setVolumeInfo(Google_Service_Books_VolumeVolumeInfo $volumeInfo) + { + $this->volumeInfo = $volumeInfo; + } + + public function getVolumeInfo() + { + return $this->volumeInfo; + } +} + +class Google_Service_Books_VolumeAccessInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accessViewStatus; + public $country; + protected $downloadAccessType = 'Google_Service_Books_DownloadAccessRestriction'; + protected $downloadAccessDataType = ''; + public $driveImportedContentLink; + public $embeddable; + protected $epubType = 'Google_Service_Books_VolumeAccessInfoEpub'; + protected $epubDataType = ''; + public $explicitOfflineLicenseManagement; + protected $pdfType = 'Google_Service_Books_VolumeAccessInfoPdf'; + protected $pdfDataType = ''; + public $publicDomain; + public $quoteSharingAllowed; + public $textToSpeechPermission; + public $viewOrderUrl; + public $viewability; + public $webReaderLink; + + public function setAccessViewStatus($accessViewStatus) + { + $this->accessViewStatus = $accessViewStatus; + } + + public function getAccessViewStatus() + { + return $this->accessViewStatus; + } + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setDownloadAccess(Google_Service_Books_DownloadAccessRestriction $downloadAccess) + { + $this->downloadAccess = $downloadAccess; + } + + public function getDownloadAccess() + { + return $this->downloadAccess; + } + + public function setDriveImportedContentLink($driveImportedContentLink) + { + $this->driveImportedContentLink = $driveImportedContentLink; + } + + public function getDriveImportedContentLink() + { + return $this->driveImportedContentLink; + } + + public function setEmbeddable($embeddable) + { + $this->embeddable = $embeddable; + } + + public function getEmbeddable() + { + return $this->embeddable; + } + + public function setEpub(Google_Service_Books_VolumeAccessInfoEpub $epub) + { + $this->epub = $epub; + } + + public function getEpub() + { + return $this->epub; + } + + public function setExplicitOfflineLicenseManagement($explicitOfflineLicenseManagement) + { + $this->explicitOfflineLicenseManagement = $explicitOfflineLicenseManagement; + } + + public function getExplicitOfflineLicenseManagement() + { + return $this->explicitOfflineLicenseManagement; + } + + public function setPdf(Google_Service_Books_VolumeAccessInfoPdf $pdf) + { + $this->pdf = $pdf; + } + + public function getPdf() + { + return $this->pdf; + } + + public function setPublicDomain($publicDomain) + { + $this->publicDomain = $publicDomain; + } + + public function getPublicDomain() + { + return $this->publicDomain; + } + + public function setQuoteSharingAllowed($quoteSharingAllowed) + { + $this->quoteSharingAllowed = $quoteSharingAllowed; + } + + public function getQuoteSharingAllowed() + { + return $this->quoteSharingAllowed; + } + + public function setTextToSpeechPermission($textToSpeechPermission) + { + $this->textToSpeechPermission = $textToSpeechPermission; + } + + public function getTextToSpeechPermission() + { + return $this->textToSpeechPermission; + } + + public function setViewOrderUrl($viewOrderUrl) + { + $this->viewOrderUrl = $viewOrderUrl; + } + + public function getViewOrderUrl() + { + return $this->viewOrderUrl; + } + + public function setViewability($viewability) + { + $this->viewability = $viewability; + } + + public function getViewability() + { + return $this->viewability; + } + + public function setWebReaderLink($webReaderLink) + { + $this->webReaderLink = $webReaderLink; + } + + public function getWebReaderLink() + { + return $this->webReaderLink; + } +} + +class Google_Service_Books_VolumeAccessInfoEpub extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $acsTokenLink; + public $downloadLink; + public $isAvailable; + + public function setAcsTokenLink($acsTokenLink) + { + $this->acsTokenLink = $acsTokenLink; + } + + public function getAcsTokenLink() + { + return $this->acsTokenLink; + } + + public function setDownloadLink($downloadLink) + { + $this->downloadLink = $downloadLink; + } + + public function getDownloadLink() + { + return $this->downloadLink; + } + + public function setIsAvailable($isAvailable) + { + $this->isAvailable = $isAvailable; + } + + public function getIsAvailable() + { + return $this->isAvailable; + } +} + +class Google_Service_Books_VolumeAccessInfoPdf extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $acsTokenLink; + public $downloadLink; + public $isAvailable; + + public function setAcsTokenLink($acsTokenLink) + { + $this->acsTokenLink = $acsTokenLink; + } + + public function getAcsTokenLink() + { + return $this->acsTokenLink; + } + + public function setDownloadLink($downloadLink) + { + $this->downloadLink = $downloadLink; + } + + public function getDownloadLink() + { + return $this->downloadLink; + } + + public function setIsAvailable($isAvailable) + { + $this->isAvailable = $isAvailable; + } + + public function getIsAvailable() + { + return $this->isAvailable; + } +} + +class Google_Service_Books_VolumeLayerInfo extends Google_Collection +{ + protected $collection_key = 'layers'; + protected $internal_gapi_mappings = array( + ); + protected $layersType = 'Google_Service_Books_VolumeLayerInfoLayers'; + protected $layersDataType = 'array'; + + public function setLayers($layers) + { + $this->layers = $layers; + } + + public function getLayers() + { + return $this->layers; + } +} + +class Google_Service_Books_VolumeLayerInfoLayers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $layerId; + public $volumeAnnotationsVersion; + + public function setLayerId($layerId) + { + $this->layerId = $layerId; + } + + public function getLayerId() + { + return $this->layerId; + } + + public function setVolumeAnnotationsVersion($volumeAnnotationsVersion) + { + $this->volumeAnnotationsVersion = $volumeAnnotationsVersion; + } + + public function getVolumeAnnotationsVersion() + { + return $this->volumeAnnotationsVersion; + } +} + +class Google_Service_Books_VolumeRecommendedInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $explanation; + + public function setExplanation($explanation) + { + $this->explanation = $explanation; + } + + public function getExplanation() + { + return $this->explanation; + } +} + +class Google_Service_Books_VolumeSaleInfo extends Google_Collection +{ + protected $collection_key = 'offers'; + protected $internal_gapi_mappings = array( + ); + public $buyLink; + public $country; + public $isEbook; + protected $listPriceType = 'Google_Service_Books_VolumeSaleInfoListPrice'; + protected $listPriceDataType = ''; + protected $offersType = 'Google_Service_Books_VolumeSaleInfoOffers'; + protected $offersDataType = 'array'; + public $onSaleDate; + protected $retailPriceType = 'Google_Service_Books_VolumeSaleInfoRetailPrice'; + protected $retailPriceDataType = ''; + public $saleability; + + public function setBuyLink($buyLink) + { + $this->buyLink = $buyLink; + } + + public function getBuyLink() + { + return $this->buyLink; + } + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setIsEbook($isEbook) + { + $this->isEbook = $isEbook; + } + + public function getIsEbook() + { + return $this->isEbook; + } + + public function setListPrice(Google_Service_Books_VolumeSaleInfoListPrice $listPrice) + { + $this->listPrice = $listPrice; + } + + public function getListPrice() + { + return $this->listPrice; + } + + public function setOffers($offers) + { + $this->offers = $offers; + } + + public function getOffers() + { + return $this->offers; + } + + public function setOnSaleDate($onSaleDate) + { + $this->onSaleDate = $onSaleDate; + } + + public function getOnSaleDate() + { + return $this->onSaleDate; + } + + public function setRetailPrice(Google_Service_Books_VolumeSaleInfoRetailPrice $retailPrice) + { + $this->retailPrice = $retailPrice; + } + + public function getRetailPrice() + { + return $this->retailPrice; + } + + public function setSaleability($saleability) + { + $this->saleability = $saleability; + } + + public function getSaleability() + { + return $this->saleability; + } +} + +class Google_Service_Books_VolumeSaleInfoListPrice extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $amount; + public $currencyCode; + + public function setAmount($amount) + { + $this->amount = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } +} + +class Google_Service_Books_VolumeSaleInfoOffers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $finskyOfferType; + protected $listPriceType = 'Google_Service_Books_VolumeSaleInfoOffersListPrice'; + protected $listPriceDataType = ''; + protected $rentalDurationType = 'Google_Service_Books_VolumeSaleInfoOffersRentalDuration'; + protected $rentalDurationDataType = ''; + protected $retailPriceType = 'Google_Service_Books_VolumeSaleInfoOffersRetailPrice'; + protected $retailPriceDataType = ''; + + public function setFinskyOfferType($finskyOfferType) + { + $this->finskyOfferType = $finskyOfferType; + } + + public function getFinskyOfferType() + { + return $this->finskyOfferType; + } + + public function setListPrice(Google_Service_Books_VolumeSaleInfoOffersListPrice $listPrice) + { + $this->listPrice = $listPrice; + } + + public function getListPrice() + { + return $this->listPrice; + } + + public function setRentalDuration(Google_Service_Books_VolumeSaleInfoOffersRentalDuration $rentalDuration) + { + $this->rentalDuration = $rentalDuration; + } + + public function getRentalDuration() + { + return $this->rentalDuration; + } + + public function setRetailPrice(Google_Service_Books_VolumeSaleInfoOffersRetailPrice $retailPrice) + { + $this->retailPrice = $retailPrice; + } + + public function getRetailPrice() + { + return $this->retailPrice; + } +} + +class Google_Service_Books_VolumeSaleInfoOffersListPrice extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $amountInMicros; + public $currencyCode; + + public function setAmountInMicros($amountInMicros) + { + $this->amountInMicros = $amountInMicros; + } + + public function getAmountInMicros() + { + return $this->amountInMicros; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } +} + +class Google_Service_Books_VolumeSaleInfoOffersRentalDuration extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $unit; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setUnit($unit) + { + $this->unit = $unit; + } + + public function getUnit() + { + return $this->unit; + } +} + +class Google_Service_Books_VolumeSaleInfoOffersRetailPrice extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $amountInMicros; + public $currencyCode; + + public function setAmountInMicros($amountInMicros) + { + $this->amountInMicros = $amountInMicros; + } + + public function getAmountInMicros() + { + return $this->amountInMicros; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } +} + +class Google_Service_Books_VolumeSaleInfoRetailPrice extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $amount; + public $currencyCode; + + public function setAmount($amount) + { + $this->amount = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } +} + +class Google_Service_Books_VolumeSearchInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $textSnippet; + + public function setTextSnippet($textSnippet) + { + $this->textSnippet = $textSnippet; + } + + public function getTextSnippet() + { + return $this->textSnippet; + } +} + +class Google_Service_Books_VolumeUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $copyType = 'Google_Service_Books_VolumeUserInfoCopy'; + protected $copyDataType = ''; + public $isInMyBooks; + public $isPreordered; + public $isPurchased; + public $isUploaded; + protected $readingPositionType = 'Google_Service_Books_ReadingPosition'; + protected $readingPositionDataType = ''; + protected $rentalPeriodType = 'Google_Service_Books_VolumeUserInfoRentalPeriod'; + protected $rentalPeriodDataType = ''; + public $rentalState; + protected $reviewType = 'Google_Service_Books_Review'; + protected $reviewDataType = ''; + public $updated; + protected $userUploadedVolumeInfoType = 'Google_Service_Books_VolumeUserInfoUserUploadedVolumeInfo'; + protected $userUploadedVolumeInfoDataType = ''; + + public function setCopy(Google_Service_Books_VolumeUserInfoCopy $copy) + { + $this->copy = $copy; + } + + public function getCopy() + { + return $this->copy; + } + + public function setIsInMyBooks($isInMyBooks) + { + $this->isInMyBooks = $isInMyBooks; + } + + public function getIsInMyBooks() + { + return $this->isInMyBooks; + } + + public function setIsPreordered($isPreordered) + { + $this->isPreordered = $isPreordered; + } + + public function getIsPreordered() + { + return $this->isPreordered; + } + + public function setIsPurchased($isPurchased) + { + $this->isPurchased = $isPurchased; + } + + public function getIsPurchased() + { + return $this->isPurchased; + } + + public function setIsUploaded($isUploaded) + { + $this->isUploaded = $isUploaded; + } + + public function getIsUploaded() + { + return $this->isUploaded; + } + + public function setReadingPosition(Google_Service_Books_ReadingPosition $readingPosition) + { + $this->readingPosition = $readingPosition; + } + + public function getReadingPosition() + { + return $this->readingPosition; + } + + public function setRentalPeriod(Google_Service_Books_VolumeUserInfoRentalPeriod $rentalPeriod) + { + $this->rentalPeriod = $rentalPeriod; + } + + public function getRentalPeriod() + { + return $this->rentalPeriod; + } + + public function setRentalState($rentalState) + { + $this->rentalState = $rentalState; + } + + public function getRentalState() + { + return $this->rentalState; + } + + public function setReview(Google_Service_Books_Review $review) + { + $this->review = $review; + } + + public function getReview() + { + return $this->review; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUserUploadedVolumeInfo(Google_Service_Books_VolumeUserInfoUserUploadedVolumeInfo $userUploadedVolumeInfo) + { + $this->userUploadedVolumeInfo = $userUploadedVolumeInfo; + } + + public function getUserUploadedVolumeInfo() + { + return $this->userUploadedVolumeInfo; + } +} + +class Google_Service_Books_VolumeUserInfoCopy extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $allowedCharacterCount; + public $limitType; + public $remainingCharacterCount; + public $updated; + + public function setAllowedCharacterCount($allowedCharacterCount) + { + $this->allowedCharacterCount = $allowedCharacterCount; + } + + public function getAllowedCharacterCount() + { + return $this->allowedCharacterCount; + } + + public function setLimitType($limitType) + { + $this->limitType = $limitType; + } + + public function getLimitType() + { + return $this->limitType; + } + + public function setRemainingCharacterCount($remainingCharacterCount) + { + $this->remainingCharacterCount = $remainingCharacterCount; + } + + public function getRemainingCharacterCount() + { + return $this->remainingCharacterCount; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Books_VolumeUserInfoRentalPeriod extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endUtcSec; + public $startUtcSec; + + public function setEndUtcSec($endUtcSec) + { + $this->endUtcSec = $endUtcSec; + } + + public function getEndUtcSec() + { + return $this->endUtcSec; + } + + public function setStartUtcSec($startUtcSec) + { + $this->startUtcSec = $startUtcSec; + } + + public function getStartUtcSec() + { + return $this->startUtcSec; + } +} + +class Google_Service_Books_VolumeUserInfoUserUploadedVolumeInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $processingState; + + public function setProcessingState($processingState) + { + $this->processingState = $processingState; + } + + public function getProcessingState() + { + return $this->processingState; + } +} + +class Google_Service_Books_VolumeVolumeInfo extends Google_Collection +{ + protected $collection_key = 'industryIdentifiers'; + protected $internal_gapi_mappings = array( + ); + public $authors; + public $averageRating; + public $canonicalVolumeLink; + public $categories; + public $contentVersion; + public $description; + protected $dimensionsType = 'Google_Service_Books_VolumeVolumeInfoDimensions'; + protected $dimensionsDataType = ''; + protected $imageLinksType = 'Google_Service_Books_VolumeVolumeInfoImageLinks'; + protected $imageLinksDataType = ''; + protected $industryIdentifiersType = 'Google_Service_Books_VolumeVolumeInfoIndustryIdentifiers'; + protected $industryIdentifiersDataType = 'array'; + public $infoLink; + public $language; + public $mainCategory; + public $pageCount; + public $previewLink; + public $printType; + public $printedPageCount; + public $publishedDate; + public $publisher; + public $ratingsCount; + public $readingModes; + public $subtitle; + public $title; + + public function setAuthors($authors) + { + $this->authors = $authors; + } + + public function getAuthors() + { + return $this->authors; + } + + public function setAverageRating($averageRating) + { + $this->averageRating = $averageRating; + } + + public function getAverageRating() + { + return $this->averageRating; + } + + public function setCanonicalVolumeLink($canonicalVolumeLink) + { + $this->canonicalVolumeLink = $canonicalVolumeLink; + } + + public function getCanonicalVolumeLink() + { + return $this->canonicalVolumeLink; + } + + public function setCategories($categories) + { + $this->categories = $categories; + } + + public function getCategories() + { + return $this->categories; + } + + public function setContentVersion($contentVersion) + { + $this->contentVersion = $contentVersion; + } + + public function getContentVersion() + { + return $this->contentVersion; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDimensions(Google_Service_Books_VolumeVolumeInfoDimensions $dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setImageLinks(Google_Service_Books_VolumeVolumeInfoImageLinks $imageLinks) + { + $this->imageLinks = $imageLinks; + } + + public function getImageLinks() + { + return $this->imageLinks; + } + + public function setIndustryIdentifiers($industryIdentifiers) + { + $this->industryIdentifiers = $industryIdentifiers; + } + + public function getIndustryIdentifiers() + { + return $this->industryIdentifiers; + } + + public function setInfoLink($infoLink) + { + $this->infoLink = $infoLink; + } + + public function getInfoLink() + { + return $this->infoLink; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setMainCategory($mainCategory) + { + $this->mainCategory = $mainCategory; + } + + public function getMainCategory() + { + return $this->mainCategory; + } + + public function setPageCount($pageCount) + { + $this->pageCount = $pageCount; + } + + public function getPageCount() + { + return $this->pageCount; + } + + public function setPreviewLink($previewLink) + { + $this->previewLink = $previewLink; + } + + public function getPreviewLink() + { + return $this->previewLink; + } + + public function setPrintType($printType) + { + $this->printType = $printType; + } + + public function getPrintType() + { + return $this->printType; + } + + public function setPrintedPageCount($printedPageCount) + { + $this->printedPageCount = $printedPageCount; + } + + public function getPrintedPageCount() + { + return $this->printedPageCount; + } + + public function setPublishedDate($publishedDate) + { + $this->publishedDate = $publishedDate; + } + + public function getPublishedDate() + { + return $this->publishedDate; + } + + public function setPublisher($publisher) + { + $this->publisher = $publisher; + } + + public function getPublisher() + { + return $this->publisher; + } + + public function setRatingsCount($ratingsCount) + { + $this->ratingsCount = $ratingsCount; + } + + public function getRatingsCount() + { + return $this->ratingsCount; + } + + public function setReadingModes($readingModes) + { + $this->readingModes = $readingModes; + } + + public function getReadingModes() + { + return $this->readingModes; + } + + public function setSubtitle($subtitle) + { + $this->subtitle = $subtitle; + } + + public function getSubtitle() + { + return $this->subtitle; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Books_VolumeVolumeInfoDimensions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $thickness; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setThickness($thickness) + { + $this->thickness = $thickness; + } + + public function getThickness() + { + return $this->thickness; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Books_VolumeVolumeInfoImageLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $extraLarge; + public $large; + public $medium; + public $small; + public $smallThumbnail; + public $thumbnail; + + public function setExtraLarge($extraLarge) + { + $this->extraLarge = $extraLarge; + } + + public function getExtraLarge() + { + return $this->extraLarge; + } + + public function setLarge($large) + { + $this->large = $large; + } + + public function getLarge() + { + return $this->large; + } + + public function setMedium($medium) + { + $this->medium = $medium; + } + + public function getMedium() + { + return $this->medium; + } + + public function setSmall($small) + { + $this->small = $small; + } + + public function getSmall() + { + return $this->small; + } + + public function setSmallThumbnail($smallThumbnail) + { + $this->smallThumbnail = $smallThumbnail; + } + + public function getSmallThumbnail() + { + return $this->smallThumbnail; + } + + public function setThumbnail($thumbnail) + { + $this->thumbnail = $thumbnail; + } + + public function getThumbnail() + { + return $this->thumbnail; + } +} + +class Google_Service_Books_VolumeVolumeInfoIndustryIdentifiers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $identifier; + public $type; + + public function setIdentifier($identifier) + { + $this->identifier = $identifier; + } + + public function getIdentifier() + { + return $this->identifier; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Books_Volumeannotation extends Google_Collection +{ + protected $collection_key = 'pageIds'; + protected $internal_gapi_mappings = array( + ); + public $annotationDataId; + public $annotationDataLink; + public $annotationType; + protected $contentRangesType = 'Google_Service_Books_VolumeannotationContentRanges'; + protected $contentRangesDataType = ''; + public $data; + public $deleted; + public $id; + public $kind; + public $layerId; + public $pageIds; + public $selectedText; + public $selfLink; + public $updated; + public $volumeId; + + public function setAnnotationDataId($annotationDataId) + { + $this->annotationDataId = $annotationDataId; + } + + public function getAnnotationDataId() + { + return $this->annotationDataId; + } + + public function setAnnotationDataLink($annotationDataLink) + { + $this->annotationDataLink = $annotationDataLink; + } + + public function getAnnotationDataLink() + { + return $this->annotationDataLink; + } + + public function setAnnotationType($annotationType) + { + $this->annotationType = $annotationType; + } + + public function getAnnotationType() + { + return $this->annotationType; + } + + public function setContentRanges(Google_Service_Books_VolumeannotationContentRanges $contentRanges) + { + $this->contentRanges = $contentRanges; + } + + public function getContentRanges() + { + return $this->contentRanges; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLayerId($layerId) + { + $this->layerId = $layerId; + } + + public function getLayerId() + { + return $this->layerId; + } + + public function setPageIds($pageIds) + { + $this->pageIds = $pageIds; + } + + public function getPageIds() + { + return $this->pageIds; + } + + public function setSelectedText($selectedText) + { + $this->selectedText = $selectedText; + } + + public function getSelectedText() + { + return $this->selectedText; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVolumeId($volumeId) + { + $this->volumeId = $volumeId; + } + + public function getVolumeId() + { + return $this->volumeId; + } +} + +class Google_Service_Books_VolumeannotationContentRanges extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $cfiRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $cfiRangeDataType = ''; + public $contentVersion; + protected $gbImageRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $gbImageRangeDataType = ''; + protected $gbTextRangeType = 'Google_Service_Books_BooksAnnotationsRange'; + protected $gbTextRangeDataType = ''; + + public function setCfiRange(Google_Service_Books_BooksAnnotationsRange $cfiRange) + { + $this->cfiRange = $cfiRange; + } + + public function getCfiRange() + { + return $this->cfiRange; + } + + public function setContentVersion($contentVersion) + { + $this->contentVersion = $contentVersion; + } + + public function getContentVersion() + { + return $this->contentVersion; + } + + public function setGbImageRange(Google_Service_Books_BooksAnnotationsRange $gbImageRange) + { + $this->gbImageRange = $gbImageRange; + } + + public function getGbImageRange() + { + return $this->gbImageRange; + } + + public function setGbTextRange(Google_Service_Books_BooksAnnotationsRange $gbTextRange) + { + $this->gbTextRange = $gbTextRange; + } + + public function getGbTextRange() + { + return $this->gbTextRange; + } +} + +class Google_Service_Books_Volumeannotations extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_Volumeannotation'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + public $version; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Books_Volumes extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Books_Volume'; + protected $itemsDataType = 'array'; + public $kind; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Calendar.php b/vendor/google/apiclient/src/Google/Service/Calendar.php new file mode 100644 index 0000000..2116c2f --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Calendar.php @@ -0,0 +1,4086 @@ + + * Lets you manipulate events and other calendar data. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Calendar extends Google_Service +{ + /** Manage your calendars. */ + const CALENDAR = "https://www.googleapis.com/auth/calendar"; + /** View your calendars. */ + const CALENDAR_READONLY = "https://www.googleapis.com/auth/calendar.readonly"; + + public $acl; + public $calendarList; + public $calendars; + public $channels; + public $colors; + public $events; + public $freebusy; + public $settings; + + + /** + * Constructs the internal representation of the Calendar service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'calendar/v3/'; + $this->version = 'v3'; + $this->serviceName = 'calendar'; + + $this->acl = new Google_Service_Calendar_Acl_Resource( + $this, + $this->serviceName, + 'acl', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'calendars/{calendarId}/acl/{ruleId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ruleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'calendars/{calendarId}/acl/{ruleId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ruleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'calendars/{calendarId}/acl', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'calendars/{calendarId}/acl', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'patch' => array( + 'path' => 'calendars/{calendarId}/acl/{ruleId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ruleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'calendars/{calendarId}/acl/{ruleId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ruleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'watch' => array( + 'path' => 'calendars/{calendarId}/acl/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->calendarList = new Google_Service_Calendar_CalendarList_Resource( + $this, + $this->serviceName, + 'calendarList', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/me/calendarList/{calendarId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'users/me/calendarList/{calendarId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'users/me/calendarList', + 'httpMethod' => 'POST', + 'parameters' => array( + 'colorRgbFormat' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'users/me/calendarList', + 'httpMethod' => 'GET', + 'parameters' => array( + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'minAccessRole' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showHidden' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'patch' => array( + 'path' => 'users/me/calendarList/{calendarId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'colorRgbFormat' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'users/me/calendarList/{calendarId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'colorRgbFormat' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'watch' => array( + 'path' => 'users/me/calendarList/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'minAccessRole' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showHidden' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->calendars = new Google_Service_Calendar_Calendars_Resource( + $this, + $this->serviceName, + 'calendars', + array( + 'methods' => array( + 'clear' => array( + 'path' => 'calendars/{calendarId}/clear', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'calendars/{calendarId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'calendars/{calendarId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'calendars', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'patch' => array( + 'path' => 'calendars/{calendarId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'calendars/{calendarId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_Calendar_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'stop' => array( + 'path' => 'channels/stop', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->colors = new Google_Service_Calendar_Colors_Resource( + $this, + $this->serviceName, + 'colors', + array( + 'methods' => array( + 'get' => array( + 'path' => 'colors', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->events = new Google_Service_Calendar_Events_Resource( + $this, + $this->serviceName, + 'events', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'calendars/{calendarId}/events/{eventId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sendNotifications' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'get' => array( + 'path' => 'calendars/{calendarId}/events/{eventId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'timeZone' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'alwaysIncludeEmail' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'import' => array( + 'path' => 'calendars/{calendarId}/events/import', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'calendars/{calendarId}/events', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sendNotifications' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'instances' => array( + 'path' => 'calendars/{calendarId}/events/{eventId}/instances', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timeMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'alwaysIncludeEmail' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timeMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timeZone' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'originalStart' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'list' => array( + 'path' => 'calendars/{calendarId}/events', + 'httpMethod' => 'GET', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showHiddenInvitations' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'iCalUID' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'singleEvents' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timeMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'alwaysIncludeEmail' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timeMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timeZone' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'privateExtendedProperty' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'sharedExtendedProperty' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'move' => array( + 'path' => 'calendars/{calendarId}/events/{eventId}/move', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'destination' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sendNotifications' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'patch' => array( + 'path' => 'calendars/{calendarId}/events/{eventId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sendNotifications' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'alwaysIncludeEmail' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'quickAdd' => array( + 'path' => 'calendars/{calendarId}/events/quickAdd', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'text' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sendNotifications' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'calendars/{calendarId}/events/{eventId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sendNotifications' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'alwaysIncludeEmail' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'watch' => array( + 'path' => 'calendars/{calendarId}/events/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'calendarId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showHiddenInvitations' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'iCalUID' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'singleEvents' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timeMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'alwaysIncludeEmail' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timeMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timeZone' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'privateExtendedProperty' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'sharedExtendedProperty' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'maxAttendees' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->freebusy = new Google_Service_Calendar_Freebusy_Resource( + $this, + $this->serviceName, + 'freebusy', + array( + 'methods' => array( + 'query' => array( + 'path' => 'freeBusy', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->settings = new Google_Service_Calendar_Settings_Resource( + $this, + $this->serviceName, + 'settings', + array( + 'methods' => array( + 'get' => array( + 'path' => 'users/me/settings/{setting}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'setting' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'users/me/settings', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'users/me/settings/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'syncToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "acl" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $acl = $calendarService->acl; + * + */ +class Google_Service_Calendar_Acl_Resource extends Google_Service_Resource +{ + + /** + * Deletes an access control rule. (acl.delete) + * + * @param string $calendarId + * Calendar identifier. + * @param string $ruleId + * ACL rule identifier. + * @param array $optParams Optional parameters. + */ + public function delete($calendarId, $ruleId, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns an access control rule. (acl.get) + * + * @param string $calendarId + * Calendar identifier. + * @param string $ruleId + * ACL rule identifier. + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_AclRule + */ + public function get($calendarId, $ruleId, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Calendar_AclRule"); + } + /** + * Creates an access control rule. (acl.insert) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_AclRule $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_AclRule + */ + public function insert($calendarId, Google_Service_Calendar_AclRule $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Calendar_AclRule"); + } + /** + * Returns the rules in the access control list for the calendar. (acl.listAcl) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. All entries deleted since the previous list request will always be in the + * result set and it is not allowed to set showDeleted to False. + If the syncToken expires, the + * server will respond with a 410 GONE response code and the client should clear its storage and + * perform a full synchronization without any syncToken. + Learn more about incremental + * synchronization. + Optional. The default is to return all entries. + * @opt_param int maxResults + * Maximum number of entries returned on one result page. By default the value is 100 entries. The + * page size can never be larger than 250 entries. Optional. + * @opt_param bool showDeleted + * Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to + * "none". Deleted ACLs will always be included if syncToken is provided. Optional. The default is + * False. + * @return Google_Service_Calendar_Acl + */ + public function listAcl($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Calendar_Acl"); + } + /** + * Updates an access control rule. This method supports patch semantics. + * (acl.patch) + * + * @param string $calendarId + * Calendar identifier. + * @param string $ruleId + * ACL rule identifier. + * @param Google_AclRule $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_AclRule + */ + public function patch($calendarId, $ruleId, Google_Service_Calendar_AclRule $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Calendar_AclRule"); + } + /** + * Updates an access control rule. (acl.update) + * + * @param string $calendarId + * Calendar identifier. + * @param string $ruleId + * ACL rule identifier. + * @param Google_AclRule $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_AclRule + */ + public function update($calendarId, $ruleId, Google_Service_Calendar_AclRule $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Calendar_AclRule"); + } + /** + * Watch for changes to ACL resources. (acl.watch) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. All entries deleted since the previous list request will always be in the + * result set and it is not allowed to set showDeleted to False. + If the syncToken expires, the + * server will respond with a 410 GONE response code and the client should clear its storage and + * perform a full synchronization without any syncToken. + Learn more about incremental + * synchronization. + Optional. The default is to return all entries. + * @opt_param int maxResults + * Maximum number of entries returned on one result page. By default the value is 100 entries. The + * page size can never be larger than 250 entries. Optional. + * @opt_param bool showDeleted + * Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to + * "none". Deleted ACLs will always be included if syncToken is provided. Optional. The default is + * False. + * @return Google_Service_Calendar_Channel + */ + public function watch($calendarId, Google_Service_Calendar_Channel $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Calendar_Channel"); + } +} + +/** + * The "calendarList" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $calendarList = $calendarService->calendarList; + * + */ +class Google_Service_Calendar_CalendarList_Resource extends Google_Service_Resource +{ + + /** + * Deletes an entry on the user's calendar list. (calendarList.delete) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + */ + public function delete($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns an entry on the user's calendar list. (calendarList.get) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_CalendarListEntry + */ + public function get($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Calendar_CalendarListEntry"); + } + /** + * Adds an entry to the user's calendar list. (calendarList.insert) + * + * @param Google_CalendarListEntry $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool colorRgbFormat + * Whether to use the foregroundColor and backgroundColor fields to write the calendar colors + * (RGB). If this feature is used, the index-based colorId field will be set to the best matching + * option automatically. Optional. The default is False. + * @return Google_Service_Calendar_CalendarListEntry + */ + public function insert(Google_Service_Calendar_CalendarListEntry $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Calendar_CalendarListEntry"); + } + /** + * Returns entries on the user's calendar list. (calendarList.listCalendarList) + * + * @param array $optParams Optional parameters. + * + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. If only read-only fields such as calendar properties or ACLs have changed, + * the entry won't be returned. All entries deleted and hidden since the previous list request will + * always be in the result set and it is not allowed to set showDeleted neither showHidden to + * False. + To ensure client state consistency minAccessRole query parameter cannot be specified + * together with nextSyncToken. + If the syncToken expires, the server will respond with a 410 GONE + * response code and the client should clear its storage and perform a full synchronization without + * any syncToken. + Learn more about incremental synchronization. + Optional. The default is to return + * all entries. + * @opt_param bool showDeleted + * Whether to include deleted calendar list entries in the result. Optional. The default is False. + * @opt_param string minAccessRole + * The minimum access role for the user in the returned entires. Optional. The default is no + * restriction. + * @opt_param int maxResults + * Maximum number of entries returned on one result page. By default the value is 100 entries. The + * page size can never be larger than 250 entries. Optional. + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param bool showHidden + * Whether to show hidden entries. Optional. The default is False. + * @return Google_Service_Calendar_CalendarList + */ + public function listCalendarList($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Calendar_CalendarList"); + } + /** + * Updates an entry on the user's calendar list. This method supports patch + * semantics. (calendarList.patch) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_CalendarListEntry $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool colorRgbFormat + * Whether to use the foregroundColor and backgroundColor fields to write the calendar colors + * (RGB). If this feature is used, the index-based colorId field will be set to the best matching + * option automatically. Optional. The default is False. + * @return Google_Service_Calendar_CalendarListEntry + */ + public function patch($calendarId, Google_Service_Calendar_CalendarListEntry $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Calendar_CalendarListEntry"); + } + /** + * Updates an entry on the user's calendar list. (calendarList.update) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_CalendarListEntry $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool colorRgbFormat + * Whether to use the foregroundColor and backgroundColor fields to write the calendar colors + * (RGB). If this feature is used, the index-based colorId field will be set to the best matching + * option automatically. Optional. The default is False. + * @return Google_Service_Calendar_CalendarListEntry + */ + public function update($calendarId, Google_Service_Calendar_CalendarListEntry $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Calendar_CalendarListEntry"); + } + /** + * Watch for changes to CalendarList resources. (calendarList.watch) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. If only read-only fields such as calendar properties or ACLs have changed, + * the entry won't be returned. All entries deleted and hidden since the previous list request will + * always be in the result set and it is not allowed to set showDeleted neither showHidden to + * False. + To ensure client state consistency minAccessRole query parameter cannot be specified + * together with nextSyncToken. + If the syncToken expires, the server will respond with a 410 GONE + * response code and the client should clear its storage and perform a full synchronization without + * any syncToken. + Learn more about incremental synchronization. + Optional. The default is to return + * all entries. + * @opt_param bool showDeleted + * Whether to include deleted calendar list entries in the result. Optional. The default is False. + * @opt_param string minAccessRole + * The minimum access role for the user in the returned entires. Optional. The default is no + * restriction. + * @opt_param int maxResults + * Maximum number of entries returned on one result page. By default the value is 100 entries. The + * page size can never be larger than 250 entries. Optional. + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param bool showHidden + * Whether to show hidden entries. Optional. The default is False. + * @return Google_Service_Calendar_Channel + */ + public function watch(Google_Service_Calendar_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Calendar_Channel"); + } +} + +/** + * The "calendars" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $calendars = $calendarService->calendars; + * + */ +class Google_Service_Calendar_Calendars_Resource extends Google_Service_Resource +{ + + /** + * Clears a primary calendar. This operation deletes all data associated with + * the primary calendar of an account and cannot be undone. (calendars.clear) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + */ + public function clear($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('clear', array($params)); + } + /** + * Deletes a secondary calendar. (calendars.delete) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + */ + public function delete($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns metadata for a calendar. (calendars.get) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Calendar + */ + public function get($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Calendar_Calendar"); + } + /** + * Creates a secondary calendar. (calendars.insert) + * + * @param Google_Calendar $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Calendar + */ + public function insert(Google_Service_Calendar_Calendar $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Calendar_Calendar"); + } + /** + * Updates metadata for a calendar. This method supports patch semantics. + * (calendars.patch) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_Calendar $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Calendar + */ + public function patch($calendarId, Google_Service_Calendar_Calendar $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Calendar_Calendar"); + } + /** + * Updates metadata for a calendar. (calendars.update) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_Calendar $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Calendar + */ + public function update($calendarId, Google_Service_Calendar_Calendar $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Calendar_Calendar"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $channels = $calendarService->channels; + * + */ +class Google_Service_Calendar_Channels_Resource extends Google_Service_Resource +{ + + /** + * Stop watching resources through this channel (channels.stop) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + */ + public function stop(Google_Service_Calendar_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('stop', array($params)); + } +} + +/** + * The "colors" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $colors = $calendarService->colors; + * + */ +class Google_Service_Calendar_Colors_Resource extends Google_Service_Resource +{ + + /** + * Returns the color definitions for calendars and events. (colors.get) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Colors + */ + public function get($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Calendar_Colors"); + } +} + +/** + * The "events" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $events = $calendarService->events; + * + */ +class Google_Service_Calendar_Events_Resource extends Google_Service_Resource +{ + + /** + * Deletes an event. (events.delete) + * + * @param string $calendarId + * Calendar identifier. + * @param string $eventId + * Event identifier. + * @param array $optParams Optional parameters. + * + * @opt_param bool sendNotifications + * Whether to send notifications about the deletion of the event. Optional. The default is False. + */ + public function delete($calendarId, $eventId, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'eventId' => $eventId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns an event. (events.get) + * + * @param string $calendarId + * Calendar identifier. + * @param string $eventId + * Event identifier. + * @param array $optParams Optional parameters. + * + * @opt_param string timeZone + * Time zone used in the response. Optional. The default is the time zone of the calendar. + * @opt_param bool alwaysIncludeEmail + * Whether to always include a value in the email field for the organizer, creator and attendees, + * even if no real email is available (i.e. a generated, non-working value will be provided). The + * use of this option is discouraged and should only be used by clients which cannot handle the + * absence of an email address value in the mentioned places. Optional. The default is False. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Event + */ + public function get($calendarId, $eventId, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'eventId' => $eventId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Calendar_Event"); + } + /** + * Imports an event. This operation is used to add a private copy of an existing + * event to a calendar. (events.import) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_Event $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Event + */ + public function import($calendarId, Google_Service_Calendar_Event $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('import', array($params), "Google_Service_Calendar_Event"); + } + /** + * Creates an event. (events.insert) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_Event $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool sendNotifications + * Whether to send notifications about the creation of the new event. Optional. The default is + * False. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Event + */ + public function insert($calendarId, Google_Service_Calendar_Event $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Calendar_Event"); + } + /** + * Returns instances of the specified recurring event. (events.instances) + * + * @param string $calendarId + * Calendar identifier. + * @param string $eventId + * Recurring event identifier. + * @param array $optParams Optional parameters. + * + * @opt_param bool showDeleted + * Whether to include deleted events (with status equals "cancelled") in the result. Cancelled + * instances of recurring events will still be included if singleEvents is False. Optional. The + * default is False. + * @opt_param string timeMax + * Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to + * filter by start time. + * @opt_param bool alwaysIncludeEmail + * Whether to always include a value in the email field for the organizer, creator and attendees, + * even if no real email is available (i.e. a generated, non-working value will be provided). The + * use of this option is discouraged and should only be used by clients which cannot handle the + * absence of an email address value in the mentioned places. Optional. The default is False. + * @opt_param int maxResults + * Maximum number of events returned on one result page. By default the value is 250 events. The + * page size can never be larger than 2500 events. Optional. + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param string timeMin + * Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to + * filter by end time. + * @opt_param string timeZone + * Time zone used in the response. Optional. The default is the time zone of the calendar. + * @opt_param string originalStart + * The original start time of the instance in the result. Optional. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Events + */ + public function instances($calendarId, $eventId, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'eventId' => $eventId); + $params = array_merge($params, $optParams); + return $this->call('instances', array($params), "Google_Service_Calendar_Events"); + } + /** + * Returns events on the specified calendar. (events.listEvents) + * + * @param string $calendarId + * Calendar identifier. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * The order of the events returned in the result. Optional. The default is an unspecified, stable + * order. + * @opt_param bool showHiddenInvitations + * Whether to include hidden invitations in the result. Optional. The default is False. + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. All events deleted since the previous list request will always be in the + * result set and it is not allowed to set showDeleted to False. + There are several query parameters + * that cannot be specified together with nextSyncToken to ensure consistency of the client state. + * These are: + - iCalUID + - orderBy + - privateExtendedProperty + - q + - sharedExtendedProperty + - + * timeMin + - timeMax + - updatedMin If the syncToken expires, the server will respond with a 410 + * GONE response code and the client should clear its storage and perform a full synchronization + * without any syncToken. + Learn more about incremental synchronization. + Optional. The default is to + * return all entries. + * @opt_param bool showDeleted + * Whether to include deleted events (with status equals "cancelled") in the result. Cancelled + * instances of recurring events (but not the underlying recurring event) will still be included if + * showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only + * single instances of deleted events (but not the underlying recurring events) are returned. + * Optional. The default is False. + * @opt_param string iCalUID + * Specifies event ID in the iCalendar format to be included in the response. Optional. + * @opt_param string updatedMin + * Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. When + * specified, entries deleted since this time will always be included regardless of showDeleted. + * Optional. The default is not to filter by last modification time. + * @opt_param bool singleEvents + * Whether to expand recurring events into instances and only return single one-off events and + * instances of recurring events, but not the underlying recurring events themselves. Optional. The + * default is False. + * @opt_param string timeMax + * Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to + * filter by start time. + * @opt_param bool alwaysIncludeEmail + * Whether to always include a value in the email field for the organizer, creator and attendees, + * even if no real email is available (i.e. a generated, non-working value will be provided). The + * use of this option is discouraged and should only be used by clients which cannot handle the + * absence of an email address value in the mentioned places. Optional. The default is False. + * @opt_param int maxResults + * Maximum number of events returned on one result page. By default the value is 250 events. The + * page size can never be larger than 2500 events. Optional. + * @opt_param string q + * Free text search terms to find events that match these terms in any field, except for extended + * properties. Optional. + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param string timeMin + * Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to + * filter by end time. + * @opt_param string timeZone + * Time zone used in the response. Optional. The default is the time zone of the calendar. + * @opt_param string privateExtendedProperty + * Extended properties constraint specified as propertyName=value. Matches only private properties. + * This parameter might be repeated multiple times to return events that match all given + * constraints. + * @opt_param string sharedExtendedProperty + * Extended properties constraint specified as propertyName=value. Matches only shared properties. + * This parameter might be repeated multiple times to return events that match all given + * constraints. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Events + */ + public function listEvents($calendarId, $optParams = array()) + { + $params = array('calendarId' => $calendarId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Calendar_Events"); + } + /** + * Moves an event to another calendar, i.e. changes an event's organizer. + * (events.move) + * + * @param string $calendarId + * Calendar identifier of the source calendar where the event currently is on. + * @param string $eventId + * Event identifier. + * @param string $destination + * Calendar identifier of the target calendar where the event is to be moved to. + * @param array $optParams Optional parameters. + * + * @opt_param bool sendNotifications + * Whether to send notifications about the change of the event's organizer. Optional. The default + * is False. + * @return Google_Service_Calendar_Event + */ + public function move($calendarId, $eventId, $destination, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'eventId' => $eventId, 'destination' => $destination); + $params = array_merge($params, $optParams); + return $this->call('move', array($params), "Google_Service_Calendar_Event"); + } + /** + * Updates an event. This method supports patch semantics. (events.patch) + * + * @param string $calendarId + * Calendar identifier. + * @param string $eventId + * Event identifier. + * @param Google_Event $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool sendNotifications + * Whether to send notifications about the event update (e.g. attendee's responses, title changes, + * etc.). Optional. The default is False. + * @opt_param bool alwaysIncludeEmail + * Whether to always include a value in the email field for the organizer, creator and attendees, + * even if no real email is available (i.e. a generated, non-working value will be provided). The + * use of this option is discouraged and should only be used by clients which cannot handle the + * absence of an email address value in the mentioned places. Optional. The default is False. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Event + */ + public function patch($calendarId, $eventId, Google_Service_Calendar_Event $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'eventId' => $eventId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Calendar_Event"); + } + /** + * Creates an event based on a simple text string. (events.quickAdd) + * + * @param string $calendarId + * Calendar identifier. + * @param string $text + * The text describing the event to be created. + * @param array $optParams Optional parameters. + * + * @opt_param bool sendNotifications + * Whether to send notifications about the creation of the event. Optional. The default is False. + * @return Google_Service_Calendar_Event + */ + public function quickAdd($calendarId, $text, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'text' => $text); + $params = array_merge($params, $optParams); + return $this->call('quickAdd', array($params), "Google_Service_Calendar_Event"); + } + /** + * Updates an event. (events.update) + * + * @param string $calendarId + * Calendar identifier. + * @param string $eventId + * Event identifier. + * @param Google_Event $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool sendNotifications + * Whether to send notifications about the event update (e.g. attendee's responses, title changes, + * etc.). Optional. The default is False. + * @opt_param bool alwaysIncludeEmail + * Whether to always include a value in the email field for the organizer, creator and attendees, + * even if no real email is available (i.e. a generated, non-working value will be provided). The + * use of this option is discouraged and should only be used by clients which cannot handle the + * absence of an email address value in the mentioned places. Optional. The default is False. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Event + */ + public function update($calendarId, $eventId, Google_Service_Calendar_Event $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'eventId' => $eventId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Calendar_Event"); + } + /** + * Watch for changes to Events resources. (events.watch) + * + * @param string $calendarId + * Calendar identifier. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * The order of the events returned in the result. Optional. The default is an unspecified, stable + * order. + * @opt_param bool showHiddenInvitations + * Whether to include hidden invitations in the result. Optional. The default is False. + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. All events deleted since the previous list request will always be in the + * result set and it is not allowed to set showDeleted to False. + There are several query parameters + * that cannot be specified together with nextSyncToken to ensure consistency of the client state. + * These are: + - iCalUID + - orderBy + - privateExtendedProperty + - q + - sharedExtendedProperty + - + * timeMin + - timeMax + - updatedMin If the syncToken expires, the server will respond with a 410 + * GONE response code and the client should clear its storage and perform a full synchronization + * without any syncToken. + Learn more about incremental synchronization. + Optional. The default is to + * return all entries. + * @opt_param bool showDeleted + * Whether to include deleted events (with status equals "cancelled") in the result. Cancelled + * instances of recurring events (but not the underlying recurring event) will still be included if + * showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only + * single instances of deleted events (but not the underlying recurring events) are returned. + * Optional. The default is False. + * @opt_param string iCalUID + * Specifies event ID in the iCalendar format to be included in the response. Optional. + * @opt_param string updatedMin + * Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. When + * specified, entries deleted since this time will always be included regardless of showDeleted. + * Optional. The default is not to filter by last modification time. + * @opt_param bool singleEvents + * Whether to expand recurring events into instances and only return single one-off events and + * instances of recurring events, but not the underlying recurring events themselves. Optional. The + * default is False. + * @opt_param string timeMax + * Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to + * filter by start time. + * @opt_param bool alwaysIncludeEmail + * Whether to always include a value in the email field for the organizer, creator and attendees, + * even if no real email is available (i.e. a generated, non-working value will be provided). The + * use of this option is discouraged and should only be used by clients which cannot handle the + * absence of an email address value in the mentioned places. Optional. The default is False. + * @opt_param int maxResults + * Maximum number of events returned on one result page. By default the value is 250 events. The + * page size can never be larger than 2500 events. Optional. + * @opt_param string q + * Free text search terms to find events that match these terms in any field, except for extended + * properties. Optional. + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param string timeMin + * Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to + * filter by end time. + * @opt_param string timeZone + * Time zone used in the response. Optional. The default is the time zone of the calendar. + * @opt_param string privateExtendedProperty + * Extended properties constraint specified as propertyName=value. Matches only private properties. + * This parameter might be repeated multiple times to return events that match all given + * constraints. + * @opt_param string sharedExtendedProperty + * Extended properties constraint specified as propertyName=value. Matches only shared properties. + * This parameter might be repeated multiple times to return events that match all given + * constraints. + * @opt_param int maxAttendees + * The maximum number of attendees to include in the response. If there are more than the specified + * number of attendees, only the participant is returned. Optional. + * @return Google_Service_Calendar_Channel + */ + public function watch($calendarId, Google_Service_Calendar_Channel $postBody, $optParams = array()) + { + $params = array('calendarId' => $calendarId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Calendar_Channel"); + } +} + +/** + * The "freebusy" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $freebusy = $calendarService->freebusy; + * + */ +class Google_Service_Calendar_Freebusy_Resource extends Google_Service_Resource +{ + + /** + * Returns free/busy information for a set of calendars. (freebusy.query) + * + * @param Google_FreeBusyRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_FreeBusyResponse + */ + public function query(Google_Service_Calendar_FreeBusyRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('query', array($params), "Google_Service_Calendar_FreeBusyResponse"); + } +} + +/** + * The "settings" collection of methods. + * Typical usage is: + * + * $calendarService = new Google_Service_Calendar(...); + * $settings = $calendarService->settings; + * + */ +class Google_Service_Calendar_Settings_Resource extends Google_Service_Resource +{ + + /** + * Returns a single user setting. (settings.get) + * + * @param string $setting + * The id of the user setting. + * @param array $optParams Optional parameters. + * @return Google_Service_Calendar_Setting + */ + public function get($setting, $optParams = array()) + { + $params = array('setting' => $setting); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Calendar_Setting"); + } + /** + * Returns all user settings for the authenticated user. (settings.listSettings) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param int maxResults + * Maximum number of entries returned on one result page. By default the value is 100 entries. The + * page size can never be larger than 250 entries. Optional. + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. + If the syncToken expires, the server will respond with a 410 GONE response + * code and the client should clear its storage and perform a full synchronization without any + * syncToken. + Learn more about incremental synchronization. + Optional. The default is to return all + * entries. + * @return Google_Service_Calendar_Settings + */ + public function listSettings($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Calendar_Settings"); + } + /** + * Watch for changes to Settings resources. (settings.watch) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token specifying which result page to return. Optional. + * @opt_param int maxResults + * Maximum number of entries returned on one result page. By default the value is 100 entries. The + * page size can never be larger than 250 entries. Optional. + * @opt_param string syncToken + * Token obtained from the nextSyncToken field returned on the last page of results from the + * previous list request. It makes the result of this list request contain only entries that have + * changed since then. + If the syncToken expires, the server will respond with a 410 GONE response + * code and the client should clear its storage and perform a full synchronization without any + * syncToken. + Learn more about incremental synchronization. + Optional. The default is to return all + * entries. + * @return Google_Service_Calendar_Channel + */ + public function watch(Google_Service_Calendar_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Calendar_Channel"); + } +} + + + + +class Google_Service_Calendar_Acl extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Calendar_AclRule'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $nextSyncToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setNextSyncToken($nextSyncToken) + { + $this->nextSyncToken = $nextSyncToken; + } + + public function getNextSyncToken() + { + return $this->nextSyncToken; + } +} + +class Google_Service_Calendar_AclRule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + public $role; + protected $scopeType = 'Google_Service_Calendar_AclRuleScope'; + protected $scopeDataType = ''; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setScope(Google_Service_Calendar_AclRuleScope $scope) + { + $this->scope = $scope; + } + + public function getScope() + { + return $this->scope; + } +} + +class Google_Service_Calendar_AclRuleScope extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Calendar_Calendar extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $etag; + public $id; + public $kind; + public $location; + public $summary; + public $timeZone; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setSummary($summary) + { + $this->summary = $summary; + } + + public function getSummary() + { + return $this->summary; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } +} + +class Google_Service_Calendar_CalendarList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Calendar_CalendarListEntry'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $nextSyncToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setNextSyncToken($nextSyncToken) + { + $this->nextSyncToken = $nextSyncToken; + } + + public function getNextSyncToken() + { + return $this->nextSyncToken; + } +} + +class Google_Service_Calendar_CalendarListEntry extends Google_Collection +{ + protected $collection_key = 'defaultReminders'; + protected $internal_gapi_mappings = array( + ); + public $accessRole; + public $backgroundColor; + public $colorId; + protected $defaultRemindersType = 'Google_Service_Calendar_EventReminder'; + protected $defaultRemindersDataType = 'array'; + public $deleted; + public $description; + public $etag; + public $foregroundColor; + public $hidden; + public $id; + public $kind; + public $location; + protected $notificationSettingsType = 'Google_Service_Calendar_CalendarListEntryNotificationSettings'; + protected $notificationSettingsDataType = ''; + public $primary; + public $selected; + public $summary; + public $summaryOverride; + public $timeZone; + + public function setAccessRole($accessRole) + { + $this->accessRole = $accessRole; + } + + public function getAccessRole() + { + return $this->accessRole; + } + + public function setBackgroundColor($backgroundColor) + { + $this->backgroundColor = $backgroundColor; + } + + public function getBackgroundColor() + { + return $this->backgroundColor; + } + + public function setColorId($colorId) + { + $this->colorId = $colorId; + } + + public function getColorId() + { + return $this->colorId; + } + + public function setDefaultReminders($defaultReminders) + { + $this->defaultReminders = $defaultReminders; + } + + public function getDefaultReminders() + { + return $this->defaultReminders; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setForegroundColor($foregroundColor) + { + $this->foregroundColor = $foregroundColor; + } + + public function getForegroundColor() + { + return $this->foregroundColor; + } + + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + public function getHidden() + { + return $this->hidden; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setNotificationSettings(Google_Service_Calendar_CalendarListEntryNotificationSettings $notificationSettings) + { + $this->notificationSettings = $notificationSettings; + } + + public function getNotificationSettings() + { + return $this->notificationSettings; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setSelected($selected) + { + $this->selected = $selected; + } + + public function getSelected() + { + return $this->selected; + } + + public function setSummary($summary) + { + $this->summary = $summary; + } + + public function getSummary() + { + return $this->summary; + } + + public function setSummaryOverride($summaryOverride) + { + $this->summaryOverride = $summaryOverride; + } + + public function getSummaryOverride() + { + return $this->summaryOverride; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } +} + +class Google_Service_Calendar_CalendarListEntryNotificationSettings extends Google_Collection +{ + protected $collection_key = 'notifications'; + protected $internal_gapi_mappings = array( + ); + protected $notificationsType = 'Google_Service_Calendar_CalendarNotification'; + protected $notificationsDataType = 'array'; + + public function setNotifications($notifications) + { + $this->notifications = $notifications; + } + + public function getNotifications() + { + return $this->notifications; + } +} + +class Google_Service_Calendar_CalendarNotification extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $method; + public $type; + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Calendar_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $expiration; + public $id; + public $kind; + public $params; + public $payload; + public $resourceId; + public $resourceUri; + public $token; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setExpiration($expiration) + { + $this->expiration = $expiration; + } + + public function getExpiration() + { + return $this->expiration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParams($params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setResourceUri($resourceUri) + { + $this->resourceUri = $resourceUri; + } + + public function getResourceUri() + { + return $this->resourceUri; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Calendar_ChannelParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_ColorDefinition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $background; + public $foreground; + + public function setBackground($background) + { + $this->background = $background; + } + + public function getBackground() + { + return $this->background; + } + + public function setForeground($foreground) + { + $this->foreground = $foreground; + } + + public function getForeground() + { + return $this->foreground; + } +} + +class Google_Service_Calendar_Colors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $calendarType = 'Google_Service_Calendar_ColorDefinition'; + protected $calendarDataType = 'map'; + protected $eventType = 'Google_Service_Calendar_ColorDefinition'; + protected $eventDataType = 'map'; + public $kind; + public $updated; + + public function setCalendar($calendar) + { + $this->calendar = $calendar; + } + + public function getCalendar() + { + return $this->calendar; + } + + public function setEvent($event) + { + $this->event = $event; + } + + public function getEvent() + { + return $this->event; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Calendar_ColorsCalendar extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_ColorsEvent extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_Error extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $domain; + public $reason; + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_Calendar_Event extends Google_Collection +{ + protected $collection_key = 'recurrence'; + protected $internal_gapi_mappings = array( + ); + public $anyoneCanAddSelf; + protected $attendeesType = 'Google_Service_Calendar_EventAttendee'; + protected $attendeesDataType = 'array'; + public $attendeesOmitted; + public $colorId; + public $created; + protected $creatorType = 'Google_Service_Calendar_EventCreator'; + protected $creatorDataType = ''; + public $description; + protected $endType = 'Google_Service_Calendar_EventDateTime'; + protected $endDataType = ''; + public $endTimeUnspecified; + public $etag; + protected $extendedPropertiesType = 'Google_Service_Calendar_EventExtendedProperties'; + protected $extendedPropertiesDataType = ''; + protected $gadgetType = 'Google_Service_Calendar_EventGadget'; + protected $gadgetDataType = ''; + public $guestsCanInviteOthers; + public $guestsCanModify; + public $guestsCanSeeOtherGuests; + public $hangoutLink; + public $htmlLink; + public $iCalUID; + public $id; + public $kind; + public $location; + public $locked; + protected $organizerType = 'Google_Service_Calendar_EventOrganizer'; + protected $organizerDataType = ''; + protected $originalStartTimeType = 'Google_Service_Calendar_EventDateTime'; + protected $originalStartTimeDataType = ''; + public $privateCopy; + public $recurrence; + public $recurringEventId; + protected $remindersType = 'Google_Service_Calendar_EventReminders'; + protected $remindersDataType = ''; + public $sequence; + protected $sourceType = 'Google_Service_Calendar_EventSource'; + protected $sourceDataType = ''; + protected $startType = 'Google_Service_Calendar_EventDateTime'; + protected $startDataType = ''; + public $status; + public $summary; + public $transparency; + public $updated; + public $visibility; + + public function setAnyoneCanAddSelf($anyoneCanAddSelf) + { + $this->anyoneCanAddSelf = $anyoneCanAddSelf; + } + + public function getAnyoneCanAddSelf() + { + return $this->anyoneCanAddSelf; + } + + public function setAttendees($attendees) + { + $this->attendees = $attendees; + } + + public function getAttendees() + { + return $this->attendees; + } + + public function setAttendeesOmitted($attendeesOmitted) + { + $this->attendeesOmitted = $attendeesOmitted; + } + + public function getAttendeesOmitted() + { + return $this->attendeesOmitted; + } + + public function setColorId($colorId) + { + $this->colorId = $colorId; + } + + public function getColorId() + { + return $this->colorId; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setCreator(Google_Service_Calendar_EventCreator $creator) + { + $this->creator = $creator; + } + + public function getCreator() + { + return $this->creator; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEnd(Google_Service_Calendar_EventDateTime $end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setEndTimeUnspecified($endTimeUnspecified) + { + $this->endTimeUnspecified = $endTimeUnspecified; + } + + public function getEndTimeUnspecified() + { + return $this->endTimeUnspecified; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExtendedProperties(Google_Service_Calendar_EventExtendedProperties $extendedProperties) + { + $this->extendedProperties = $extendedProperties; + } + + public function getExtendedProperties() + { + return $this->extendedProperties; + } + + public function setGadget(Google_Service_Calendar_EventGadget $gadget) + { + $this->gadget = $gadget; + } + + public function getGadget() + { + return $this->gadget; + } + + public function setGuestsCanInviteOthers($guestsCanInviteOthers) + { + $this->guestsCanInviteOthers = $guestsCanInviteOthers; + } + + public function getGuestsCanInviteOthers() + { + return $this->guestsCanInviteOthers; + } + + public function setGuestsCanModify($guestsCanModify) + { + $this->guestsCanModify = $guestsCanModify; + } + + public function getGuestsCanModify() + { + return $this->guestsCanModify; + } + + public function setGuestsCanSeeOtherGuests($guestsCanSeeOtherGuests) + { + $this->guestsCanSeeOtherGuests = $guestsCanSeeOtherGuests; + } + + public function getGuestsCanSeeOtherGuests() + { + return $this->guestsCanSeeOtherGuests; + } + + public function setHangoutLink($hangoutLink) + { + $this->hangoutLink = $hangoutLink; + } + + public function getHangoutLink() + { + return $this->hangoutLink; + } + + public function setHtmlLink($htmlLink) + { + $this->htmlLink = $htmlLink; + } + + public function getHtmlLink() + { + return $this->htmlLink; + } + + public function setICalUID($iCalUID) + { + $this->iCalUID = $iCalUID; + } + + public function getICalUID() + { + return $this->iCalUID; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setLocked($locked) + { + $this->locked = $locked; + } + + public function getLocked() + { + return $this->locked; + } + + public function setOrganizer(Google_Service_Calendar_EventOrganizer $organizer) + { + $this->organizer = $organizer; + } + + public function getOrganizer() + { + return $this->organizer; + } + + public function setOriginalStartTime(Google_Service_Calendar_EventDateTime $originalStartTime) + { + $this->originalStartTime = $originalStartTime; + } + + public function getOriginalStartTime() + { + return $this->originalStartTime; + } + + public function setPrivateCopy($privateCopy) + { + $this->privateCopy = $privateCopy; + } + + public function getPrivateCopy() + { + return $this->privateCopy; + } + + public function setRecurrence($recurrence) + { + $this->recurrence = $recurrence; + } + + public function getRecurrence() + { + return $this->recurrence; + } + + public function setRecurringEventId($recurringEventId) + { + $this->recurringEventId = $recurringEventId; + } + + public function getRecurringEventId() + { + return $this->recurringEventId; + } + + public function setReminders(Google_Service_Calendar_EventReminders $reminders) + { + $this->reminders = $reminders; + } + + public function getReminders() + { + return $this->reminders; + } + + public function setSequence($sequence) + { + $this->sequence = $sequence; + } + + public function getSequence() + { + return $this->sequence; + } + + public function setSource(Google_Service_Calendar_EventSource $source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setStart(Google_Service_Calendar_EventDateTime $start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setSummary($summary) + { + $this->summary = $summary; + } + + public function getSummary() + { + return $this->summary; + } + + public function setTransparency($transparency) + { + $this->transparency = $transparency; + } + + public function getTransparency() + { + return $this->transparency; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_Calendar_EventAttendee extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $additionalGuests; + public $comment; + public $displayName; + public $email; + public $id; + public $optional; + public $organizer; + public $resource; + public $responseStatus; + public $self; + + public function setAdditionalGuests($additionalGuests) + { + $this->additionalGuests = $additionalGuests; + } + + public function getAdditionalGuests() + { + return $this->additionalGuests; + } + + public function setComment($comment) + { + $this->comment = $comment; + } + + public function getComment() + { + return $this->comment; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setOptional($optional) + { + $this->optional = $optional; + } + + public function getOptional() + { + return $this->optional; + } + + public function setOrganizer($organizer) + { + $this->organizer = $organizer; + } + + public function getOrganizer() + { + return $this->organizer; + } + + public function setResource($resource) + { + $this->resource = $resource; + } + + public function getResource() + { + return $this->resource; + } + + public function setResponseStatus($responseStatus) + { + $this->responseStatus = $responseStatus; + } + + public function getResponseStatus() + { + return $this->responseStatus; + } + + public function setSelf($self) + { + $this->self = $self; + } + + public function getSelf() + { + return $this->self; + } +} + +class Google_Service_Calendar_EventCreator extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $email; + public $id; + public $self; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setSelf($self) + { + $this->self = $self; + } + + public function getSelf() + { + return $this->self; + } +} + +class Google_Service_Calendar_EventDateTime extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $date; + public $dateTime; + public $timeZone; + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setDateTime($dateTime) + { + $this->dateTime = $dateTime; + } + + public function getDateTime() + { + return $this->dateTime; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } +} + +class Google_Service_Calendar_EventExtendedProperties extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $private; + public $shared; + + public function setPrivate($private) + { + $this->private = $private; + } + + public function getPrivate() + { + return $this->private; + } + + public function setShared($shared) + { + $this->shared = $shared; + } + + public function getShared() + { + return $this->shared; + } +} + +class Google_Service_Calendar_EventExtendedPropertiesPrivate extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_EventExtendedPropertiesShared extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_EventGadget extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $display; + public $height; + public $iconLink; + public $link; + public $preferences; + public $title; + public $type; + public $width; + + public function setDisplay($display) + { + $this->display = $display; + } + + public function getDisplay() + { + return $this->display; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setIconLink($iconLink) + { + $this->iconLink = $iconLink; + } + + public function getIconLink() + { + return $this->iconLink; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setPreferences($preferences) + { + $this->preferences = $preferences; + } + + public function getPreferences() + { + return $this->preferences; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Calendar_EventGadgetPreferences extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_EventOrganizer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $email; + public $id; + public $self; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setSelf($self) + { + $this->self = $self; + } + + public function getSelf() + { + return $this->self; + } +} + +class Google_Service_Calendar_EventReminder extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $method; + public $minutes; + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } + + public function setMinutes($minutes) + { + $this->minutes = $minutes; + } + + public function getMinutes() + { + return $this->minutes; + } +} + +class Google_Service_Calendar_EventReminders extends Google_Collection +{ + protected $collection_key = 'overrides'; + protected $internal_gapi_mappings = array( + ); + protected $overridesType = 'Google_Service_Calendar_EventReminder'; + protected $overridesDataType = 'array'; + public $useDefault; + + public function setOverrides($overrides) + { + $this->overrides = $overrides; + } + + public function getOverrides() + { + return $this->overrides; + } + + public function setUseDefault($useDefault) + { + $this->useDefault = $useDefault; + } + + public function getUseDefault() + { + return $this->useDefault; + } +} + +class Google_Service_Calendar_EventSource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $title; + public $url; + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Calendar_Events extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $accessRole; + protected $defaultRemindersType = 'Google_Service_Calendar_EventReminder'; + protected $defaultRemindersDataType = 'array'; + public $description; + public $etag; + protected $itemsType = 'Google_Service_Calendar_Event'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $nextSyncToken; + public $summary; + public $timeZone; + public $updated; + + public function setAccessRole($accessRole) + { + $this->accessRole = $accessRole; + } + + public function getAccessRole() + { + return $this->accessRole; + } + + public function setDefaultReminders($defaultReminders) + { + $this->defaultReminders = $defaultReminders; + } + + public function getDefaultReminders() + { + return $this->defaultReminders; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setNextSyncToken($nextSyncToken) + { + $this->nextSyncToken = $nextSyncToken; + } + + public function getNextSyncToken() + { + return $this->nextSyncToken; + } + + public function setSummary($summary) + { + $this->summary = $summary; + } + + public function getSummary() + { + return $this->summary; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Calendar_FreeBusyCalendar extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $busyType = 'Google_Service_Calendar_TimePeriod'; + protected $busyDataType = 'array'; + protected $errorsType = 'Google_Service_Calendar_Error'; + protected $errorsDataType = 'array'; + + public function setBusy($busy) + { + $this->busy = $busy; + } + + public function getBusy() + { + return $this->busy; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_Calendar_FreeBusyGroup extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + public $calendars; + protected $errorsType = 'Google_Service_Calendar_Error'; + protected $errorsDataType = 'array'; + + public function setCalendars($calendars) + { + $this->calendars = $calendars; + } + + public function getCalendars() + { + return $this->calendars; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_Calendar_FreeBusyRequest extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $calendarExpansionMax; + public $groupExpansionMax; + protected $itemsType = 'Google_Service_Calendar_FreeBusyRequestItem'; + protected $itemsDataType = 'array'; + public $timeMax; + public $timeMin; + public $timeZone; + + public function setCalendarExpansionMax($calendarExpansionMax) + { + $this->calendarExpansionMax = $calendarExpansionMax; + } + + public function getCalendarExpansionMax() + { + return $this->calendarExpansionMax; + } + + public function setGroupExpansionMax($groupExpansionMax) + { + $this->groupExpansionMax = $groupExpansionMax; + } + + public function getGroupExpansionMax() + { + return $this->groupExpansionMax; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setTimeMax($timeMax) + { + $this->timeMax = $timeMax; + } + + public function getTimeMax() + { + return $this->timeMax; + } + + public function setTimeMin($timeMin) + { + $this->timeMin = $timeMin; + } + + public function getTimeMin() + { + return $this->timeMin; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } +} + +class Google_Service_Calendar_FreeBusyRequestItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Calendar_FreeBusyResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $calendarsType = 'Google_Service_Calendar_FreeBusyCalendar'; + protected $calendarsDataType = 'map'; + protected $groupsType = 'Google_Service_Calendar_FreeBusyGroup'; + protected $groupsDataType = 'map'; + public $kind; + public $timeMax; + public $timeMin; + + public function setCalendars($calendars) + { + $this->calendars = $calendars; + } + + public function getCalendars() + { + return $this->calendars; + } + + public function setGroups($groups) + { + $this->groups = $groups; + } + + public function getGroups() + { + return $this->groups; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTimeMax($timeMax) + { + $this->timeMax = $timeMax; + } + + public function getTimeMax() + { + return $this->timeMax; + } + + public function setTimeMin($timeMin) + { + $this->timeMin = $timeMin; + } + + public function getTimeMin() + { + return $this->timeMin; + } +} + +class Google_Service_Calendar_FreeBusyResponseCalendars extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_FreeBusyResponseGroups extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Calendar_Setting extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + public $value; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Calendar_Settings extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Calendar_Setting'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $nextSyncToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setNextSyncToken($nextSyncToken) + { + $this->nextSyncToken = $nextSyncToken; + } + + public function getNextSyncToken() + { + return $this->nextSyncToken; + } +} + +class Google_Service_Calendar_TimePeriod extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $end; + public $start; + + public function setEnd($end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setStart($start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/CivicInfo.php b/vendor/google/apiclient/src/Google/Service/CivicInfo.php new file mode 100644 index 0000000..5ceee82 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/CivicInfo.php @@ -0,0 +1,1752 @@ + + * An API for accessing civic information. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_CivicInfo extends Google_Service +{ + + + public $divisions; + public $elections; + public $representatives; + + + /** + * Constructs the internal representation of the CivicInfo service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'civicinfo/v2/'; + $this->version = 'v2'; + $this->serviceName = 'civicinfo'; + + $this->divisions = new Google_Service_CivicInfo_Divisions_Resource( + $this, + $this->serviceName, + 'divisions', + array( + 'methods' => array( + 'search' => array( + 'path' => 'divisions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->elections = new Google_Service_CivicInfo_Elections_Resource( + $this, + $this->serviceName, + 'elections', + array( + 'methods' => array( + 'electionQuery' => array( + 'path' => 'elections', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'voterInfoQuery' => array( + 'path' => 'voterinfo', + 'httpMethod' => 'GET', + 'parameters' => array( + 'address' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'electionId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'officialOnly' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->representatives = new Google_Service_CivicInfo_Representatives_Resource( + $this, + $this->serviceName, + 'representatives', + array( + 'methods' => array( + 'representativeInfoByAddress' => array( + 'path' => 'representatives', + 'httpMethod' => 'GET', + 'parameters' => array( + 'includeOffices' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'levels' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'roles' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'address' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'representativeInfoByDivision' => array( + 'path' => 'representatives/{ocdId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'ocdId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'levels' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'recursive' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'roles' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "divisions" collection of methods. + * Typical usage is: + * + * $civicinfoService = new Google_Service_CivicInfo(...); + * $divisions = $civicinfoService->divisions; + * + */ +class Google_Service_CivicInfo_Divisions_Resource extends Google_Service_Resource +{ + + /** + * Searches for political divisions by their natural name or OCD ID. + * (divisions.search) + * + * @param array $optParams Optional parameters. + * + * @opt_param string query + * The search query. Queries can cover any parts of a OCD ID or a human readable division name. All + * words given in the query are treated as required patterns. In addition to that, most query + * operators of the Apache Lucene library are supported. See + * http://lucene.apache.org/core/2_9_4/queryparsersyntax.html + * @return Google_Service_CivicInfo_DivisionSearchResponse + */ + public function search($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_CivicInfo_DivisionSearchResponse"); + } +} + +/** + * The "elections" collection of methods. + * Typical usage is: + * + * $civicinfoService = new Google_Service_CivicInfo(...); + * $elections = $civicinfoService->elections; + * + */ +class Google_Service_CivicInfo_Elections_Resource extends Google_Service_Resource +{ + + /** + * List of available elections to query. (elections.electionQuery) + * + * @param array $optParams Optional parameters. + * @return Google_Service_CivicInfo_ElectionsQueryResponse + */ + public function electionQuery($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('electionQuery', array($params), "Google_Service_CivicInfo_ElectionsQueryResponse"); + } + /** + * Looks up information relevant to a voter based on the voter's registered + * address. (elections.voterInfoQuery) + * + * @param string $address + * The registered address of the voter to look up. + * @param array $optParams Optional parameters. + * + * @opt_param string electionId + * The unique ID of the election to look up. A list of election IDs can be obtained at + * https://www.googleapis.com/civicinfo/{version}/elections + * @opt_param bool officialOnly + * If set to true, only data from official state sources will be returned. + * @return Google_Service_CivicInfo_VoterInfoResponse + */ + public function voterInfoQuery($address, $optParams = array()) + { + $params = array('address' => $address); + $params = array_merge($params, $optParams); + return $this->call('voterInfoQuery', array($params), "Google_Service_CivicInfo_VoterInfoResponse"); + } +} + +/** + * The "representatives" collection of methods. + * Typical usage is: + * + * $civicinfoService = new Google_Service_CivicInfo(...); + * $representatives = $civicinfoService->representatives; + * + */ +class Google_Service_CivicInfo_Representatives_Resource extends Google_Service_Resource +{ + + /** + * Looks up political geography and representative information for a single + * address. (representatives.representativeInfoByAddress) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool includeOffices + * Whether to return information about offices and officials. If false, only the top-level district + * information will be returned. + * @opt_param string levels + * A list of office levels to filter by. Only offices that serve at least one of these levels will + * be returned. Divisions that don't contain a matching office will not be returned. + * @opt_param string roles + * A list of office roles to filter by. Only offices fulfilling one of these roles will be + * returned. Divisions that don't contain a matching office will not be returned. + * @opt_param string address + * The address to look up. May only be specified if the field ocdId is not given in the URL. + * @return Google_Service_CivicInfo_RepresentativeInfoResponse + */ + public function representativeInfoByAddress($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('representativeInfoByAddress', array($params), "Google_Service_CivicInfo_RepresentativeInfoResponse"); + } + /** + * Looks up representative information for a single geographic division. + * (representatives.representativeInfoByDivision) + * + * @param string $ocdId + * The Open Civic Data division identifier of the division to look up. + * @param array $optParams Optional parameters. + * + * @opt_param string levels + * A list of office levels to filter by. Only offices that serve at least one of these levels will + * be returned. Divisions that don't contain a matching office will not be returned. + * @opt_param bool recursive + * If true, information about all divisions contained in the division requested will be included as + * well. For example, if querying ocd-division/country:us/district:dc, this would also return all + * DC's wards and ANCs. + * @opt_param string roles + * A list of office roles to filter by. Only offices fulfilling one of these roles will be + * returned. Divisions that don't contain a matching office will not be returned. + * @return Google_Service_CivicInfo_RepresentativeInfoData + */ + public function representativeInfoByDivision($ocdId, $optParams = array()) + { + $params = array('ocdId' => $ocdId); + $params = array_merge($params, $optParams); + return $this->call('representativeInfoByDivision', array($params), "Google_Service_CivicInfo_RepresentativeInfoData"); + } +} + + + + +class Google_Service_CivicInfo_AdministrationRegion extends Google_Collection +{ + protected $collection_key = 'sources'; + protected $internal_gapi_mappings = array( + "localJurisdiction" => "local_jurisdiction", + ); + protected $electionAdministrationBodyType = 'Google_Service_CivicInfo_AdministrativeBody'; + protected $electionAdministrationBodyDataType = ''; + public $id; + protected $localJurisdictionType = 'Google_Service_CivicInfo_AdministrationRegion'; + protected $localJurisdictionDataType = ''; + public $name; + protected $sourcesType = 'Google_Service_CivicInfo_Source'; + protected $sourcesDataType = 'array'; + + public function setElectionAdministrationBody(Google_Service_CivicInfo_AdministrativeBody $electionAdministrationBody) + { + $this->electionAdministrationBody = $electionAdministrationBody; + } + + public function getElectionAdministrationBody() + { + return $this->electionAdministrationBody; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLocalJurisdiction(Google_Service_CivicInfo_AdministrationRegion $localJurisdiction) + { + $this->localJurisdiction = $localJurisdiction; + } + + public function getLocalJurisdiction() + { + return $this->localJurisdiction; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSources($sources) + { + $this->sources = $sources; + } + + public function getSources() + { + return $this->sources; + } +} + +class Google_Service_CivicInfo_AdministrativeBody extends Google_Collection +{ + protected $collection_key = 'voter_services'; + protected $internal_gapi_mappings = array( + "voterServices" => "voter_services", + ); + public $absenteeVotingInfoUrl; + public $ballotInfoUrl; + protected $correspondenceAddressType = 'Google_Service_CivicInfo_SimpleAddressType'; + protected $correspondenceAddressDataType = ''; + public $electionInfoUrl; + protected $electionOfficialsType = 'Google_Service_CivicInfo_ElectionOfficial'; + protected $electionOfficialsDataType = 'array'; + public $electionRegistrationConfirmationUrl; + public $electionRegistrationUrl; + public $electionRulesUrl; + public $hoursOfOperation; + public $name; + protected $physicalAddressType = 'Google_Service_CivicInfo_SimpleAddressType'; + protected $physicalAddressDataType = ''; + public $voterServices; + public $votingLocationFinderUrl; + + public function setAbsenteeVotingInfoUrl($absenteeVotingInfoUrl) + { + $this->absenteeVotingInfoUrl = $absenteeVotingInfoUrl; + } + + public function getAbsenteeVotingInfoUrl() + { + return $this->absenteeVotingInfoUrl; + } + + public function setBallotInfoUrl($ballotInfoUrl) + { + $this->ballotInfoUrl = $ballotInfoUrl; + } + + public function getBallotInfoUrl() + { + return $this->ballotInfoUrl; + } + + public function setCorrespondenceAddress(Google_Service_CivicInfo_SimpleAddressType $correspondenceAddress) + { + $this->correspondenceAddress = $correspondenceAddress; + } + + public function getCorrespondenceAddress() + { + return $this->correspondenceAddress; + } + + public function setElectionInfoUrl($electionInfoUrl) + { + $this->electionInfoUrl = $electionInfoUrl; + } + + public function getElectionInfoUrl() + { + return $this->electionInfoUrl; + } + + public function setElectionOfficials($electionOfficials) + { + $this->electionOfficials = $electionOfficials; + } + + public function getElectionOfficials() + { + return $this->electionOfficials; + } + + public function setElectionRegistrationConfirmationUrl($electionRegistrationConfirmationUrl) + { + $this->electionRegistrationConfirmationUrl = $electionRegistrationConfirmationUrl; + } + + public function getElectionRegistrationConfirmationUrl() + { + return $this->electionRegistrationConfirmationUrl; + } + + public function setElectionRegistrationUrl($electionRegistrationUrl) + { + $this->electionRegistrationUrl = $electionRegistrationUrl; + } + + public function getElectionRegistrationUrl() + { + return $this->electionRegistrationUrl; + } + + public function setElectionRulesUrl($electionRulesUrl) + { + $this->electionRulesUrl = $electionRulesUrl; + } + + public function getElectionRulesUrl() + { + return $this->electionRulesUrl; + } + + public function setHoursOfOperation($hoursOfOperation) + { + $this->hoursOfOperation = $hoursOfOperation; + } + + public function getHoursOfOperation() + { + return $this->hoursOfOperation; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPhysicalAddress(Google_Service_CivicInfo_SimpleAddressType $physicalAddress) + { + $this->physicalAddress = $physicalAddress; + } + + public function getPhysicalAddress() + { + return $this->physicalAddress; + } + + public function setVoterServices($voterServices) + { + $this->voterServices = $voterServices; + } + + public function getVoterServices() + { + return $this->voterServices; + } + + public function setVotingLocationFinderUrl($votingLocationFinderUrl) + { + $this->votingLocationFinderUrl = $votingLocationFinderUrl; + } + + public function getVotingLocationFinderUrl() + { + return $this->votingLocationFinderUrl; + } +} + +class Google_Service_CivicInfo_Candidate extends Google_Collection +{ + protected $collection_key = 'channels'; + protected $internal_gapi_mappings = array( + ); + public $candidateUrl; + protected $channelsType = 'Google_Service_CivicInfo_Channel'; + protected $channelsDataType = 'array'; + public $email; + public $name; + public $orderOnBallot; + public $party; + public $phone; + public $photoUrl; + + public function setCandidateUrl($candidateUrl) + { + $this->candidateUrl = $candidateUrl; + } + + public function getCandidateUrl() + { + return $this->candidateUrl; + } + + public function setChannels($channels) + { + $this->channels = $channels; + } + + public function getChannels() + { + return $this->channels; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOrderOnBallot($orderOnBallot) + { + $this->orderOnBallot = $orderOnBallot; + } + + public function getOrderOnBallot() + { + return $this->orderOnBallot; + } + + public function setParty($party) + { + $this->party = $party; + } + + public function getParty() + { + return $this->party; + } + + public function setPhone($phone) + { + $this->phone = $phone; + } + + public function getPhone() + { + return $this->phone; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } +} + +class Google_Service_CivicInfo_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_CivicInfo_Contest extends Google_Collection +{ + protected $collection_key = 'sources'; + protected $internal_gapi_mappings = array( + ); + public $ballotPlacement; + protected $candidatesType = 'Google_Service_CivicInfo_Candidate'; + protected $candidatesDataType = 'array'; + protected $districtType = 'Google_Service_CivicInfo_ElectoralDistrict'; + protected $districtDataType = ''; + public $electorateSpecifications; + public $id; + public $level; + public $numberElected; + public $numberVotingFor; + public $office; + public $primaryParty; + public $referendumSubtitle; + public $referendumTitle; + public $referendumUrl; + public $roles; + protected $sourcesType = 'Google_Service_CivicInfo_Source'; + protected $sourcesDataType = 'array'; + public $special; + public $type; + + public function setBallotPlacement($ballotPlacement) + { + $this->ballotPlacement = $ballotPlacement; + } + + public function getBallotPlacement() + { + return $this->ballotPlacement; + } + + public function setCandidates($candidates) + { + $this->candidates = $candidates; + } + + public function getCandidates() + { + return $this->candidates; + } + + public function setDistrict(Google_Service_CivicInfo_ElectoralDistrict $district) + { + $this->district = $district; + } + + public function getDistrict() + { + return $this->district; + } + + public function setElectorateSpecifications($electorateSpecifications) + { + $this->electorateSpecifications = $electorateSpecifications; + } + + public function getElectorateSpecifications() + { + return $this->electorateSpecifications; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLevel($level) + { + $this->level = $level; + } + + public function getLevel() + { + return $this->level; + } + + public function setNumberElected($numberElected) + { + $this->numberElected = $numberElected; + } + + public function getNumberElected() + { + return $this->numberElected; + } + + public function setNumberVotingFor($numberVotingFor) + { + $this->numberVotingFor = $numberVotingFor; + } + + public function getNumberVotingFor() + { + return $this->numberVotingFor; + } + + public function setOffice($office) + { + $this->office = $office; + } + + public function getOffice() + { + return $this->office; + } + + public function setPrimaryParty($primaryParty) + { + $this->primaryParty = $primaryParty; + } + + public function getPrimaryParty() + { + return $this->primaryParty; + } + + public function setReferendumSubtitle($referendumSubtitle) + { + $this->referendumSubtitle = $referendumSubtitle; + } + + public function getReferendumSubtitle() + { + return $this->referendumSubtitle; + } + + public function setReferendumTitle($referendumTitle) + { + $this->referendumTitle = $referendumTitle; + } + + public function getReferendumTitle() + { + return $this->referendumTitle; + } + + public function setReferendumUrl($referendumUrl) + { + $this->referendumUrl = $referendumUrl; + } + + public function getReferendumUrl() + { + return $this->referendumUrl; + } + + public function setRoles($roles) + { + $this->roles = $roles; + } + + public function getRoles() + { + return $this->roles; + } + + public function setSources($sources) + { + $this->sources = $sources; + } + + public function getSources() + { + return $this->sources; + } + + public function setSpecial($special) + { + $this->special = $special; + } + + public function getSpecial() + { + return $this->special; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_CivicInfo_DivisionSearchResponse extends Google_Collection +{ + protected $collection_key = 'results'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $resultsType = 'Google_Service_CivicInfo_DivisionSearchResult'; + protected $resultsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setResults($results) + { + $this->results = $results; + } + + public function getResults() + { + return $this->results; + } +} + +class Google_Service_CivicInfo_DivisionSearchResult extends Google_Collection +{ + protected $collection_key = 'aliases'; + protected $internal_gapi_mappings = array( + ); + public $aliases; + public $name; + public $ocdId; + + public function setAliases($aliases) + { + $this->aliases = $aliases; + } + + public function getAliases() + { + return $this->aliases; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOcdId($ocdId) + { + $this->ocdId = $ocdId; + } + + public function getOcdId() + { + return $this->ocdId; + } +} + +class Google_Service_CivicInfo_Election extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $electionDay; + public $id; + public $name; + + public function setElectionDay($electionDay) + { + $this->electionDay = $electionDay; + } + + public function getElectionDay() + { + return $this->electionDay; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_CivicInfo_ElectionOfficial extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $emailAddress; + public $faxNumber; + public $name; + public $officePhoneNumber; + public $title; + + public function setEmailAddress($emailAddress) + { + $this->emailAddress = $emailAddress; + } + + public function getEmailAddress() + { + return $this->emailAddress; + } + + public function setFaxNumber($faxNumber) + { + $this->faxNumber = $faxNumber; + } + + public function getFaxNumber() + { + return $this->faxNumber; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOfficePhoneNumber($officePhoneNumber) + { + $this->officePhoneNumber = $officePhoneNumber; + } + + public function getOfficePhoneNumber() + { + return $this->officePhoneNumber; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_CivicInfo_ElectionsQueryResponse extends Google_Collection +{ + protected $collection_key = 'elections'; + protected $internal_gapi_mappings = array( + ); + protected $electionsType = 'Google_Service_CivicInfo_Election'; + protected $electionsDataType = 'array'; + public $kind; + + public function setElections($elections) + { + $this->elections = $elections; + } + + public function getElections() + { + return $this->elections; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_CivicInfo_ElectoralDistrict extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $name; + public $scope; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setScope($scope) + { + $this->scope = $scope; + } + + public function getScope() + { + return $this->scope; + } +} + +class Google_Service_CivicInfo_GeographicDivision extends Google_Collection +{ + protected $collection_key = 'officeIndices'; + protected $internal_gapi_mappings = array( + ); + public $alsoKnownAs; + public $name; + public $officeIndices; + + public function setAlsoKnownAs($alsoKnownAs) + { + $this->alsoKnownAs = $alsoKnownAs; + } + + public function getAlsoKnownAs() + { + return $this->alsoKnownAs; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOfficeIndices($officeIndices) + { + $this->officeIndices = $officeIndices; + } + + public function getOfficeIndices() + { + return $this->officeIndices; + } +} + +class Google_Service_CivicInfo_Office extends Google_Collection +{ + protected $collection_key = 'sources'; + protected $internal_gapi_mappings = array( + ); + public $divisionId; + public $levels; + public $name; + public $officialIndices; + public $roles; + protected $sourcesType = 'Google_Service_CivicInfo_Source'; + protected $sourcesDataType = 'array'; + + public function setDivisionId($divisionId) + { + $this->divisionId = $divisionId; + } + + public function getDivisionId() + { + return $this->divisionId; + } + + public function setLevels($levels) + { + $this->levels = $levels; + } + + public function getLevels() + { + return $this->levels; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOfficialIndices($officialIndices) + { + $this->officialIndices = $officialIndices; + } + + public function getOfficialIndices() + { + return $this->officialIndices; + } + + public function setRoles($roles) + { + $this->roles = $roles; + } + + public function getRoles() + { + return $this->roles; + } + + public function setSources($sources) + { + $this->sources = $sources; + } + + public function getSources() + { + return $this->sources; + } +} + +class Google_Service_CivicInfo_Official extends Google_Collection +{ + protected $collection_key = 'urls'; + protected $internal_gapi_mappings = array( + ); + protected $addressType = 'Google_Service_CivicInfo_SimpleAddressType'; + protected $addressDataType = 'array'; + protected $channelsType = 'Google_Service_CivicInfo_Channel'; + protected $channelsDataType = 'array'; + public $emails; + public $name; + public $party; + public $phones; + public $photoUrl; + public $urls; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setChannels($channels) + { + $this->channels = $channels; + } + + public function getChannels() + { + return $this->channels; + } + + public function setEmails($emails) + { + $this->emails = $emails; + } + + public function getEmails() + { + return $this->emails; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParty($party) + { + $this->party = $party; + } + + public function getParty() + { + return $this->party; + } + + public function setPhones($phones) + { + $this->phones = $phones; + } + + public function getPhones() + { + return $this->phones; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } + + public function setUrls($urls) + { + $this->urls = $urls; + } + + public function getUrls() + { + return $this->urls; + } +} + +class Google_Service_CivicInfo_PollingLocation extends Google_Collection +{ + protected $collection_key = 'sources'; + protected $internal_gapi_mappings = array( + ); + protected $addressType = 'Google_Service_CivicInfo_SimpleAddressType'; + protected $addressDataType = ''; + public $endDate; + public $id; + public $name; + public $notes; + public $pollingHours; + protected $sourcesType = 'Google_Service_CivicInfo_Source'; + protected $sourcesDataType = 'array'; + public $startDate; + public $voterServices; + + public function setAddress(Google_Service_CivicInfo_SimpleAddressType $address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNotes($notes) + { + $this->notes = $notes; + } + + public function getNotes() + { + return $this->notes; + } + + public function setPollingHours($pollingHours) + { + $this->pollingHours = $pollingHours; + } + + public function getPollingHours() + { + return $this->pollingHours; + } + + public function setSources($sources) + { + $this->sources = $sources; + } + + public function getSources() + { + return $this->sources; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setVoterServices($voterServices) + { + $this->voterServices = $voterServices; + } + + public function getVoterServices() + { + return $this->voterServices; + } +} + +class Google_Service_CivicInfo_RepresentativeInfoData extends Google_Collection +{ + protected $collection_key = 'officials'; + protected $internal_gapi_mappings = array( + ); + protected $divisionsType = 'Google_Service_CivicInfo_GeographicDivision'; + protected $divisionsDataType = 'map'; + protected $officesType = 'Google_Service_CivicInfo_Office'; + protected $officesDataType = 'array'; + protected $officialsType = 'Google_Service_CivicInfo_Official'; + protected $officialsDataType = 'array'; + + public function setDivisions($divisions) + { + $this->divisions = $divisions; + } + + public function getDivisions() + { + return $this->divisions; + } + + public function setOffices($offices) + { + $this->offices = $offices; + } + + public function getOffices() + { + return $this->offices; + } + + public function setOfficials($officials) + { + $this->officials = $officials; + } + + public function getOfficials() + { + return $this->officials; + } +} + +class Google_Service_CivicInfo_RepresentativeInfoDataDivisions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_CivicInfo_RepresentativeInfoResponse extends Google_Collection +{ + protected $collection_key = 'officials'; + protected $internal_gapi_mappings = array( + ); + protected $divisionsType = 'Google_Service_CivicInfo_GeographicDivision'; + protected $divisionsDataType = 'map'; + public $kind; + protected $normalizedInputType = 'Google_Service_CivicInfo_SimpleAddressType'; + protected $normalizedInputDataType = ''; + protected $officesType = 'Google_Service_CivicInfo_Office'; + protected $officesDataType = 'array'; + protected $officialsType = 'Google_Service_CivicInfo_Official'; + protected $officialsDataType = 'array'; + + public function setDivisions($divisions) + { + $this->divisions = $divisions; + } + + public function getDivisions() + { + return $this->divisions; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNormalizedInput(Google_Service_CivicInfo_SimpleAddressType $normalizedInput) + { + $this->normalizedInput = $normalizedInput; + } + + public function getNormalizedInput() + { + return $this->normalizedInput; + } + + public function setOffices($offices) + { + $this->offices = $offices; + } + + public function getOffices() + { + return $this->offices; + } + + public function setOfficials($officials) + { + $this->officials = $officials; + } + + public function getOfficials() + { + return $this->officials; + } +} + +class Google_Service_CivicInfo_RepresentativeInfoResponseDivisions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_CivicInfo_SimpleAddressType extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $city; + public $line1; + public $line2; + public $line3; + public $locationName; + public $state; + public $zip; + + public function setCity($city) + { + $this->city = $city; + } + + public function getCity() + { + return $this->city; + } + + public function setLine1($line1) + { + $this->line1 = $line1; + } + + public function getLine1() + { + return $this->line1; + } + + public function setLine2($line2) + { + $this->line2 = $line2; + } + + public function getLine2() + { + return $this->line2; + } + + public function setLine3($line3) + { + $this->line3 = $line3; + } + + public function getLine3() + { + return $this->line3; + } + + public function setLocationName($locationName) + { + $this->locationName = $locationName; + } + + public function getLocationName() + { + return $this->locationName; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setZip($zip) + { + $this->zip = $zip; + } + + public function getZip() + { + return $this->zip; + } +} + +class Google_Service_CivicInfo_Source extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $official; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOfficial($official) + { + $this->official = $official; + } + + public function getOfficial() + { + return $this->official; + } +} + +class Google_Service_CivicInfo_VoterInfoResponse extends Google_Collection +{ + protected $collection_key = 'state'; + protected $internal_gapi_mappings = array( + ); + protected $contestsType = 'Google_Service_CivicInfo_Contest'; + protected $contestsDataType = 'array'; + protected $earlyVoteSitesType = 'Google_Service_CivicInfo_PollingLocation'; + protected $earlyVoteSitesDataType = 'array'; + protected $electionType = 'Google_Service_CivicInfo_Election'; + protected $electionDataType = ''; + public $kind; + protected $normalizedInputType = 'Google_Service_CivicInfo_SimpleAddressType'; + protected $normalizedInputDataType = ''; + protected $otherElectionsType = 'Google_Service_CivicInfo_Election'; + protected $otherElectionsDataType = 'array'; + protected $pollingLocationsType = 'Google_Service_CivicInfo_PollingLocation'; + protected $pollingLocationsDataType = 'array'; + public $precinctId; + protected $stateType = 'Google_Service_CivicInfo_AdministrationRegion'; + protected $stateDataType = 'array'; + + public function setContests($contests) + { + $this->contests = $contests; + } + + public function getContests() + { + return $this->contests; + } + + public function setEarlyVoteSites($earlyVoteSites) + { + $this->earlyVoteSites = $earlyVoteSites; + } + + public function getEarlyVoteSites() + { + return $this->earlyVoteSites; + } + + public function setElection(Google_Service_CivicInfo_Election $election) + { + $this->election = $election; + } + + public function getElection() + { + return $this->election; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNormalizedInput(Google_Service_CivicInfo_SimpleAddressType $normalizedInput) + { + $this->normalizedInput = $normalizedInput; + } + + public function getNormalizedInput() + { + return $this->normalizedInput; + } + + public function setOtherElections($otherElections) + { + $this->otherElections = $otherElections; + } + + public function getOtherElections() + { + return $this->otherElections; + } + + public function setPollingLocations($pollingLocations) + { + $this->pollingLocations = $pollingLocations; + } + + public function getPollingLocations() + { + return $this->pollingLocations; + } + + public function setPrecinctId($precinctId) + { + $this->precinctId = $precinctId; + } + + public function getPrecinctId() + { + return $this->precinctId; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/CloudMonitoring.php b/vendor/google/apiclient/src/Google/Service/CloudMonitoring.php new file mode 100644 index 0000000..2d13899 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/CloudMonitoring.php @@ -0,0 +1,1013 @@ + + * API for accessing Google Cloud and API monitoring data. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_CloudMonitoring extends Google_Service +{ + /** View monitoring data for all of your Google Cloud and API projects. */ + const MONITORING_READONLY = "https://www.googleapis.com/auth/monitoring.readonly"; + + public $metricDescriptors; + public $timeseries; + public $timeseriesDescriptors; + + + /** + * Constructs the internal representation of the CloudMonitoring service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'cloudmonitoring/v2beta1/projects/'; + $this->version = 'v2beta1'; + $this->serviceName = 'cloudmonitoring'; + + $this->metricDescriptors = new Google_Service_CloudMonitoring_MetricDescriptors_Resource( + $this, + $this->serviceName, + 'metricDescriptors', + array( + 'methods' => array( + 'list' => array( + 'path' => '{project}/metricDescriptors', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'count' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->timeseries = new Google_Service_CloudMonitoring_Timeseries_Resource( + $this, + $this->serviceName, + 'timeseries', + array( + 'methods' => array( + 'list' => array( + 'path' => '{project}/timeseries/{metric}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'metric' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'youngest' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'count' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'timespan' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'labels' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'oldest' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->timeseriesDescriptors = new Google_Service_CloudMonitoring_TimeseriesDescriptors_Resource( + $this, + $this->serviceName, + 'timeseriesDescriptors', + array( + 'methods' => array( + 'list' => array( + 'path' => '{project}/timeseriesDescriptors/{metric}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'metric' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'youngest' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'count' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'timespan' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'labels' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'oldest' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "metricDescriptors" collection of methods. + * Typical usage is: + * + * $cloudmonitoringService = new Google_Service_CloudMonitoring(...); + * $metricDescriptors = $cloudmonitoringService->metricDescriptors; + * + */ +class Google_Service_CloudMonitoring_MetricDescriptors_Resource extends Google_Service_Resource +{ + + /** + * List metric descriptors that match the query. If the query is not set, then + * all of the metric descriptors will be returned. Large responses will be + * paginated, use the nextPageToken returned in the response to request + * subsequent pages of results by setting the pageToken query parameter to the + * value of the nextPageToken. (metricDescriptors.listMetricDescriptors) + * + * @param string $project + * The project id. The value can be the numeric project ID or string-based project name. + * @param array $optParams Optional parameters. + * + * @opt_param int count + * Maximum number of metric descriptors per page. Used for pagination. If not specified, count = + * 100. + * @opt_param string pageToken + * The pagination token, which is used to page through large result sets. Set this value to the + * value of the nextPageToken to retrieve the next page of results. + * @opt_param string query + * The query used to search against existing metrics. Separate keywords with a space; the service + * joins all keywords with AND, meaning that all keywords must match for a metric to be returned. + * If this field is omitted, all metrics are returned. If an empty string is passed with this + * field, no metrics are returned. + * @return Google_Service_CloudMonitoring_ListMetricDescriptorsResponse + */ + public function listMetricDescriptors($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_CloudMonitoring_ListMetricDescriptorsResponse"); + } +} + +/** + * The "timeseries" collection of methods. + * Typical usage is: + * + * $cloudmonitoringService = new Google_Service_CloudMonitoring(...); + * $timeseries = $cloudmonitoringService->timeseries; + * + */ +class Google_Service_CloudMonitoring_Timeseries_Resource extends Google_Service_Resource +{ + + /** + * List the data points of the time series that match the metric and labels + * values and that have data points in the interval. Large responses are + * paginated; use the nextPageToken returned in the response to request + * subsequent pages of results by setting the pageToken query parameter to the + * value of the nextPageToken. (timeseries.listTimeseries) + * + * @param string $project + * The project ID to which this time series belongs. The value can be the numeric project ID or + * string-based project name. + * @param string $metric + * Metric names are protocol-free URLs as listed in the Supported Metrics page. For example, + * compute.googleapis.com/instance/disk/read_ops_count. + * @param string $youngest + * End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp. + * @param array $optParams Optional parameters. + * + * @opt_param int count + * Maximum number of data points per page, which is used for pagination of results. + * @opt_param string timespan + * Length of the time interval to query, which is an alternative way to declare the interval: + * (youngest - timespan, youngest]. The timespan and oldest parameters should not be used together. + * Units: + - s: second + - m: minute + - h: hour + - d: day + - w: week Examples: 2s, 3m, 4w. Only + * one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead. + If neither + * oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, + * youngest]. + * @opt_param string labels + * A collection of labels for the matching time series, which are represented as: + - key==value: + * key equals the value + - key=~value: key regex matches the value + - key!=value: key does not + * equal the value + - key!~value: key regex does not match the value For example, to list all of + * the time series descriptors for the region us-central1, you could specify: + * label=cloud.googleapis.com%2Flocation=~us-central1.* + * @opt_param string pageToken + * The pagination token, which is used to page through large result sets. Set this value to the + * value of the nextPageToken to retrieve the next page of results. + * @opt_param string oldest + * Start of the time interval (exclusive), which is expressed as an RFC 3339 timestamp. If neither + * oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, + * youngest] + * @return Google_Service_CloudMonitoring_ListTimeseriesResponse + */ + public function listTimeseries($project, $metric, $youngest, $optParams = array()) + { + $params = array('project' => $project, 'metric' => $metric, 'youngest' => $youngest); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_CloudMonitoring_ListTimeseriesResponse"); + } +} + +/** + * The "timeseriesDescriptors" collection of methods. + * Typical usage is: + * + * $cloudmonitoringService = new Google_Service_CloudMonitoring(...); + * $timeseriesDescriptors = $cloudmonitoringService->timeseriesDescriptors; + * + */ +class Google_Service_CloudMonitoring_TimeseriesDescriptors_Resource extends Google_Service_Resource +{ + + /** + * List the descriptors of the time series that match the metric and labels + * values and that have data points in the interval. Large responses are + * paginated; use the nextPageToken returned in the response to request + * subsequent pages of results by setting the pageToken query parameter to the + * value of the nextPageToken. (timeseriesDescriptors.listTimeseriesDescriptors) + * + * @param string $project + * The project ID to which this time series belongs. The value can be the numeric project ID or + * string-based project name. + * @param string $metric + * Metric names are protocol-free URLs as listed in the Supported Metrics page. For example, + * compute.googleapis.com/instance/disk/read_ops_count. + * @param string $youngest + * End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp. + * @param array $optParams Optional parameters. + * + * @opt_param int count + * Maximum number of time series descriptors per page. Used for pagination. If not specified, count + * = 100. + * @opt_param string timespan + * Length of the time interval to query, which is an alternative way to declare the interval: + * (youngest - timespan, youngest]. The timespan and oldest parameters should not be used together. + * Units: + - s: second + - m: minute + - h: hour + - d: day + - w: week Examples: 2s, 3m, 4w. Only + * one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead. + If neither + * oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, + * youngest]. + * @opt_param string labels + * A collection of labels for the matching time series, which are represented as: + - key==value: + * key equals the value + - key=~value: key regex matches the value + - key!=value: key does not + * equal the value + - key!~value: key regex does not match the value For example, to list all of + * the time series descriptors for the region us-central1, you could specify: + * label=cloud.googleapis.com%2Flocation=~us-central1.* + * @opt_param string pageToken + * The pagination token, which is used to page through large result sets. Set this value to the + * value of the nextPageToken to retrieve the next page of results. + * @opt_param string oldest + * Start of the time interval (exclusive), which is expressed as an RFC 3339 timestamp. If neither + * oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, + * youngest] + * @return Google_Service_CloudMonitoring_ListTimeseriesDescriptorsResponse + */ + public function listTimeseriesDescriptors($project, $metric, $youngest, $optParams = array()) + { + $params = array('project' => $project, 'metric' => $metric, 'youngest' => $youngest); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_CloudMonitoring_ListTimeseriesDescriptorsResponse"); + } +} + + + + +class Google_Service_CloudMonitoring_ListMetricDescriptorsRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_CloudMonitoring_ListMetricDescriptorsResponse extends Google_Collection +{ + protected $collection_key = 'metrics'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $metricsType = 'Google_Service_CloudMonitoring_MetricDescriptor'; + protected $metricsDataType = 'array'; + public $nextPageToken; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_CloudMonitoring_ListTimeseriesDescriptorsRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_CloudMonitoring_ListTimeseriesDescriptorsResponse extends Google_Collection +{ + protected $collection_key = 'timeseries'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + public $oldest; + protected $timeseriesType = 'Google_Service_CloudMonitoring_TimeseriesDescriptor'; + protected $timeseriesDataType = 'array'; + public $youngest; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setOldest($oldest) + { + $this->oldest = $oldest; + } + + public function getOldest() + { + return $this->oldest; + } + + public function setTimeseries($timeseries) + { + $this->timeseries = $timeseries; + } + + public function getTimeseries() + { + return $this->timeseries; + } + + public function setYoungest($youngest) + { + $this->youngest = $youngest; + } + + public function getYoungest() + { + return $this->youngest; + } +} + +class Google_Service_CloudMonitoring_ListTimeseriesRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_CloudMonitoring_ListTimeseriesResponse extends Google_Collection +{ + protected $collection_key = 'timeseries'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + public $oldest; + protected $timeseriesType = 'Google_Service_CloudMonitoring_Timeseries'; + protected $timeseriesDataType = 'array'; + public $youngest; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setOldest($oldest) + { + $this->oldest = $oldest; + } + + public function getOldest() + { + return $this->oldest; + } + + public function setTimeseries($timeseries) + { + $this->timeseries = $timeseries; + } + + public function getTimeseries() + { + return $this->timeseries; + } + + public function setYoungest($youngest) + { + $this->youngest = $youngest; + } + + public function getYoungest() + { + return $this->youngest; + } +} + +class Google_Service_CloudMonitoring_MetricDescriptor extends Google_Collection +{ + protected $collection_key = 'labels'; + protected $internal_gapi_mappings = array( + ); + public $description; + protected $labelsType = 'Google_Service_CloudMonitoring_MetricDescriptorLabelDescriptor'; + protected $labelsDataType = 'array'; + public $name; + public $project; + protected $typeDescriptorType = 'Google_Service_CloudMonitoring_MetricDescriptorTypeDescriptor'; + protected $typeDescriptorDataType = ''; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProject($project) + { + $this->project = $project; + } + + public function getProject() + { + return $this->project; + } + + public function setTypeDescriptor(Google_Service_CloudMonitoring_MetricDescriptorTypeDescriptor $typeDescriptor) + { + $this->typeDescriptor = $typeDescriptor; + } + + public function getTypeDescriptor() + { + return $this->typeDescriptor; + } +} + +class Google_Service_CloudMonitoring_MetricDescriptorLabelDescriptor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $key; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } +} + +class Google_Service_CloudMonitoring_MetricDescriptorTypeDescriptor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $metricType; + public $valueType; + + public function setMetricType($metricType) + { + $this->metricType = $metricType; + } + + public function getMetricType() + { + return $this->metricType; + } + + public function setValueType($valueType) + { + $this->valueType = $valueType; + } + + public function getValueType() + { + return $this->valueType; + } +} + +class Google_Service_CloudMonitoring_Point extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $boolValue; + protected $distributionValueType = 'Google_Service_CloudMonitoring_PointDistribution'; + protected $distributionValueDataType = ''; + public $doubleValue; + public $end; + public $int64Value; + public $start; + public $stringValue; + + public function setBoolValue($boolValue) + { + $this->boolValue = $boolValue; + } + + public function getBoolValue() + { + return $this->boolValue; + } + + public function setDistributionValue(Google_Service_CloudMonitoring_PointDistribution $distributionValue) + { + $this->distributionValue = $distributionValue; + } + + public function getDistributionValue() + { + return $this->distributionValue; + } + + public function setDoubleValue($doubleValue) + { + $this->doubleValue = $doubleValue; + } + + public function getDoubleValue() + { + return $this->doubleValue; + } + + public function setEnd($end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setInt64Value($int64Value) + { + $this->int64Value = $int64Value; + } + + public function getInt64Value() + { + return $this->int64Value; + } + + public function setStart($start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } + + public function setStringValue($stringValue) + { + $this->stringValue = $stringValue; + } + + public function getStringValue() + { + return $this->stringValue; + } +} + +class Google_Service_CloudMonitoring_PointDistribution extends Google_Collection +{ + protected $collection_key = 'buckets'; + protected $internal_gapi_mappings = array( + ); + protected $bucketsType = 'Google_Service_CloudMonitoring_PointDistributionBucket'; + protected $bucketsDataType = 'array'; + protected $overflowBucketType = 'Google_Service_CloudMonitoring_PointDistributionOverflowBucket'; + protected $overflowBucketDataType = ''; + protected $underflowBucketType = 'Google_Service_CloudMonitoring_PointDistributionUnderflowBucket'; + protected $underflowBucketDataType = ''; + + public function setBuckets($buckets) + { + $this->buckets = $buckets; + } + + public function getBuckets() + { + return $this->buckets; + } + + public function setOverflowBucket(Google_Service_CloudMonitoring_PointDistributionOverflowBucket $overflowBucket) + { + $this->overflowBucket = $overflowBucket; + } + + public function getOverflowBucket() + { + return $this->overflowBucket; + } + + public function setUnderflowBucket(Google_Service_CloudMonitoring_PointDistributionUnderflowBucket $underflowBucket) + { + $this->underflowBucket = $underflowBucket; + } + + public function getUnderflowBucket() + { + return $this->underflowBucket; + } +} + +class Google_Service_CloudMonitoring_PointDistributionBucket extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $lowerBound; + public $upperBound; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setLowerBound($lowerBound) + { + $this->lowerBound = $lowerBound; + } + + public function getLowerBound() + { + return $this->lowerBound; + } + + public function setUpperBound($upperBound) + { + $this->upperBound = $upperBound; + } + + public function getUpperBound() + { + return $this->upperBound; + } +} + +class Google_Service_CloudMonitoring_PointDistributionOverflowBucket extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $lowerBound; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setLowerBound($lowerBound) + { + $this->lowerBound = $lowerBound; + } + + public function getLowerBound() + { + return $this->lowerBound; + } +} + +class Google_Service_CloudMonitoring_PointDistributionUnderflowBucket extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $upperBound; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setUpperBound($upperBound) + { + $this->upperBound = $upperBound; + } + + public function getUpperBound() + { + return $this->upperBound; + } +} + +class Google_Service_CloudMonitoring_Timeseries extends Google_Collection +{ + protected $collection_key = 'points'; + protected $internal_gapi_mappings = array( + ); + protected $pointsType = 'Google_Service_CloudMonitoring_Point'; + protected $pointsDataType = 'array'; + protected $timeseriesDescType = 'Google_Service_CloudMonitoring_TimeseriesDescriptor'; + protected $timeseriesDescDataType = ''; + + public function setPoints($points) + { + $this->points = $points; + } + + public function getPoints() + { + return $this->points; + } + + public function setTimeseriesDesc(Google_Service_CloudMonitoring_TimeseriesDescriptor $timeseriesDesc) + { + $this->timeseriesDesc = $timeseriesDesc; + } + + public function getTimeseriesDesc() + { + return $this->timeseriesDesc; + } +} + +class Google_Service_CloudMonitoring_TimeseriesDescriptor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $labels; + public $metric; + public $project; + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setMetric($metric) + { + $this->metric = $metric; + } + + public function getMetric() + { + return $this->metric; + } + + public function setProject($project) + { + $this->project = $project; + } + + public function getProject() + { + return $this->project; + } +} + +class Google_Service_CloudMonitoring_TimeseriesDescriptorLabels extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} diff --git a/vendor/google/apiclient/src/Google/Service/Compute.php b/vendor/google/apiclient/src/Google/Service/Compute.php new file mode 100644 index 0000000..fc4fec5 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Compute.php @@ -0,0 +1,12911 @@ + + * API for the Google Compute Engine service. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Compute extends Google_Service +{ + /** View and manage your Google Compute Engine resources. */ + const COMPUTE = "https://www.googleapis.com/auth/compute"; + /** View your Google Compute Engine resources. */ + const COMPUTE_READONLY = "https://www.googleapis.com/auth/compute.readonly"; + /** Manage your data and permissions in Google Cloud Storage. */ + const DEVSTORAGE_FULL_CONTROL = "https://www.googleapis.com/auth/devstorage.full_control"; + /** View your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_ONLY = "https://www.googleapis.com/auth/devstorage.read_only"; + /** Manage your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_WRITE = "https://www.googleapis.com/auth/devstorage.read_write"; + + public $addresses; + public $backendServices; + public $diskTypes; + public $disks; + public $firewalls; + public $forwardingRules; + public $globalAddresses; + public $globalForwardingRules; + public $globalOperations; + public $httpHealthChecks; + public $images; + public $instances; + public $licenses; + public $machineTypes; + public $networks; + public $projects; + public $regionOperations; + public $regions; + public $routes; + public $snapshots; + public $targetHttpProxies; + public $targetInstances; + public $targetPools; + public $urlMaps; + public $zoneOperations; + public $zones; + + + /** + * Constructs the internal representation of the Compute service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'compute/v1/projects/'; + $this->version = 'v1'; + $this->serviceName = 'compute'; + + $this->addresses = new Google_Service_Compute_Addresses_Resource( + $this, + $this->serviceName, + 'addresses', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/addresses', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'delete' => array( + 'path' => '{project}/regions/{region}/addresses/{address}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'address' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/regions/{region}/addresses/{address}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'address' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/regions/{region}/addresses', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/regions/{region}/addresses', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->backendServices = new Google_Service_Compute_BackendServices_Resource( + $this, + $this->serviceName, + 'backendServices', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/backendServices/{backendService}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backendService' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/backendServices/{backendService}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backendService' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getHealth' => array( + 'path' => '{project}/global/backendServices/{backendService}/getHealth', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backendService' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/backendServices', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/backendServices', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{project}/global/backendServices/{backendService}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backendService' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{project}/global/backendServices/{backendService}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backendService' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->diskTypes = new Google_Service_Compute_DiskTypes_Resource( + $this, + $this->serviceName, + 'diskTypes', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/diskTypes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/diskTypes/{diskType}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'diskType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/diskTypes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->disks = new Google_Service_Compute_Disks_Resource( + $this, + $this->serviceName, + 'disks', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/disks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'createSnapshot' => array( + 'path' => '{project}/zones/{zone}/disks/{disk}/createSnapshot', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'disk' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{project}/zones/{zone}/disks/{disk}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'disk' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/disks/{disk}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'disk' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/zones/{zone}/disks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sourceImage' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/disks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->firewalls = new Google_Service_Compute_Firewalls_Resource( + $this, + $this->serviceName, + 'firewalls', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/firewalls/{firewall}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'firewall' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/firewalls/{firewall}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'firewall' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/firewalls', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/firewalls', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{project}/global/firewalls/{firewall}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'firewall' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{project}/global/firewalls/{firewall}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'firewall' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->forwardingRules = new Google_Service_Compute_ForwardingRules_Resource( + $this, + $this->serviceName, + 'forwardingRules', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/forwardingRules', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'delete' => array( + 'path' => '{project}/regions/{region}/forwardingRules/{forwardingRule}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'forwardingRule' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/regions/{region}/forwardingRules/{forwardingRule}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'forwardingRule' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/regions/{region}/forwardingRules', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/regions/{region}/forwardingRules', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'setTarget' => array( + 'path' => '{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'forwardingRule' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->globalAddresses = new Google_Service_Compute_GlobalAddresses_Resource( + $this, + $this->serviceName, + 'globalAddresses', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/addresses/{address}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'address' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/addresses/{address}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'address' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/addresses', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/addresses', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->globalForwardingRules = new Google_Service_Compute_GlobalForwardingRules_Resource( + $this, + $this->serviceName, + 'globalForwardingRules', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/forwardingRules/{forwardingRule}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'forwardingRule' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/forwardingRules/{forwardingRule}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'forwardingRule' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/forwardingRules', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/forwardingRules', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'setTarget' => array( + 'path' => '{project}/global/forwardingRules/{forwardingRule}/setTarget', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'forwardingRule' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->globalOperations = new Google_Service_Compute_GlobalOperations_Resource( + $this, + $this->serviceName, + 'globalOperations', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'delete' => array( + 'path' => '{project}/global/operations/{operation}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/operations/{operation}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->httpHealthChecks = new Google_Service_Compute_HttpHealthChecks_Resource( + $this, + $this->serviceName, + 'httpHealthChecks', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/httpHealthChecks/{httpHealthCheck}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'httpHealthCheck' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/httpHealthChecks/{httpHealthCheck}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'httpHealthCheck' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/httpHealthChecks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/httpHealthChecks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{project}/global/httpHealthChecks/{httpHealthCheck}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'httpHealthCheck' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{project}/global/httpHealthChecks/{httpHealthCheck}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'httpHealthCheck' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->images = new Google_Service_Compute_Images_Resource( + $this, + $this->serviceName, + 'images', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/images/{image}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'image' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'deprecate' => array( + 'path' => '{project}/global/images/{image}/deprecate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'image' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/images/{image}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'image' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/images', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/images', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->instances = new Google_Service_Compute_Instances_Resource( + $this, + $this->serviceName, + 'instances', + array( + 'methods' => array( + 'addAccessConfig' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/addAccessConfig', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'networkInterface' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'aggregatedList' => array( + 'path' => '{project}/aggregated/instances', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'attachDisk' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/attachDisk', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'deleteAccessConfig' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/deleteAccessConfig', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accessConfig' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'networkInterface' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'detachDisk' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/detachDisk', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deviceName' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getSerialPortOutput' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/serialPort', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/zones/{zone}/instances', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/instances', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'reset' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/reset', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setDiskAutoDelete' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'autoDelete' => array( + 'location' => 'query', + 'type' => 'boolean', + 'required' => true, + ), + 'deviceName' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setMetadata' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/setMetadata', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setScheduling' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/setScheduling', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setTags' => array( + 'path' => '{project}/zones/{zone}/instances/{instance}/setTags', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->licenses = new Google_Service_Compute_Licenses_Resource( + $this, + $this->serviceName, + 'licenses', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}/global/licenses/{license}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'license' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->machineTypes = new Google_Service_Compute_MachineTypes_Resource( + $this, + $this->serviceName, + 'machineTypes', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/machineTypes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/machineTypes/{machineType}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'machineType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/machineTypes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->networks = new Google_Service_Compute_Networks_Resource( + $this, + $this->serviceName, + 'networks', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/networks/{network}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'network' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/networks/{network}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'network' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/networks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/networks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->projects = new Google_Service_Compute_Projects_Resource( + $this, + $this->serviceName, + 'projects', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setCommonInstanceMetadata' => array( + 'path' => '{project}/setCommonInstanceMetadata', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setUsageExportBucket' => array( + 'path' => '{project}/setUsageExportBucket', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->regionOperations = new Google_Service_Compute_RegionOperations_Resource( + $this, + $this->serviceName, + 'regionOperations', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/regions/{region}/operations/{operation}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/regions/{region}/operations/{operation}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/regions/{region}/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->regions = new Google_Service_Compute_Regions_Resource( + $this, + $this->serviceName, + 'regions', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}/regions/{region}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/regions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->routes = new Google_Service_Compute_Routes_Resource( + $this, + $this->serviceName, + 'routes', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/routes/{route}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'route' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/routes/{route}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'route' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/routes', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/routes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->snapshots = new Google_Service_Compute_Snapshots_Resource( + $this, + $this->serviceName, + 'snapshots', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/snapshots/{snapshot}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'snapshot' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/snapshots/{snapshot}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'snapshot' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/snapshots', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->targetHttpProxies = new Google_Service_Compute_TargetHttpProxies_Resource( + $this, + $this->serviceName, + 'targetHttpProxies', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/targetHttpProxies/{targetHttpProxy}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetHttpProxy' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/targetHttpProxies/{targetHttpProxy}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetHttpProxy' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/targetHttpProxies', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/targetHttpProxies', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'setUrlMap' => array( + 'path' => '{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetHttpProxy' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->targetInstances = new Google_Service_Compute_TargetInstances_Resource( + $this, + $this->serviceName, + 'targetInstances', + array( + 'methods' => array( + 'aggregatedList' => array( + 'path' => '{project}/aggregated/targetInstances', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'delete' => array( + 'path' => '{project}/zones/{zone}/targetInstances/{targetInstance}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetInstance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/targetInstances/{targetInstance}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetInstance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/zones/{zone}/targetInstances', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/targetInstances', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->targetPools = new Google_Service_Compute_TargetPools_Resource( + $this, + $this->serviceName, + 'targetPools', + array( + 'methods' => array( + 'addHealthCheck' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'addInstance' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}/addInstance', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'aggregatedList' => array( + 'path' => '{project}/aggregated/targetPools', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'delete' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getHealth' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}/getHealth', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/regions/{region}/targetPools', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/regions/{region}/targetPools', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'removeHealthCheck' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'removeInstance' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}/removeInstance', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setBackup' => array( + 'path' => '{project}/regions/{region}/targetPools/{targetPool}/setBackup', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'targetPool' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'failoverRatio' => array( + 'location' => 'query', + 'type' => 'number', + ), + ), + ), + ) + ) + ); + $this->urlMaps = new Google_Service_Compute_UrlMaps_Resource( + $this, + $this->serviceName, + 'urlMaps', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/global/urlMaps/{urlMap}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'urlMap' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/global/urlMaps/{urlMap}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'urlMap' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/global/urlMaps', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/global/urlMaps', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{project}/global/urlMaps/{urlMap}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'urlMap' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{project}/global/urlMaps/{urlMap}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'urlMap' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'validate' => array( + 'path' => '{project}/global/urlMaps/{urlMap}/validate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'urlMap' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->zoneOperations = new Google_Service_Compute_ZoneOperations_Resource( + $this, + $this->serviceName, + 'zoneOperations', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/zones/{zone}/operations/{operation}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/operations/{operation}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->zones = new Google_Service_Compute_Zones_Resource( + $this, + $this->serviceName, + 'zones', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}/zones/{zone}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "addresses" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $addresses = $computeService->addresses; + * + */ +class Google_Service_Compute_Addresses_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of addresses grouped by scope. (addresses.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_AddressAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_AddressAggregatedList"); + } + /** + * Deletes the specified address resource. (addresses.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $address + * Name of the address resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $region, $address, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'address' => $address); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified address resource. (addresses.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $address + * Name of the address resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Address + */ + public function get($project, $region, $address, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'address' => $address); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Address"); + } + /** + * Creates an address resource in the specified project using the data included + * in the request. (addresses.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param Google_Address $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, $region, Google_Service_Compute_Address $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of address resources contained within the specified + * region. (addresses.listAddresses) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_AddressList + */ + public function listAddresses($project, $region, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_AddressList"); + } +} + +/** + * The "backendServices" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $backendServices = $computeService->backendServices; + * + */ +class Google_Service_Compute_BackendServices_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified BackendService resource. (backendServices.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $backendService + * Name of the BackendService resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $backendService, $optParams = array()) + { + $params = array('project' => $project, 'backendService' => $backendService); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified BackendService resource. (backendServices.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $backendService + * Name of the BackendService resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_BackendService + */ + public function get($project, $backendService, $optParams = array()) + { + $params = array('project' => $project, 'backendService' => $backendService); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_BackendService"); + } + /** + * Gets the most recent health check results for this BackendService. + * (backendServices.getHealth) + * + * @param string $project + * + * @param string $backendService + * Name of the BackendService resource to which the queried instance belongs. + * @param Google_ResourceGroupReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_BackendServiceGroupHealth + */ + public function getHealth($project, $backendService, Google_Service_Compute_ResourceGroupReference $postBody, $optParams = array()) + { + $params = array('project' => $project, 'backendService' => $backendService, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getHealth', array($params), "Google_Service_Compute_BackendServiceGroupHealth"); + } + /** + * Creates a BackendService resource in the specified project using the data + * included in the request. (backendServices.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_BackendService $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_BackendService $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of BackendService resources available to the specified + * project. (backendServices.listBackendServices) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_BackendServiceList + */ + public function listBackendServices($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_BackendServiceList"); + } + /** + * Update the entire content of the BackendService resource. This method + * supports patch semantics. (backendServices.patch) + * + * @param string $project + * Name of the project scoping this request. + * @param string $backendService + * Name of the BackendService resource to update. + * @param Google_BackendService $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function patch($project, $backendService, Google_Service_Compute_BackendService $postBody, $optParams = array()) + { + $params = array('project' => $project, 'backendService' => $backendService, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Compute_Operation"); + } + /** + * Update the entire content of the BackendService resource. + * (backendServices.update) + * + * @param string $project + * Name of the project scoping this request. + * @param string $backendService + * Name of the BackendService resource to update. + * @param Google_BackendService $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function update($project, $backendService, Google_Service_Compute_BackendService $postBody, $optParams = array()) + { + $params = array('project' => $project, 'backendService' => $backendService, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "diskTypes" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $diskTypes = $computeService->diskTypes; + * + */ +class Google_Service_Compute_DiskTypes_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of disk type resources grouped by scope. + * (diskTypes.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_DiskTypeAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_DiskTypeAggregatedList"); + } + /** + * Returns the specified disk type resource. (diskTypes.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $diskType + * Name of the disk type resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_DiskType + */ + public function get($project, $zone, $diskType, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'diskType' => $diskType); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_DiskType"); + } + /** + * Retrieves the list of disk type resources available to the specified project. + * (diskTypes.listDiskTypes) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_DiskTypeList + */ + public function listDiskTypes($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_DiskTypeList"); + } +} + +/** + * The "disks" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $disks = $computeService->disks; + * + */ +class Google_Service_Compute_Disks_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of disks grouped by scope. (disks.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_DiskAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_DiskAggregatedList"); + } + /** + * (disks.createSnapshot) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $disk + * Name of the persistent disk resource to snapshot. + * @param Google_Snapshot $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function createSnapshot($project, $zone, $disk, Google_Service_Compute_Snapshot $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'disk' => $disk, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('createSnapshot', array($params), "Google_Service_Compute_Operation"); + } + /** + * Deletes the specified persistent disk resource. (disks.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $disk + * Name of the persistent disk resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $zone, $disk, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'disk' => $disk); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified persistent disk resource. (disks.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $disk + * Name of the persistent disk resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Disk + */ + public function get($project, $zone, $disk, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'disk' => $disk); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Disk"); + } + /** + * Creates a persistent disk resource in the specified project using the data + * included in the request. (disks.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param Google_Disk $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string sourceImage + * Optional. Source image to restore onto a disk. + * @return Google_Service_Compute_Operation + */ + public function insert($project, $zone, Google_Service_Compute_Disk $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of persistent disk resources contained within the + * specified zone. (disks.listDisks) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_DiskList + */ + public function listDisks($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_DiskList"); + } +} + +/** + * The "firewalls" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $firewalls = $computeService->firewalls; + * + */ +class Google_Service_Compute_Firewalls_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified firewall resource. (firewalls.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $firewall + * Name of the firewall resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $firewall, $optParams = array()) + { + $params = array('project' => $project, 'firewall' => $firewall); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified firewall resource. (firewalls.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $firewall + * Name of the firewall resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Firewall + */ + public function get($project, $firewall, $optParams = array()) + { + $params = array('project' => $project, 'firewall' => $firewall); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Firewall"); + } + /** + * Creates a firewall resource in the specified project using the data included + * in the request. (firewalls.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_Firewall $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_Firewall $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of firewall resources available to the specified project. + * (firewalls.listFirewalls) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_FirewallList + */ + public function listFirewalls($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_FirewallList"); + } + /** + * Updates the specified firewall resource with the data included in the + * request. This method supports patch semantics. (firewalls.patch) + * + * @param string $project + * Name of the project scoping this request. + * @param string $firewall + * Name of the firewall resource to update. + * @param Google_Firewall $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function patch($project, $firewall, Google_Service_Compute_Firewall $postBody, $optParams = array()) + { + $params = array('project' => $project, 'firewall' => $firewall, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Compute_Operation"); + } + /** + * Updates the specified firewall resource with the data included in the + * request. (firewalls.update) + * + * @param string $project + * Name of the project scoping this request. + * @param string $firewall + * Name of the firewall resource to update. + * @param Google_Firewall $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function update($project, $firewall, Google_Service_Compute_Firewall $postBody, $optParams = array()) + { + $params = array('project' => $project, 'firewall' => $firewall, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "forwardingRules" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $forwardingRules = $computeService->forwardingRules; + * + */ +class Google_Service_Compute_ForwardingRules_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of forwarding rules grouped by scope. + * (forwardingRules.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_ForwardingRuleAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_ForwardingRuleAggregatedList"); + } + /** + * Deletes the specified ForwardingRule resource. (forwardingRules.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $forwardingRule + * Name of the ForwardingRule resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $region, $forwardingRule, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'forwardingRule' => $forwardingRule); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified ForwardingRule resource. (forwardingRules.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $forwardingRule + * Name of the ForwardingRule resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_ForwardingRule + */ + public function get($project, $region, $forwardingRule, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'forwardingRule' => $forwardingRule); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_ForwardingRule"); + } + /** + * Creates a ForwardingRule resource in the specified project and region using + * the data included in the request. (forwardingRules.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param Google_ForwardingRule $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, $region, Google_Service_Compute_ForwardingRule $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of ForwardingRule resources available to the specified + * project and region. (forwardingRules.listForwardingRules) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_ForwardingRuleList + */ + public function listForwardingRules($project, $region, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_ForwardingRuleList"); + } + /** + * Changes target url for forwarding rule. (forwardingRules.setTarget) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $forwardingRule + * Name of the ForwardingRule resource in which target is to be set. + * @param Google_TargetReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setTarget($project, $region, $forwardingRule, Google_Service_Compute_TargetReference $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'forwardingRule' => $forwardingRule, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setTarget', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "globalAddresses" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $globalAddresses = $computeService->globalAddresses; + * + */ +class Google_Service_Compute_GlobalAddresses_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified address resource. (globalAddresses.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $address + * Name of the address resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $address, $optParams = array()) + { + $params = array('project' => $project, 'address' => $address); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified address resource. (globalAddresses.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $address + * Name of the address resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Address + */ + public function get($project, $address, $optParams = array()) + { + $params = array('project' => $project, 'address' => $address); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Address"); + } + /** + * Creates an address resource in the specified project using the data included + * in the request. (globalAddresses.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_Address $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_Address $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of global address resources. + * (globalAddresses.listGlobalAddresses) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_AddressList + */ + public function listGlobalAddresses($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_AddressList"); + } +} + +/** + * The "globalForwardingRules" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $globalForwardingRules = $computeService->globalForwardingRules; + * + */ +class Google_Service_Compute_GlobalForwardingRules_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified ForwardingRule resource. (globalForwardingRules.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $forwardingRule + * Name of the ForwardingRule resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $forwardingRule, $optParams = array()) + { + $params = array('project' => $project, 'forwardingRule' => $forwardingRule); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified ForwardingRule resource. (globalForwardingRules.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $forwardingRule + * Name of the ForwardingRule resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_ForwardingRule + */ + public function get($project, $forwardingRule, $optParams = array()) + { + $params = array('project' => $project, 'forwardingRule' => $forwardingRule); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_ForwardingRule"); + } + /** + * Creates a ForwardingRule resource in the specified project and region using + * the data included in the request. (globalForwardingRules.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_ForwardingRule $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_ForwardingRule $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of ForwardingRule resources available to the specified + * project. (globalForwardingRules.listGlobalForwardingRules) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_ForwardingRuleList + */ + public function listGlobalForwardingRules($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_ForwardingRuleList"); + } + /** + * Changes target url for forwarding rule. (globalForwardingRules.setTarget) + * + * @param string $project + * Name of the project scoping this request. + * @param string $forwardingRule + * Name of the ForwardingRule resource in which target is to be set. + * @param Google_TargetReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setTarget($project, $forwardingRule, Google_Service_Compute_TargetReference $postBody, $optParams = array()) + { + $params = array('project' => $project, 'forwardingRule' => $forwardingRule, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setTarget', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "globalOperations" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $globalOperations = $computeService->globalOperations; + * + */ +class Google_Service_Compute_GlobalOperations_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of all operations grouped by scope. + * (globalOperations.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_OperationAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_OperationAggregatedList"); + } + /** + * Deletes the specified operation resource. (globalOperations.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $operation + * Name of the operation resource to delete. + * @param array $optParams Optional parameters. + */ + public function delete($project, $operation, $optParams = array()) + { + $params = array('project' => $project, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the specified operation resource. (globalOperations.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $operation + * Name of the operation resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function get($project, $operation, $optParams = array()) + { + $params = array('project' => $project, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of operation resources contained within the specified + * project. (globalOperations.listGlobalOperations) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_OperationList + */ + public function listGlobalOperations($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_OperationList"); + } +} + +/** + * The "httpHealthChecks" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $httpHealthChecks = $computeService->httpHealthChecks; + * + */ +class Google_Service_Compute_HttpHealthChecks_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified HttpHealthCheck resource. (httpHealthChecks.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $httpHealthCheck + * Name of the HttpHealthCheck resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $httpHealthCheck, $optParams = array()) + { + $params = array('project' => $project, 'httpHealthCheck' => $httpHealthCheck); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified HttpHealthCheck resource. (httpHealthChecks.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $httpHealthCheck + * Name of the HttpHealthCheck resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_HttpHealthCheck + */ + public function get($project, $httpHealthCheck, $optParams = array()) + { + $params = array('project' => $project, 'httpHealthCheck' => $httpHealthCheck); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_HttpHealthCheck"); + } + /** + * Creates a HttpHealthCheck resource in the specified project using the data + * included in the request. (httpHealthChecks.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_HttpHealthCheck $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_HttpHealthCheck $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of HttpHealthCheck resources available to the specified + * project. (httpHealthChecks.listHttpHealthChecks) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_HttpHealthCheckList + */ + public function listHttpHealthChecks($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_HttpHealthCheckList"); + } + /** + * Updates a HttpHealthCheck resource in the specified project using the data + * included in the request. This method supports patch semantics. + * (httpHealthChecks.patch) + * + * @param string $project + * Name of the project scoping this request. + * @param string $httpHealthCheck + * Name of the HttpHealthCheck resource to update. + * @param Google_HttpHealthCheck $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function patch($project, $httpHealthCheck, Google_Service_Compute_HttpHealthCheck $postBody, $optParams = array()) + { + $params = array('project' => $project, 'httpHealthCheck' => $httpHealthCheck, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Compute_Operation"); + } + /** + * Updates a HttpHealthCheck resource in the specified project using the data + * included in the request. (httpHealthChecks.update) + * + * @param string $project + * Name of the project scoping this request. + * @param string $httpHealthCheck + * Name of the HttpHealthCheck resource to update. + * @param Google_HttpHealthCheck $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function update($project, $httpHealthCheck, Google_Service_Compute_HttpHealthCheck $postBody, $optParams = array()) + { + $params = array('project' => $project, 'httpHealthCheck' => $httpHealthCheck, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "images" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $images = $computeService->images; + * + */ +class Google_Service_Compute_Images_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified image resource. (images.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $image + * Name of the image resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $image, $optParams = array()) + { + $params = array('project' => $project, 'image' => $image); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Sets the deprecation status of an image. If no message body is given, clears + * the deprecation status instead. (images.deprecate) + * + * @param string $project + * Name of the project scoping this request. + * @param string $image + * Image name. + * @param Google_DeprecationStatus $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function deprecate($project, $image, Google_Service_Compute_DeprecationStatus $postBody, $optParams = array()) + { + $params = array('project' => $project, 'image' => $image, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('deprecate', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified image resource. (images.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $image + * Name of the image resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Image + */ + public function get($project, $image, $optParams = array()) + { + $params = array('project' => $project, 'image' => $image); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Image"); + } + /** + * Creates an image resource in the specified project using the data included in + * the request. (images.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_Image $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_Image $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of image resources available to the specified project. + * (images.listImages) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_ImageList + */ + public function listImages($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_ImageList"); + } +} + +/** + * The "instances" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $instances = $computeService->instances; + * + */ +class Google_Service_Compute_Instances_Resource extends Google_Service_Resource +{ + + /** + * Adds an access config to an instance's network interface. + * (instances.addAccessConfig) + * + * @param string $project + * Project name. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Instance name. + * @param string $networkInterface + * Network interface name. + * @param Google_AccessConfig $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function addAccessConfig($project, $zone, $instance, $networkInterface, Google_Service_Compute_AccessConfig $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'networkInterface' => $networkInterface, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('addAccessConfig', array($params), "Google_Service_Compute_Operation"); + } + /** + * (instances.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_InstanceAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_InstanceAggregatedList"); + } + /** + * Attaches a disk resource to an instance. (instances.attachDisk) + * + * @param string $project + * Project name. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Instance name. + * @param Google_AttachedDisk $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function attachDisk($project, $zone, $instance, Google_Service_Compute_AttachedDisk $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('attachDisk', array($params), "Google_Service_Compute_Operation"); + } + /** + * Deletes the specified instance resource. (instances.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Name of the instance resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $zone, $instance, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Deletes an access config from an instance's network interface. + * (instances.deleteAccessConfig) + * + * @param string $project + * Project name. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Instance name. + * @param string $accessConfig + * Access config name. + * @param string $networkInterface + * Network interface name. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function deleteAccessConfig($project, $zone, $instance, $accessConfig, $networkInterface, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'accessConfig' => $accessConfig, 'networkInterface' => $networkInterface); + $params = array_merge($params, $optParams); + return $this->call('deleteAccessConfig', array($params), "Google_Service_Compute_Operation"); + } + /** + * Detaches a disk from an instance. (instances.detachDisk) + * + * @param string $project + * Project name. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Instance name. + * @param string $deviceName + * Disk device name to detach. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function detachDisk($project, $zone, $instance, $deviceName, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'deviceName' => $deviceName); + $params = array_merge($params, $optParams); + return $this->call('detachDisk', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified instance resource. (instances.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Name of the instance resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Instance + */ + public function get($project, $zone, $instance, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Instance"); + } + /** + * Returns the specified instance's serial port output. + * (instances.getSerialPortOutput) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Name of the instance scoping this request. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_SerialPortOutput + */ + public function getSerialPortOutput($project, $zone, $instance, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('getSerialPortOutput', array($params), "Google_Service_Compute_SerialPortOutput"); + } + /** + * Creates an instance resource in the specified project using the data included + * in the request. (instances.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param Google_Instance $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, $zone, Google_Service_Compute_Instance $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of instance resources contained within the specified zone. + * (instances.listInstances) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_InstanceList + */ + public function listInstances($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_InstanceList"); + } + /** + * Performs a hard reset on the instance. (instances.reset) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Name of the instance scoping this request. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function reset($project, $zone, $instance, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params), "Google_Service_Compute_Operation"); + } + /** + * Sets the auto-delete flag for a disk attached to an instance + * (instances.setDiskAutoDelete) + * + * @param string $project + * Project name. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Instance name. + * @param bool $autoDelete + * Whether to auto-delete the disk when the instance is deleted. + * @param string $deviceName + * Disk device name to modify. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setDiskAutoDelete($project, $zone, $instance, $autoDelete, $deviceName, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'autoDelete' => $autoDelete, 'deviceName' => $deviceName); + $params = array_merge($params, $optParams); + return $this->call('setDiskAutoDelete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Sets metadata for the specified instance to the data included in the request. + * (instances.setMetadata) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Name of the instance scoping this request. + * @param Google_Metadata $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setMetadata($project, $zone, $instance, Google_Service_Compute_Metadata $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setMetadata', array($params), "Google_Service_Compute_Operation"); + } + /** + * Sets an instance's scheduling options. (instances.setScheduling) + * + * @param string $project + * Project name. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Instance name. + * @param Google_Scheduling $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setScheduling($project, $zone, $instance, Google_Service_Compute_Scheduling $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setScheduling', array($params), "Google_Service_Compute_Operation"); + } + /** + * Sets tags for the specified instance to the data included in the request. + * (instances.setTags) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $instance + * Name of the instance scoping this request. + * @param Google_Tags $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setTags($project, $zone, $instance, Google_Service_Compute_Tags $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setTags', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "licenses" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $licenses = $computeService->licenses; + * + */ +class Google_Service_Compute_Licenses_Resource extends Google_Service_Resource +{ + + /** + * Returns the specified license resource. (licenses.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $license + * Name of the license resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_License + */ + public function get($project, $license, $optParams = array()) + { + $params = array('project' => $project, 'license' => $license); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_License"); + } +} + +/** + * The "machineTypes" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $machineTypes = $computeService->machineTypes; + * + */ +class Google_Service_Compute_MachineTypes_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of machine type resources grouped by scope. + * (machineTypes.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_MachineTypeAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_MachineTypeAggregatedList"); + } + /** + * Returns the specified machine type resource. (machineTypes.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $machineType + * Name of the machine type resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_MachineType + */ + public function get($project, $zone, $machineType, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'machineType' => $machineType); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_MachineType"); + } + /** + * Retrieves the list of machine type resources available to the specified + * project. (machineTypes.listMachineTypes) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_MachineTypeList + */ + public function listMachineTypes($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_MachineTypeList"); + } +} + +/** + * The "networks" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $networks = $computeService->networks; + * + */ +class Google_Service_Compute_Networks_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified network resource. (networks.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $network + * Name of the network resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $network, $optParams = array()) + { + $params = array('project' => $project, 'network' => $network); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified network resource. (networks.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $network + * Name of the network resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Network + */ + public function get($project, $network, $optParams = array()) + { + $params = array('project' => $project, 'network' => $network); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Network"); + } + /** + * Creates a network resource in the specified project using the data included + * in the request. (networks.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_Network $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_Network $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of network resources available to the specified project. + * (networks.listNetworks) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_NetworkList + */ + public function listNetworks($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_NetworkList"); + } +} + +/** + * The "projects" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $projects = $computeService->projects; + * + */ +class Google_Service_Compute_Projects_Resource extends Google_Service_Resource +{ + + /** + * Returns the specified project resource. (projects.get) + * + * @param string $project + * Name of the project resource to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Project + */ + public function get($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Project"); + } + /** + * Sets metadata common to all instances within the specified project using the + * data included in the request. (projects.setCommonInstanceMetadata) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_Metadata $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setCommonInstanceMetadata($project, Google_Service_Compute_Metadata $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setCommonInstanceMetadata', array($params), "Google_Service_Compute_Operation"); + } + /** + * Sets usage export location (projects.setUsageExportBucket) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_UsageExportLocation $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setUsageExportBucket($project, Google_Service_Compute_UsageExportLocation $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setUsageExportBucket', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "regionOperations" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $regionOperations = $computeService->regionOperations; + * + */ +class Google_Service_Compute_RegionOperations_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified region-specific operation resource. + * (regionOperations.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $operation + * Name of the operation resource to delete. + * @param array $optParams Optional parameters. + */ + public function delete($project, $region, $operation, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the specified region-specific operation resource. + * (regionOperations.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the zone scoping this request. + * @param string $operation + * Name of the operation resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function get($project, $region, $operation, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of operation resources contained within the specified + * region. (regionOperations.listRegionOperations) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_OperationList + */ + public function listRegionOperations($project, $region, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_OperationList"); + } +} + +/** + * The "regions" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $regions = $computeService->regions; + * + */ +class Google_Service_Compute_Regions_Resource extends Google_Service_Resource +{ + + /** + * Returns the specified region resource. (regions.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Region + */ + public function get($project, $region, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Region"); + } + /** + * Retrieves the list of region resources available to the specified project. + * (regions.listRegions) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_RegionList + */ + public function listRegions($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_RegionList"); + } +} + +/** + * The "routes" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $routes = $computeService->routes; + * + */ +class Google_Service_Compute_Routes_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified route resource. (routes.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $route + * Name of the route resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $route, $optParams = array()) + { + $params = array('project' => $project, 'route' => $route); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified route resource. (routes.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $route + * Name of the route resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Route + */ + public function get($project, $route, $optParams = array()) + { + $params = array('project' => $project, 'route' => $route); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Route"); + } + /** + * Creates a route resource in the specified project using the data included in + * the request. (routes.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_Route $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_Route $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of route resources available to the specified project. + * (routes.listRoutes) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_RouteList + */ + public function listRoutes($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_RouteList"); + } +} + +/** + * The "snapshots" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $snapshots = $computeService->snapshots; + * + */ +class Google_Service_Compute_Snapshots_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified persistent disk snapshot resource. (snapshots.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $snapshot + * Name of the persistent disk snapshot resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $snapshot, $optParams = array()) + { + $params = array('project' => $project, 'snapshot' => $snapshot); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified persistent disk snapshot resource. (snapshots.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $snapshot + * Name of the persistent disk snapshot resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Snapshot + */ + public function get($project, $snapshot, $optParams = array()) + { + $params = array('project' => $project, 'snapshot' => $snapshot); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Snapshot"); + } + /** + * Retrieves the list of persistent disk snapshot resources contained within the + * specified project. (snapshots.listSnapshots) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_SnapshotList + */ + public function listSnapshots($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_SnapshotList"); + } +} + +/** + * The "targetHttpProxies" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $targetHttpProxies = $computeService->targetHttpProxies; + * + */ +class Google_Service_Compute_TargetHttpProxies_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified TargetHttpProxy resource. (targetHttpProxies.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $targetHttpProxy + * Name of the TargetHttpProxy resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $targetHttpProxy, $optParams = array()) + { + $params = array('project' => $project, 'targetHttpProxy' => $targetHttpProxy); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified TargetHttpProxy resource. (targetHttpProxies.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $targetHttpProxy + * Name of the TargetHttpProxy resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_TargetHttpProxy + */ + public function get($project, $targetHttpProxy, $optParams = array()) + { + $params = array('project' => $project, 'targetHttpProxy' => $targetHttpProxy); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_TargetHttpProxy"); + } + /** + * Creates a TargetHttpProxy resource in the specified project using the data + * included in the request. (targetHttpProxies.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_TargetHttpProxy $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_TargetHttpProxy $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of TargetHttpProxy resources available to the specified + * project. (targetHttpProxies.listTargetHttpProxies) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_TargetHttpProxyList + */ + public function listTargetHttpProxies($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_TargetHttpProxyList"); + } + /** + * Changes the URL map for TargetHttpProxy. (targetHttpProxies.setUrlMap) + * + * @param string $project + * Name of the project scoping this request. + * @param string $targetHttpProxy + * Name of the TargetHttpProxy resource whose URL map is to be set. + * @param Google_UrlMapReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function setUrlMap($project, $targetHttpProxy, Google_Service_Compute_UrlMapReference $postBody, $optParams = array()) + { + $params = array('project' => $project, 'targetHttpProxy' => $targetHttpProxy, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setUrlMap', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "targetInstances" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $targetInstances = $computeService->targetInstances; + * + */ +class Google_Service_Compute_TargetInstances_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of target instances grouped by scope. + * (targetInstances.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_TargetInstanceAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_TargetInstanceAggregatedList"); + } + /** + * Deletes the specified TargetInstance resource. (targetInstances.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $targetInstance + * Name of the TargetInstance resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $zone, $targetInstance, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'targetInstance' => $targetInstance); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified TargetInstance resource. (targetInstances.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $targetInstance + * Name of the TargetInstance resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_TargetInstance + */ + public function get($project, $zone, $targetInstance, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'targetInstance' => $targetInstance); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_TargetInstance"); + } + /** + * Creates a TargetInstance resource in the specified project and zone using the + * data included in the request. (targetInstances.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param Google_TargetInstance $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, $zone, Google_Service_Compute_TargetInstance $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of TargetInstance resources available to the specified + * project and zone. (targetInstances.listTargetInstances) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_TargetInstanceList + */ + public function listTargetInstances($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_TargetInstanceList"); + } +} + +/** + * The "targetPools" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $targetPools = $computeService->targetPools; + * + */ +class Google_Service_Compute_TargetPools_Resource extends Google_Service_Resource +{ + + /** + * Adds health check URL to targetPool. (targetPools.addHealthCheck) + * + * @param string $project + * + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to which health_check_url is to be added. + * @param Google_TargetPoolsAddHealthCheckRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function addHealthCheck($project, $region, $targetPool, Google_Service_Compute_TargetPoolsAddHealthCheckRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('addHealthCheck', array($params), "Google_Service_Compute_Operation"); + } + /** + * Adds instance url to targetPool. (targetPools.addInstance) + * + * @param string $project + * + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to which instance_url is to be added. + * @param Google_TargetPoolsAddInstanceRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function addInstance($project, $region, $targetPool, Google_Service_Compute_TargetPoolsAddInstanceRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('addInstance', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of target pools grouped by scope. + * (targetPools.aggregatedList) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_TargetPoolAggregatedList + */ + public function aggregatedList($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('aggregatedList', array($params), "Google_Service_Compute_TargetPoolAggregatedList"); + } + /** + * Deletes the specified TargetPool resource. (targetPools.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $region, $targetPool, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified TargetPool resource. (targetPools.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_TargetPool + */ + public function get($project, $region, $targetPool, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_TargetPool"); + } + /** + * Gets the most recent health check results for each IP for the given instance + * that is referenced by given TargetPool. (targetPools.getHealth) + * + * @param string $project + * + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to which the queried instance belongs. + * @param Google_InstanceReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_TargetPoolInstanceHealth + */ + public function getHealth($project, $region, $targetPool, Google_Service_Compute_InstanceReference $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getHealth', array($params), "Google_Service_Compute_TargetPoolInstanceHealth"); + } + /** + * Creates a TargetPool resource in the specified project and region using the + * data included in the request. (targetPools.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param Google_TargetPool $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, $region, Google_Service_Compute_TargetPool $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of TargetPool resources available to the specified project + * and region. (targetPools.listTargetPools) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_TargetPoolList + */ + public function listTargetPools($project, $region, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_TargetPoolList"); + } + /** + * Removes health check URL from targetPool. (targetPools.removeHealthCheck) + * + * @param string $project + * + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to which health_check_url is to be removed. + * @param Google_TargetPoolsRemoveHealthCheckRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function removeHealthCheck($project, $region, $targetPool, Google_Service_Compute_TargetPoolsRemoveHealthCheckRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('removeHealthCheck', array($params), "Google_Service_Compute_Operation"); + } + /** + * Removes instance URL from targetPool. (targetPools.removeInstance) + * + * @param string $project + * + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource to which instance_url is to be removed. + * @param Google_TargetPoolsRemoveInstanceRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function removeInstance($project, $region, $targetPool, Google_Service_Compute_TargetPoolsRemoveInstanceRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('removeInstance', array($params), "Google_Service_Compute_Operation"); + } + /** + * Changes backup pool configurations. (targetPools.setBackup) + * + * @param string $project + * Name of the project scoping this request. + * @param string $region + * Name of the region scoping this request. + * @param string $targetPool + * Name of the TargetPool resource for which the backup is to be set. + * @param Google_TargetReference $postBody + * @param array $optParams Optional parameters. + * + * @opt_param float failoverRatio + * New failoverRatio value for the containing target pool. + * @return Google_Service_Compute_Operation + */ + public function setBackup($project, $region, $targetPool, Google_Service_Compute_TargetReference $postBody, $optParams = array()) + { + $params = array('project' => $project, 'region' => $region, 'targetPool' => $targetPool, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setBackup', array($params), "Google_Service_Compute_Operation"); + } +} + +/** + * The "urlMaps" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $urlMaps = $computeService->urlMaps; + * + */ +class Google_Service_Compute_UrlMaps_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified UrlMap resource. (urlMaps.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $urlMap + * Name of the UrlMap resource to delete. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function delete($project, $urlMap, $optParams = array()) + { + $params = array('project' => $project, 'urlMap' => $urlMap); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Compute_Operation"); + } + /** + * Returns the specified UrlMap resource. (urlMaps.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $urlMap + * Name of the UrlMap resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_UrlMap + */ + public function get($project, $urlMap, $optParams = array()) + { + $params = array('project' => $project, 'urlMap' => $urlMap); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_UrlMap"); + } + /** + * Creates a UrlMap resource in the specified project using the data included in + * the request. (urlMaps.insert) + * + * @param string $project + * Name of the project scoping this request. + * @param Google_UrlMap $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function insert($project, Google_Service_Compute_UrlMap $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of UrlMap resources available to the specified project. + * (urlMaps.listUrlMaps) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_UrlMapList + */ + public function listUrlMaps($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_UrlMapList"); + } + /** + * Update the entire content of the UrlMap resource. This method supports patch + * semantics. (urlMaps.patch) + * + * @param string $project + * Name of the project scoping this request. + * @param string $urlMap + * Name of the UrlMap resource to update. + * @param Google_UrlMap $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function patch($project, $urlMap, Google_Service_Compute_UrlMap $postBody, $optParams = array()) + { + $params = array('project' => $project, 'urlMap' => $urlMap, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Compute_Operation"); + } + /** + * Update the entire content of the UrlMap resource. (urlMaps.update) + * + * @param string $project + * Name of the project scoping this request. + * @param string $urlMap + * Name of the UrlMap resource to update. + * @param Google_UrlMap $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function update($project, $urlMap, Google_Service_Compute_UrlMap $postBody, $optParams = array()) + { + $params = array('project' => $project, 'urlMap' => $urlMap, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Compute_Operation"); + } + /** + * Run static validation for the UrlMap. In particular, the tests of the + * provided UrlMap will be run. Calling this method does NOT create the UrlMap. + * (urlMaps.validate) + * + * @param string $project + * Name of the project scoping this request. + * @param string $urlMap + * Name of the UrlMap resource to be validated as. + * @param Google_UrlMapsValidateRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_UrlMapsValidateResponse + */ + public function validate($project, $urlMap, Google_Service_Compute_UrlMapsValidateRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'urlMap' => $urlMap, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('validate', array($params), "Google_Service_Compute_UrlMapsValidateResponse"); + } +} + +/** + * The "zoneOperations" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $zoneOperations = $computeService->zoneOperations; + * + */ +class Google_Service_Compute_ZoneOperations_Resource extends Google_Service_Resource +{ + + /** + * Deletes the specified zone-specific operation resource. + * (zoneOperations.delete) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $operation + * Name of the operation resource to delete. + * @param array $optParams Optional parameters. + */ + public function delete($project, $zone, $operation, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the specified zone-specific operation resource. + * (zoneOperations.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $operation + * Name of the operation resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Operation + */ + public function get($project, $zone, $operation, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Operation"); + } + /** + * Retrieves the list of operation resources contained within the specified + * zone. (zoneOperations.listZoneOperations) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_OperationList + */ + public function listZoneOperations($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_OperationList"); + } +} + +/** + * The "zones" collection of methods. + * Typical usage is: + * + * $computeService = new Google_Service_Compute(...); + * $zones = $computeService->zones; + * + */ +class Google_Service_Compute_Zones_Resource extends Google_Service_Resource +{ + + /** + * Returns the specified zone resource. (zones.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Compute_Zone + */ + public function get($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Compute_Zone"); + } + /** + * Retrieves the list of zone resources available to the specified project. + * (zones.listZones) + * + * @param string $project + * Name of the project scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Compute_ZoneList + */ + public function listZones($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Compute_ZoneList"); + } +} + + + + +class Google_Service_Compute_AccessConfig extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $name; + public $natIP; + public $type; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNatIP($natIP) + { + $this->natIP = $natIP; + } + + public function getNatIP() + { + return $this->natIP; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Compute_Address extends Google_Collection +{ + protected $collection_key = 'users'; + protected $internal_gapi_mappings = array( + ); + public $address; + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $name; + public $region; + public $selfLink; + public $status; + public $users; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUsers($users) + { + $this->users = $users; + } + + public function getUsers() + { + return $this->users; + } +} + +class Google_Service_Compute_AddressAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_AddressesScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_AddressAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_AddressList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Address'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_AddressesScopedList extends Google_Collection +{ + protected $collection_key = 'addresses'; + protected $internal_gapi_mappings = array( + ); + protected $addressesType = 'Google_Service_Compute_Address'; + protected $addressesDataType = 'array'; + protected $warningType = 'Google_Service_Compute_AddressesScopedListWarning'; + protected $warningDataType = ''; + + public function setAddresses($addresses) + { + $this->addresses = $addresses; + } + + public function getAddresses() + { + return $this->addresses; + } + + public function setWarning(Google_Service_Compute_AddressesScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_AddressesScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_AddressesScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_AddressesScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_AttachedDisk extends Google_Collection +{ + protected $collection_key = 'licenses'; + protected $internal_gapi_mappings = array( + ); + public $autoDelete; + public $boot; + public $deviceName; + public $index; + protected $initializeParamsType = 'Google_Service_Compute_AttachedDiskInitializeParams'; + protected $initializeParamsDataType = ''; + public $kind; + public $licenses; + public $mode; + public $source; + public $type; + + public function setAutoDelete($autoDelete) + { + $this->autoDelete = $autoDelete; + } + + public function getAutoDelete() + { + return $this->autoDelete; + } + + public function setBoot($boot) + { + $this->boot = $boot; + } + + public function getBoot() + { + return $this->boot; + } + + public function setDeviceName($deviceName) + { + $this->deviceName = $deviceName; + } + + public function getDeviceName() + { + return $this->deviceName; + } + + public function setIndex($index) + { + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } + + public function setInitializeParams(Google_Service_Compute_AttachedDiskInitializeParams $initializeParams) + { + $this->initializeParams = $initializeParams; + } + + public function getInitializeParams() + { + return $this->initializeParams; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLicenses($licenses) + { + $this->licenses = $licenses; + } + + public function getLicenses() + { + return $this->licenses; + } + + public function setMode($mode) + { + $this->mode = $mode; + } + + public function getMode() + { + return $this->mode; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Compute_AttachedDiskInitializeParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $diskName; + public $diskSizeGb; + public $diskType; + public $sourceImage; + + public function setDiskName($diskName) + { + $this->diskName = $diskName; + } + + public function getDiskName() + { + return $this->diskName; + } + + public function setDiskSizeGb($diskSizeGb) + { + $this->diskSizeGb = $diskSizeGb; + } + + public function getDiskSizeGb() + { + return $this->diskSizeGb; + } + + public function setDiskType($diskType) + { + $this->diskType = $diskType; + } + + public function getDiskType() + { + return $this->diskType; + } + + public function setSourceImage($sourceImage) + { + $this->sourceImage = $sourceImage; + } + + public function getSourceImage() + { + return $this->sourceImage; + } +} + +class Google_Service_Compute_Backend extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $balancingMode; + public $capacityScaler; + public $description; + public $group; + public $maxRate; + public $maxRatePerInstance; + public $maxUtilization; + + public function setBalancingMode($balancingMode) + { + $this->balancingMode = $balancingMode; + } + + public function getBalancingMode() + { + return $this->balancingMode; + } + + public function setCapacityScaler($capacityScaler) + { + $this->capacityScaler = $capacityScaler; + } + + public function getCapacityScaler() + { + return $this->capacityScaler; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setGroup($group) + { + $this->group = $group; + } + + public function getGroup() + { + return $this->group; + } + + public function setMaxRate($maxRate) + { + $this->maxRate = $maxRate; + } + + public function getMaxRate() + { + return $this->maxRate; + } + + public function setMaxRatePerInstance($maxRatePerInstance) + { + $this->maxRatePerInstance = $maxRatePerInstance; + } + + public function getMaxRatePerInstance() + { + return $this->maxRatePerInstance; + } + + public function setMaxUtilization($maxUtilization) + { + $this->maxUtilization = $maxUtilization; + } + + public function getMaxUtilization() + { + return $this->maxUtilization; + } +} + +class Google_Service_Compute_BackendService extends Google_Collection +{ + protected $collection_key = 'healthChecks'; + protected $internal_gapi_mappings = array( + ); + protected $backendsType = 'Google_Service_Compute_Backend'; + protected $backendsDataType = 'array'; + public $creationTimestamp; + public $description; + public $fingerprint; + public $healthChecks; + public $id; + public $kind; + public $name; + public $port; + public $portName; + public $protocol; + public $selfLink; + public $timeoutSec; + + public function setBackends($backends) + { + $this->backends = $backends; + } + + public function getBackends() + { + return $this->backends; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPort($port) + { + $this->port = $port; + } + + public function getPort() + { + return $this->port; + } + + public function setPortName($portName) + { + $this->portName = $portName; + } + + public function getPortName() + { + return $this->portName; + } + + public function setProtocol($protocol) + { + $this->protocol = $protocol; + } + + public function getProtocol() + { + return $this->protocol; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTimeoutSec($timeoutSec) + { + $this->timeoutSec = $timeoutSec; + } + + public function getTimeoutSec() + { + return $this->timeoutSec; + } +} + +class Google_Service_Compute_BackendServiceGroupHealth extends Google_Collection +{ + protected $collection_key = 'healthStatus'; + protected $internal_gapi_mappings = array( + ); + protected $healthStatusType = 'Google_Service_Compute_HealthStatus'; + protected $healthStatusDataType = 'array'; + public $kind; + + public function setHealthStatus($healthStatus) + { + $this->healthStatus = $healthStatus; + } + + public function getHealthStatus() + { + return $this->healthStatus; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Compute_BackendServiceList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_BackendService'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_DeprecationStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deleted; + public $deprecated; + public $obsolete; + public $replacement; + public $state; + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setDeprecated($deprecated) + { + $this->deprecated = $deprecated; + } + + public function getDeprecated() + { + return $this->deprecated; + } + + public function setObsolete($obsolete) + { + $this->obsolete = $obsolete; + } + + public function getObsolete() + { + return $this->obsolete; + } + + public function setReplacement($replacement) + { + $this->replacement = $replacement; + } + + public function getReplacement() + { + return $this->replacement; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_Compute_Disk extends Google_Collection +{ + protected $collection_key = 'licenses'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $licenses; + public $name; + public $options; + public $selfLink; + public $sizeGb; + public $sourceImage; + public $sourceImageId; + public $sourceSnapshot; + public $sourceSnapshotId; + public $status; + public $type; + public $zone; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLicenses($licenses) + { + $this->licenses = $licenses; + } + + public function getLicenses() + { + return $this->licenses; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOptions($options) + { + $this->options = $options; + } + + public function getOptions() + { + return $this->options; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSizeGb($sizeGb) + { + $this->sizeGb = $sizeGb; + } + + public function getSizeGb() + { + return $this->sizeGb; + } + + public function setSourceImage($sourceImage) + { + $this->sourceImage = $sourceImage; + } + + public function getSourceImage() + { + return $this->sourceImage; + } + + public function setSourceImageId($sourceImageId) + { + $this->sourceImageId = $sourceImageId; + } + + public function getSourceImageId() + { + return $this->sourceImageId; + } + + public function setSourceSnapshot($sourceSnapshot) + { + $this->sourceSnapshot = $sourceSnapshot; + } + + public function getSourceSnapshot() + { + return $this->sourceSnapshot; + } + + public function setSourceSnapshotId($sourceSnapshotId) + { + $this->sourceSnapshotId = $sourceSnapshotId; + } + + public function getSourceSnapshotId() + { + return $this->sourceSnapshotId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Compute_DiskAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_DisksScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_DiskAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_DiskList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Disk'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_DiskType extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $defaultDiskSizeGb; + protected $deprecatedType = 'Google_Service_Compute_DeprecationStatus'; + protected $deprecatedDataType = ''; + public $description; + public $id; + public $kind; + public $name; + public $selfLink; + public $validDiskSize; + public $zone; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDefaultDiskSizeGb($defaultDiskSizeGb) + { + $this->defaultDiskSizeGb = $defaultDiskSizeGb; + } + + public function getDefaultDiskSizeGb() + { + return $this->defaultDiskSizeGb; + } + + public function setDeprecated(Google_Service_Compute_DeprecationStatus $deprecated) + { + $this->deprecated = $deprecated; + } + + public function getDeprecated() + { + return $this->deprecated; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setValidDiskSize($validDiskSize) + { + $this->validDiskSize = $validDiskSize; + } + + public function getValidDiskSize() + { + return $this->validDiskSize; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Compute_DiskTypeAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_DiskTypesScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_DiskTypeAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_DiskTypeList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_DiskType'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_DiskTypesScopedList extends Google_Collection +{ + protected $collection_key = 'diskTypes'; + protected $internal_gapi_mappings = array( + ); + protected $diskTypesType = 'Google_Service_Compute_DiskType'; + protected $diskTypesDataType = 'array'; + protected $warningType = 'Google_Service_Compute_DiskTypesScopedListWarning'; + protected $warningDataType = ''; + + public function setDiskTypes($diskTypes) + { + $this->diskTypes = $diskTypes; + } + + public function getDiskTypes() + { + return $this->diskTypes; + } + + public function setWarning(Google_Service_Compute_DiskTypesScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_DiskTypesScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_DiskTypesScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_DiskTypesScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_DisksScopedList extends Google_Collection +{ + protected $collection_key = 'disks'; + protected $internal_gapi_mappings = array( + ); + protected $disksType = 'Google_Service_Compute_Disk'; + protected $disksDataType = 'array'; + protected $warningType = 'Google_Service_Compute_DisksScopedListWarning'; + protected $warningDataType = ''; + + public function setDisks($disks) + { + $this->disks = $disks; + } + + public function getDisks() + { + return $this->disks; + } + + public function setWarning(Google_Service_Compute_DisksScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_DisksScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_DisksScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_DisksScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_Firewall extends Google_Collection +{ + protected $collection_key = 'targetTags'; + protected $internal_gapi_mappings = array( + ); + protected $allowedType = 'Google_Service_Compute_FirewallAllowed'; + protected $allowedDataType = 'array'; + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $name; + public $network; + public $selfLink; + public $sourceRanges; + public $sourceTags; + public $targetTags; + + public function setAllowed($allowed) + { + $this->allowed = $allowed; + } + + public function getAllowed() + { + return $this->allowed; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSourceRanges($sourceRanges) + { + $this->sourceRanges = $sourceRanges; + } + + public function getSourceRanges() + { + return $this->sourceRanges; + } + + public function setSourceTags($sourceTags) + { + $this->sourceTags = $sourceTags; + } + + public function getSourceTags() + { + return $this->sourceTags; + } + + public function setTargetTags($targetTags) + { + $this->targetTags = $targetTags; + } + + public function getTargetTags() + { + return $this->targetTags; + } +} + +class Google_Service_Compute_FirewallAllowed extends Google_Collection +{ + protected $collection_key = 'ports'; + protected $internal_gapi_mappings = array( + "iPProtocol" => "IPProtocol", + ); + public $iPProtocol; + public $ports; + + public function setIPProtocol($iPProtocol) + { + $this->iPProtocol = $iPProtocol; + } + + public function getIPProtocol() + { + return $this->iPProtocol; + } + + public function setPorts($ports) + { + $this->ports = $ports; + } + + public function getPorts() + { + return $this->ports; + } +} + +class Google_Service_Compute_FirewallList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Firewall'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ForwardingRule extends Google_Model +{ + protected $internal_gapi_mappings = array( + "iPAddress" => "IPAddress", + "iPProtocol" => "IPProtocol", + ); + public $iPAddress; + public $iPProtocol; + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $name; + public $portRange; + public $region; + public $selfLink; + public $target; + + public function setIPAddress($iPAddress) + { + $this->iPAddress = $iPAddress; + } + + public function getIPAddress() + { + return $this->iPAddress; + } + + public function setIPProtocol($iPProtocol) + { + $this->iPProtocol = $iPProtocol; + } + + public function getIPProtocol() + { + return $this->iPProtocol; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPortRange($portRange) + { + $this->portRange = $portRange; + } + + public function getPortRange() + { + return $this->portRange; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTarget($target) + { + $this->target = $target; + } + + public function getTarget() + { + return $this->target; + } +} + +class Google_Service_Compute_ForwardingRuleAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_ForwardingRulesScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ForwardingRuleAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_ForwardingRuleList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_ForwardingRule'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ForwardingRulesScopedList extends Google_Collection +{ + protected $collection_key = 'forwardingRules'; + protected $internal_gapi_mappings = array( + ); + protected $forwardingRulesType = 'Google_Service_Compute_ForwardingRule'; + protected $forwardingRulesDataType = 'array'; + protected $warningType = 'Google_Service_Compute_ForwardingRulesScopedListWarning'; + protected $warningDataType = ''; + + public function setForwardingRules($forwardingRules) + { + $this->forwardingRules = $forwardingRules; + } + + public function getForwardingRules() + { + return $this->forwardingRules; + } + + public function setWarning(Google_Service_Compute_ForwardingRulesScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_ForwardingRulesScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_ForwardingRulesScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_ForwardingRulesScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_HealthCheckReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $healthCheck; + + public function setHealthCheck($healthCheck) + { + $this->healthCheck = $healthCheck; + } + + public function getHealthCheck() + { + return $this->healthCheck; + } +} + +class Google_Service_Compute_HealthStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $healthState; + public $instance; + public $ipAddress; + public $port; + + public function setHealthState($healthState) + { + $this->healthState = $healthState; + } + + public function getHealthState() + { + return $this->healthState; + } + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } + + public function setIpAddress($ipAddress) + { + $this->ipAddress = $ipAddress; + } + + public function getIpAddress() + { + return $this->ipAddress; + } + + public function setPort($port) + { + $this->port = $port; + } + + public function getPort() + { + return $this->port; + } +} + +class Google_Service_Compute_HostRule extends Google_Collection +{ + protected $collection_key = 'hosts'; + protected $internal_gapi_mappings = array( + ); + public $description; + public $hosts; + public $pathMatcher; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHosts($hosts) + { + $this->hosts = $hosts; + } + + public function getHosts() + { + return $this->hosts; + } + + public function setPathMatcher($pathMatcher) + { + $this->pathMatcher = $pathMatcher; + } + + public function getPathMatcher() + { + return $this->pathMatcher; + } +} + +class Google_Service_Compute_HttpHealthCheck extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $checkIntervalSec; + public $creationTimestamp; + public $description; + public $healthyThreshold; + public $host; + public $id; + public $kind; + public $name; + public $port; + public $requestPath; + public $selfLink; + public $timeoutSec; + public $unhealthyThreshold; + + public function setCheckIntervalSec($checkIntervalSec) + { + $this->checkIntervalSec = $checkIntervalSec; + } + + public function getCheckIntervalSec() + { + return $this->checkIntervalSec; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHealthyThreshold($healthyThreshold) + { + $this->healthyThreshold = $healthyThreshold; + } + + public function getHealthyThreshold() + { + return $this->healthyThreshold; + } + + public function setHost($host) + { + $this->host = $host; + } + + public function getHost() + { + return $this->host; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPort($port) + { + $this->port = $port; + } + + public function getPort() + { + return $this->port; + } + + public function setRequestPath($requestPath) + { + $this->requestPath = $requestPath; + } + + public function getRequestPath() + { + return $this->requestPath; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTimeoutSec($timeoutSec) + { + $this->timeoutSec = $timeoutSec; + } + + public function getTimeoutSec() + { + return $this->timeoutSec; + } + + public function setUnhealthyThreshold($unhealthyThreshold) + { + $this->unhealthyThreshold = $unhealthyThreshold; + } + + public function getUnhealthyThreshold() + { + return $this->unhealthyThreshold; + } +} + +class Google_Service_Compute_HttpHealthCheckList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_HttpHealthCheck'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_Image extends Google_Collection +{ + protected $collection_key = 'licenses'; + protected $internal_gapi_mappings = array( + ); + public $archiveSizeBytes; + public $creationTimestamp; + protected $deprecatedType = 'Google_Service_Compute_DeprecationStatus'; + protected $deprecatedDataType = ''; + public $description; + public $diskSizeGb; + public $id; + public $kind; + public $licenses; + public $name; + protected $rawDiskType = 'Google_Service_Compute_ImageRawDisk'; + protected $rawDiskDataType = ''; + public $selfLink; + public $sourceDisk; + public $sourceDiskId; + public $sourceType; + public $status; + + public function setArchiveSizeBytes($archiveSizeBytes) + { + $this->archiveSizeBytes = $archiveSizeBytes; + } + + public function getArchiveSizeBytes() + { + return $this->archiveSizeBytes; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDeprecated(Google_Service_Compute_DeprecationStatus $deprecated) + { + $this->deprecated = $deprecated; + } + + public function getDeprecated() + { + return $this->deprecated; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDiskSizeGb($diskSizeGb) + { + $this->diskSizeGb = $diskSizeGb; + } + + public function getDiskSizeGb() + { + return $this->diskSizeGb; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLicenses($licenses) + { + $this->licenses = $licenses; + } + + public function getLicenses() + { + return $this->licenses; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRawDisk(Google_Service_Compute_ImageRawDisk $rawDisk) + { + $this->rawDisk = $rawDisk; + } + + public function getRawDisk() + { + return $this->rawDisk; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSourceDisk($sourceDisk) + { + $this->sourceDisk = $sourceDisk; + } + + public function getSourceDisk() + { + return $this->sourceDisk; + } + + public function setSourceDiskId($sourceDiskId) + { + $this->sourceDiskId = $sourceDiskId; + } + + public function getSourceDiskId() + { + return $this->sourceDiskId; + } + + public function setSourceType($sourceType) + { + $this->sourceType = $sourceType; + } + + public function getSourceType() + { + return $this->sourceType; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Compute_ImageList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Image'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ImageRawDisk extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $containerType; + public $sha1Checksum; + public $source; + + public function setContainerType($containerType) + { + $this->containerType = $containerType; + } + + public function getContainerType() + { + return $this->containerType; + } + + public function setSha1Checksum($sha1Checksum) + { + $this->sha1Checksum = $sha1Checksum; + } + + public function getSha1Checksum() + { + return $this->sha1Checksum; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } +} + +class Google_Service_Compute_Instance extends Google_Collection +{ + protected $collection_key = 'serviceAccounts'; + protected $internal_gapi_mappings = array( + ); + public $canIpForward; + public $creationTimestamp; + public $description; + protected $disksType = 'Google_Service_Compute_AttachedDisk'; + protected $disksDataType = 'array'; + public $id; + public $kind; + public $machineType; + protected $metadataType = 'Google_Service_Compute_Metadata'; + protected $metadataDataType = ''; + public $name; + protected $networkInterfacesType = 'Google_Service_Compute_NetworkInterface'; + protected $networkInterfacesDataType = 'array'; + protected $schedulingType = 'Google_Service_Compute_Scheduling'; + protected $schedulingDataType = ''; + public $selfLink; + protected $serviceAccountsType = 'Google_Service_Compute_ServiceAccount'; + protected $serviceAccountsDataType = 'array'; + public $status; + public $statusMessage; + protected $tagsType = 'Google_Service_Compute_Tags'; + protected $tagsDataType = ''; + public $zone; + + public function setCanIpForward($canIpForward) + { + $this->canIpForward = $canIpForward; + } + + public function getCanIpForward() + { + return $this->canIpForward; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDisks($disks) + { + $this->disks = $disks; + } + + public function getDisks() + { + return $this->disks; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMachineType($machineType) + { + $this->machineType = $machineType; + } + + public function getMachineType() + { + return $this->machineType; + } + + public function setMetadata(Google_Service_Compute_Metadata $metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetworkInterfaces($networkInterfaces) + { + $this->networkInterfaces = $networkInterfaces; + } + + public function getNetworkInterfaces() + { + return $this->networkInterfaces; + } + + public function setScheduling(Google_Service_Compute_Scheduling $scheduling) + { + $this->scheduling = $scheduling; + } + + public function getScheduling() + { + return $this->scheduling; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setServiceAccounts($serviceAccounts) + { + $this->serviceAccounts = $serviceAccounts; + } + + public function getServiceAccounts() + { + return $this->serviceAccounts; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setStatusMessage($statusMessage) + { + $this->statusMessage = $statusMessage; + } + + public function getStatusMessage() + { + return $this->statusMessage; + } + + public function setTags(Google_Service_Compute_Tags $tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Compute_InstanceAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_InstancesScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_InstanceAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_InstanceList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Instance'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_InstanceReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $instance; + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } +} + +class Google_Service_Compute_InstancesScopedList extends Google_Collection +{ + protected $collection_key = 'instances'; + protected $internal_gapi_mappings = array( + ); + protected $instancesType = 'Google_Service_Compute_Instance'; + protected $instancesDataType = 'array'; + protected $warningType = 'Google_Service_Compute_InstancesScopedListWarning'; + protected $warningDataType = ''; + + public function setInstances($instances) + { + $this->instances = $instances; + } + + public function getInstances() + { + return $this->instances; + } + + public function setWarning(Google_Service_Compute_InstancesScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_InstancesScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_InstancesScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_InstancesScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_License extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $chargesUseFee; + public $kind; + public $name; + public $selfLink; + + public function setChargesUseFee($chargesUseFee) + { + $this->chargesUseFee = $chargesUseFee; + } + + public function getChargesUseFee() + { + return $this->chargesUseFee; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_MachineType extends Google_Collection +{ + protected $collection_key = 'scratchDisks'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + protected $deprecatedType = 'Google_Service_Compute_DeprecationStatus'; + protected $deprecatedDataType = ''; + public $description; + public $guestCpus; + public $id; + public $imageSpaceGb; + public $kind; + public $maximumPersistentDisks; + public $maximumPersistentDisksSizeGb; + public $memoryMb; + public $name; + protected $scratchDisksType = 'Google_Service_Compute_MachineTypeScratchDisks'; + protected $scratchDisksDataType = 'array'; + public $selfLink; + public $zone; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDeprecated(Google_Service_Compute_DeprecationStatus $deprecated) + { + $this->deprecated = $deprecated; + } + + public function getDeprecated() + { + return $this->deprecated; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setGuestCpus($guestCpus) + { + $this->guestCpus = $guestCpus; + } + + public function getGuestCpus() + { + return $this->guestCpus; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImageSpaceGb($imageSpaceGb) + { + $this->imageSpaceGb = $imageSpaceGb; + } + + public function getImageSpaceGb() + { + return $this->imageSpaceGb; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaximumPersistentDisks($maximumPersistentDisks) + { + $this->maximumPersistentDisks = $maximumPersistentDisks; + } + + public function getMaximumPersistentDisks() + { + return $this->maximumPersistentDisks; + } + + public function setMaximumPersistentDisksSizeGb($maximumPersistentDisksSizeGb) + { + $this->maximumPersistentDisksSizeGb = $maximumPersistentDisksSizeGb; + } + + public function getMaximumPersistentDisksSizeGb() + { + return $this->maximumPersistentDisksSizeGb; + } + + public function setMemoryMb($memoryMb) + { + $this->memoryMb = $memoryMb; + } + + public function getMemoryMb() + { + return $this->memoryMb; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setScratchDisks($scratchDisks) + { + $this->scratchDisks = $scratchDisks; + } + + public function getScratchDisks() + { + return $this->scratchDisks; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Compute_MachineTypeAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_MachineTypesScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_MachineTypeAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_MachineTypeList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_MachineType'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_MachineTypeScratchDisks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $diskGb; + + public function setDiskGb($diskGb) + { + $this->diskGb = $diskGb; + } + + public function getDiskGb() + { + return $this->diskGb; + } +} + +class Google_Service_Compute_MachineTypesScopedList extends Google_Collection +{ + protected $collection_key = 'machineTypes'; + protected $internal_gapi_mappings = array( + ); + protected $machineTypesType = 'Google_Service_Compute_MachineType'; + protected $machineTypesDataType = 'array'; + protected $warningType = 'Google_Service_Compute_MachineTypesScopedListWarning'; + protected $warningDataType = ''; + + public function setMachineTypes($machineTypes) + { + $this->machineTypes = $machineTypes; + } + + public function getMachineTypes() + { + return $this->machineTypes; + } + + public function setWarning(Google_Service_Compute_MachineTypesScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_MachineTypesScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_MachineTypesScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_MachineTypesScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_Metadata extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $fingerprint; + protected $itemsType = 'Google_Service_Compute_MetadataItems'; + protected $itemsDataType = 'array'; + public $kind; + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Compute_MetadataItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_Network extends Google_Model +{ + protected $internal_gapi_mappings = array( + "iPv4Range" => "IPv4Range", + ); + public $iPv4Range; + public $creationTimestamp; + public $description; + public $gatewayIPv4; + public $id; + public $kind; + public $name; + public $selfLink; + + public function setIPv4Range($iPv4Range) + { + $this->iPv4Range = $iPv4Range; + } + + public function getIPv4Range() + { + return $this->iPv4Range; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setGatewayIPv4($gatewayIPv4) + { + $this->gatewayIPv4 = $gatewayIPv4; + } + + public function getGatewayIPv4() + { + return $this->gatewayIPv4; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_NetworkInterface extends Google_Collection +{ + protected $collection_key = 'accessConfigs'; + protected $internal_gapi_mappings = array( + ); + protected $accessConfigsType = 'Google_Service_Compute_AccessConfig'; + protected $accessConfigsDataType = 'array'; + public $name; + public $network; + public $networkIP; + + public function setAccessConfigs($accessConfigs) + { + $this->accessConfigs = $accessConfigs; + } + + public function getAccessConfigs() + { + return $this->accessConfigs; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setNetworkIP($networkIP) + { + $this->networkIP = $networkIP; + } + + public function getNetworkIP() + { + return $this->networkIP; + } +} + +class Google_Service_Compute_NetworkList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Network'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_Operation extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $clientOperationId; + public $creationTimestamp; + public $endTime; + protected $errorType = 'Google_Service_Compute_OperationError'; + protected $errorDataType = ''; + public $httpErrorMessage; + public $httpErrorStatusCode; + public $id; + public $insertTime; + public $kind; + public $name; + public $operationType; + public $progress; + public $region; + public $selfLink; + public $startTime; + public $status; + public $statusMessage; + public $targetId; + public $targetLink; + public $user; + protected $warningsType = 'Google_Service_Compute_OperationWarnings'; + protected $warningsDataType = 'array'; + public $zone; + + public function setClientOperationId($clientOperationId) + { + $this->clientOperationId = $clientOperationId; + } + + public function getClientOperationId() + { + return $this->clientOperationId; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setError(Google_Service_Compute_OperationError $error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setHttpErrorMessage($httpErrorMessage) + { + $this->httpErrorMessage = $httpErrorMessage; + } + + public function getHttpErrorMessage() + { + return $this->httpErrorMessage; + } + + public function setHttpErrorStatusCode($httpErrorStatusCode) + { + $this->httpErrorStatusCode = $httpErrorStatusCode; + } + + public function getHttpErrorStatusCode() + { + return $this->httpErrorStatusCode; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInsertTime($insertTime) + { + $this->insertTime = $insertTime; + } + + public function getInsertTime() + { + return $this->insertTime; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOperationType($operationType) + { + $this->operationType = $operationType; + } + + public function getOperationType() + { + return $this->operationType; + } + + public function setProgress($progress) + { + $this->progress = $progress; + } + + public function getProgress() + { + return $this->progress; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setStatusMessage($statusMessage) + { + $this->statusMessage = $statusMessage; + } + + public function getStatusMessage() + { + return $this->statusMessage; + } + + public function setTargetId($targetId) + { + $this->targetId = $targetId; + } + + public function getTargetId() + { + return $this->targetId; + } + + public function setTargetLink($targetLink) + { + $this->targetLink = $targetLink; + } + + public function getTargetLink() + { + return $this->targetLink; + } + + public function setUser($user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Compute_OperationAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_OperationsScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_OperationAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_OperationError extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $errorsType = 'Google_Service_Compute_OperationErrorErrors'; + protected $errorsDataType = 'array'; + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_Compute_OperationErrorErrors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $location; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_OperationList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Operation'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_OperationWarnings extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_OperationWarningsData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_OperationWarningsData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_OperationsScopedList extends Google_Collection +{ + protected $collection_key = 'operations'; + protected $internal_gapi_mappings = array( + ); + protected $operationsType = 'Google_Service_Compute_Operation'; + protected $operationsDataType = 'array'; + protected $warningType = 'Google_Service_Compute_OperationsScopedListWarning'; + protected $warningDataType = ''; + + public function setOperations($operations) + { + $this->operations = $operations; + } + + public function getOperations() + { + return $this->operations; + } + + public function setWarning(Google_Service_Compute_OperationsScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_OperationsScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_OperationsScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_OperationsScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_PathMatcher extends Google_Collection +{ + protected $collection_key = 'pathRules'; + protected $internal_gapi_mappings = array( + ); + public $defaultService; + public $description; + public $name; + protected $pathRulesType = 'Google_Service_Compute_PathRule'; + protected $pathRulesDataType = 'array'; + + public function setDefaultService($defaultService) + { + $this->defaultService = $defaultService; + } + + public function getDefaultService() + { + return $this->defaultService; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPathRules($pathRules) + { + $this->pathRules = $pathRules; + } + + public function getPathRules() + { + return $this->pathRules; + } +} + +class Google_Service_Compute_PathRule extends Google_Collection +{ + protected $collection_key = 'paths'; + protected $internal_gapi_mappings = array( + ); + public $paths; + public $service; + + public function setPaths($paths) + { + $this->paths = $paths; + } + + public function getPaths() + { + return $this->paths; + } + + public function setService($service) + { + $this->service = $service; + } + + public function getService() + { + return $this->service; + } +} + +class Google_Service_Compute_Project extends Google_Collection +{ + protected $collection_key = 'quotas'; + protected $internal_gapi_mappings = array( + ); + protected $commonInstanceMetadataType = 'Google_Service_Compute_Metadata'; + protected $commonInstanceMetadataDataType = ''; + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $name; + protected $quotasType = 'Google_Service_Compute_Quota'; + protected $quotasDataType = 'array'; + public $selfLink; + protected $usageExportLocationType = 'Google_Service_Compute_UsageExportLocation'; + protected $usageExportLocationDataType = ''; + + public function setCommonInstanceMetadata(Google_Service_Compute_Metadata $commonInstanceMetadata) + { + $this->commonInstanceMetadata = $commonInstanceMetadata; + } + + public function getCommonInstanceMetadata() + { + return $this->commonInstanceMetadata; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setQuotas($quotas) + { + $this->quotas = $quotas; + } + + public function getQuotas() + { + return $this->quotas; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUsageExportLocation(Google_Service_Compute_UsageExportLocation $usageExportLocation) + { + $this->usageExportLocation = $usageExportLocation; + } + + public function getUsageExportLocation() + { + return $this->usageExportLocation; + } +} + +class Google_Service_Compute_Quota extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $limit; + public $metric; + public $usage; + + public function setLimit($limit) + { + $this->limit = $limit; + } + + public function getLimit() + { + return $this->limit; + } + + public function setMetric($metric) + { + $this->metric = $metric; + } + + public function getMetric() + { + return $this->metric; + } + + public function setUsage($usage) + { + $this->usage = $usage; + } + + public function getUsage() + { + return $this->usage; + } +} + +class Google_Service_Compute_Region extends Google_Collection +{ + protected $collection_key = 'zones'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + protected $deprecatedType = 'Google_Service_Compute_DeprecationStatus'; + protected $deprecatedDataType = ''; + public $description; + public $id; + public $kind; + public $name; + protected $quotasType = 'Google_Service_Compute_Quota'; + protected $quotasDataType = 'array'; + public $selfLink; + public $status; + public $zones; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDeprecated(Google_Service_Compute_DeprecationStatus $deprecated) + { + $this->deprecated = $deprecated; + } + + public function getDeprecated() + { + return $this->deprecated; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setQuotas($quotas) + { + $this->quotas = $quotas; + } + + public function getQuotas() + { + return $this->quotas; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setZones($zones) + { + $this->zones = $zones; + } + + public function getZones() + { + return $this->zones; + } +} + +class Google_Service_Compute_RegionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Region'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ResourceGroupReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $group; + + public function setGroup($group) + { + $this->group = $group; + } + + public function getGroup() + { + return $this->group; + } +} + +class Google_Service_Compute_Route extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $description; + public $destRange; + public $id; + public $kind; + public $name; + public $network; + public $nextHopGateway; + public $nextHopInstance; + public $nextHopIp; + public $nextHopNetwork; + public $priority; + public $selfLink; + public $tags; + protected $warningsType = 'Google_Service_Compute_RouteWarnings'; + protected $warningsDataType = 'array'; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDestRange($destRange) + { + $this->destRange = $destRange; + } + + public function getDestRange() + { + return $this->destRange; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setNextHopGateway($nextHopGateway) + { + $this->nextHopGateway = $nextHopGateway; + } + + public function getNextHopGateway() + { + return $this->nextHopGateway; + } + + public function setNextHopInstance($nextHopInstance) + { + $this->nextHopInstance = $nextHopInstance; + } + + public function getNextHopInstance() + { + return $this->nextHopInstance; + } + + public function setNextHopIp($nextHopIp) + { + $this->nextHopIp = $nextHopIp; + } + + public function getNextHopIp() + { + return $this->nextHopIp; + } + + public function setNextHopNetwork($nextHopNetwork) + { + $this->nextHopNetwork = $nextHopNetwork; + } + + public function getNextHopNetwork() + { + return $this->nextHopNetwork; + } + + public function setPriority($priority) + { + $this->priority = $priority; + } + + public function getPriority() + { + return $this->priority; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_Compute_RouteList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Route'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_RouteWarnings extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_RouteWarningsData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_RouteWarningsData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_Scheduling extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $automaticRestart; + public $onHostMaintenance; + + public function setAutomaticRestart($automaticRestart) + { + $this->automaticRestart = $automaticRestart; + } + + public function getAutomaticRestart() + { + return $this->automaticRestart; + } + + public function setOnHostMaintenance($onHostMaintenance) + { + $this->onHostMaintenance = $onHostMaintenance; + } + + public function getOnHostMaintenance() + { + return $this->onHostMaintenance; + } +} + +class Google_Service_Compute_SerialPortOutput extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $contents; + public $kind; + public $selfLink; + + public function setContents($contents) + { + $this->contents = $contents; + } + + public function getContents() + { + return $this->contents; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ServiceAccount extends Google_Collection +{ + protected $collection_key = 'scopes'; + protected $internal_gapi_mappings = array( + ); + public $email; + public $scopes; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setScopes($scopes) + { + $this->scopes = $scopes; + } + + public function getScopes() + { + return $this->scopes; + } +} + +class Google_Service_Compute_Snapshot extends Google_Collection +{ + protected $collection_key = 'licenses'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $description; + public $diskSizeGb; + public $id; + public $kind; + public $licenses; + public $name; + public $selfLink; + public $sourceDisk; + public $sourceDiskId; + public $status; + public $storageBytes; + public $storageBytesStatus; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDiskSizeGb($diskSizeGb) + { + $this->diskSizeGb = $diskSizeGb; + } + + public function getDiskSizeGb() + { + return $this->diskSizeGb; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLicenses($licenses) + { + $this->licenses = $licenses; + } + + public function getLicenses() + { + return $this->licenses; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSourceDisk($sourceDisk) + { + $this->sourceDisk = $sourceDisk; + } + + public function getSourceDisk() + { + return $this->sourceDisk; + } + + public function setSourceDiskId($sourceDiskId) + { + $this->sourceDiskId = $sourceDiskId; + } + + public function getSourceDiskId() + { + return $this->sourceDiskId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setStorageBytes($storageBytes) + { + $this->storageBytes = $storageBytes; + } + + public function getStorageBytes() + { + return $this->storageBytes; + } + + public function setStorageBytesStatus($storageBytesStatus) + { + $this->storageBytesStatus = $storageBytesStatus; + } + + public function getStorageBytesStatus() + { + return $this->storageBytesStatus; + } +} + +class Google_Service_Compute_SnapshotList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Snapshot'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_Tags extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $fingerprint; + public $items; + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_Compute_TargetHttpProxy extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $description; + public $id; + public $kind; + public $name; + public $selfLink; + public $urlMap; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUrlMap($urlMap) + { + $this->urlMap = $urlMap; + } + + public function getUrlMap() + { + return $this->urlMap; + } +} + +class Google_Service_Compute_TargetHttpProxyList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_TargetHttpProxy'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_TargetInstance extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $description; + public $id; + public $instance; + public $kind; + public $name; + public $natPolicy; + public $selfLink; + public $zone; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNatPolicy($natPolicy) + { + $this->natPolicy = $natPolicy; + } + + public function getNatPolicy() + { + return $this->natPolicy; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Compute_TargetInstanceAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_TargetInstancesScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_TargetInstanceAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_TargetInstanceList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_TargetInstance'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_TargetInstancesScopedList extends Google_Collection +{ + protected $collection_key = 'targetInstances'; + protected $internal_gapi_mappings = array( + ); + protected $targetInstancesType = 'Google_Service_Compute_TargetInstance'; + protected $targetInstancesDataType = 'array'; + protected $warningType = 'Google_Service_Compute_TargetInstancesScopedListWarning'; + protected $warningDataType = ''; + + public function setTargetInstances($targetInstances) + { + $this->targetInstances = $targetInstances; + } + + public function getTargetInstances() + { + return $this->targetInstances; + } + + public function setWarning(Google_Service_Compute_TargetInstancesScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_TargetInstancesScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_TargetInstancesScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_TargetInstancesScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_TargetPool extends Google_Collection +{ + protected $collection_key = 'instances'; + protected $internal_gapi_mappings = array( + ); + public $backupPool; + public $creationTimestamp; + public $description; + public $failoverRatio; + public $healthChecks; + public $id; + public $instances; + public $kind; + public $name; + public $region; + public $selfLink; + public $sessionAffinity; + + public function setBackupPool($backupPool) + { + $this->backupPool = $backupPool; + } + + public function getBackupPool() + { + return $this->backupPool; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setFailoverRatio($failoverRatio) + { + $this->failoverRatio = $failoverRatio; + } + + public function getFailoverRatio() + { + return $this->failoverRatio; + } + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInstances($instances) + { + $this->instances = $instances; + } + + public function getInstances() + { + return $this->instances; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSessionAffinity($sessionAffinity) + { + $this->sessionAffinity = $sessionAffinity; + } + + public function getSessionAffinity() + { + return $this->sessionAffinity; + } +} + +class Google_Service_Compute_TargetPoolAggregatedList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_TargetPoolsScopedList'; + protected $itemsDataType = 'map'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_TargetPoolAggregatedListItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Compute_TargetPoolInstanceHealth extends Google_Collection +{ + protected $collection_key = 'healthStatus'; + protected $internal_gapi_mappings = array( + ); + protected $healthStatusType = 'Google_Service_Compute_HealthStatus'; + protected $healthStatusDataType = 'array'; + public $kind; + + public function setHealthStatus($healthStatus) + { + $this->healthStatus = $healthStatus; + } + + public function getHealthStatus() + { + return $this->healthStatus; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Compute_TargetPoolList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_TargetPool'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_TargetPoolsAddHealthCheckRequest extends Google_Collection +{ + protected $collection_key = 'healthChecks'; + protected $internal_gapi_mappings = array( + ); + protected $healthChecksType = 'Google_Service_Compute_HealthCheckReference'; + protected $healthChecksDataType = 'array'; + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } +} + +class Google_Service_Compute_TargetPoolsAddInstanceRequest extends Google_Collection +{ + protected $collection_key = 'instances'; + protected $internal_gapi_mappings = array( + ); + protected $instancesType = 'Google_Service_Compute_InstanceReference'; + protected $instancesDataType = 'array'; + + public function setInstances($instances) + { + $this->instances = $instances; + } + + public function getInstances() + { + return $this->instances; + } +} + +class Google_Service_Compute_TargetPoolsRemoveHealthCheckRequest extends Google_Collection +{ + protected $collection_key = 'healthChecks'; + protected $internal_gapi_mappings = array( + ); + protected $healthChecksType = 'Google_Service_Compute_HealthCheckReference'; + protected $healthChecksDataType = 'array'; + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } +} + +class Google_Service_Compute_TargetPoolsRemoveInstanceRequest extends Google_Collection +{ + protected $collection_key = 'instances'; + protected $internal_gapi_mappings = array( + ); + protected $instancesType = 'Google_Service_Compute_InstanceReference'; + protected $instancesDataType = 'array'; + + public function setInstances($instances) + { + $this->instances = $instances; + } + + public function getInstances() + { + return $this->instances; + } +} + +class Google_Service_Compute_TargetPoolsScopedList extends Google_Collection +{ + protected $collection_key = 'targetPools'; + protected $internal_gapi_mappings = array( + ); + protected $targetPoolsType = 'Google_Service_Compute_TargetPool'; + protected $targetPoolsDataType = 'array'; + protected $warningType = 'Google_Service_Compute_TargetPoolsScopedListWarning'; + protected $warningDataType = ''; + + public function setTargetPools($targetPools) + { + $this->targetPools = $targetPools; + } + + public function getTargetPools() + { + return $this->targetPools; + } + + public function setWarning(Google_Service_Compute_TargetPoolsScopedListWarning $warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Compute_TargetPoolsScopedListWarning extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Compute_TargetPoolsScopedListWarningData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Compute_TargetPoolsScopedListWarningData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Compute_TargetReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $target; + + public function setTarget($target) + { + $this->target = $target; + } + + public function getTarget() + { + return $this->target; + } +} + +class Google_Service_Compute_TestFailure extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $actualService; + public $expectedService; + public $host; + public $path; + + public function setActualService($actualService) + { + $this->actualService = $actualService; + } + + public function getActualService() + { + return $this->actualService; + } + + public function setExpectedService($expectedService) + { + $this->expectedService = $expectedService; + } + + public function getExpectedService() + { + return $this->expectedService; + } + + public function setHost($host) + { + $this->host = $host; + } + + public function getHost() + { + return $this->host; + } + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } +} + +class Google_Service_Compute_UrlMap extends Google_Collection +{ + protected $collection_key = 'tests'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $defaultService; + public $description; + public $fingerprint; + protected $hostRulesType = 'Google_Service_Compute_HostRule'; + protected $hostRulesDataType = 'array'; + public $id; + public $kind; + public $name; + protected $pathMatchersType = 'Google_Service_Compute_PathMatcher'; + protected $pathMatchersDataType = 'array'; + public $selfLink; + protected $testsType = 'Google_Service_Compute_UrlMapTest'; + protected $testsDataType = 'array'; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDefaultService($defaultService) + { + $this->defaultService = $defaultService; + } + + public function getDefaultService() + { + return $this->defaultService; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } + + public function setHostRules($hostRules) + { + $this->hostRules = $hostRules; + } + + public function getHostRules() + { + return $this->hostRules; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPathMatchers($pathMatchers) + { + $this->pathMatchers = $pathMatchers; + } + + public function getPathMatchers() + { + return $this->pathMatchers; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTests($tests) + { + $this->tests = $tests; + } + + public function getTests() + { + return $this->tests; + } +} + +class Google_Service_Compute_UrlMapList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_UrlMap'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_UrlMapReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $urlMap; + + public function setUrlMap($urlMap) + { + $this->urlMap = $urlMap; + } + + public function getUrlMap() + { + return $this->urlMap; + } +} + +class Google_Service_Compute_UrlMapTest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $host; + public $path; + public $service; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHost($host) + { + $this->host = $host; + } + + public function getHost() + { + return $this->host; + } + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } + + public function setService($service) + { + $this->service = $service; + } + + public function getService() + { + return $this->service; + } +} + +class Google_Service_Compute_UrlMapValidationResult extends Google_Collection +{ + protected $collection_key = 'testFailures'; + protected $internal_gapi_mappings = array( + ); + public $loadErrors; + public $loadSucceeded; + protected $testFailuresType = 'Google_Service_Compute_TestFailure'; + protected $testFailuresDataType = 'array'; + public $testPassed; + + public function setLoadErrors($loadErrors) + { + $this->loadErrors = $loadErrors; + } + + public function getLoadErrors() + { + return $this->loadErrors; + } + + public function setLoadSucceeded($loadSucceeded) + { + $this->loadSucceeded = $loadSucceeded; + } + + public function getLoadSucceeded() + { + return $this->loadSucceeded; + } + + public function setTestFailures($testFailures) + { + $this->testFailures = $testFailures; + } + + public function getTestFailures() + { + return $this->testFailures; + } + + public function setTestPassed($testPassed) + { + $this->testPassed = $testPassed; + } + + public function getTestPassed() + { + return $this->testPassed; + } +} + +class Google_Service_Compute_UrlMapsValidateRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceType = 'Google_Service_Compute_UrlMap'; + protected $resourceDataType = ''; + + public function setResource(Google_Service_Compute_UrlMap $resource) + { + $this->resource = $resource; + } + + public function getResource() + { + return $this->resource; + } +} + +class Google_Service_Compute_UrlMapsValidateResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resultType = 'Google_Service_Compute_UrlMapValidationResult'; + protected $resultDataType = ''; + + public function setResult(Google_Service_Compute_UrlMapValidationResult $result) + { + $this->result = $result; + } + + public function getResult() + { + return $this->result; + } +} + +class Google_Service_Compute_UsageExportLocation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bucketName; + public $reportNamePrefix; + + public function setBucketName($bucketName) + { + $this->bucketName = $bucketName; + } + + public function getBucketName() + { + return $this->bucketName; + } + + public function setReportNamePrefix($reportNamePrefix) + { + $this->reportNamePrefix = $reportNamePrefix; + } + + public function getReportNamePrefix() + { + return $this->reportNamePrefix; + } +} + +class Google_Service_Compute_Zone extends Google_Collection +{ + protected $collection_key = 'maintenanceWindows'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + protected $deprecatedType = 'Google_Service_Compute_DeprecationStatus'; + protected $deprecatedDataType = ''; + public $description; + public $id; + public $kind; + protected $maintenanceWindowsType = 'Google_Service_Compute_ZoneMaintenanceWindows'; + protected $maintenanceWindowsDataType = 'array'; + public $name; + public $region; + public $selfLink; + public $status; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDeprecated(Google_Service_Compute_DeprecationStatus $deprecated) + { + $this->deprecated = $deprecated; + } + + public function getDeprecated() + { + return $this->deprecated; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaintenanceWindows($maintenanceWindows) + { + $this->maintenanceWindows = $maintenanceWindows; + } + + public function getMaintenanceWindows() + { + return $this->maintenanceWindows; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Compute_ZoneList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Compute_Zone'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Compute_ZoneMaintenanceWindows extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $beginTime; + public $description; + public $endTime; + public $name; + + public function setBeginTime($beginTime) + { + $this->beginTime = $beginTime; + } + + public function getBeginTime() + { + return $this->beginTime; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Coordinate.php b/vendor/google/apiclient/src/Google/Service/Coordinate.php new file mode 100644 index 0000000..72baf91 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Coordinate.php @@ -0,0 +1,1512 @@ + + * Lets you view and manage jobs in a Coordinate team. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Coordinate extends Google_Service +{ + /** View and manage your Google Maps Coordinate jobs. */ + const COORDINATE = "https://www.googleapis.com/auth/coordinate"; + /** View your Google Coordinate jobs. */ + const COORDINATE_READONLY = "https://www.googleapis.com/auth/coordinate.readonly"; + + public $customFieldDef; + public $jobs; + public $location; + public $schedule; + public $worker; + + + /** + * Constructs the internal representation of the Coordinate service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'coordinate/v1/teams/'; + $this->version = 'v1'; + $this->serviceName = 'coordinate'; + + $this->customFieldDef = new Google_Service_Coordinate_CustomFieldDef_Resource( + $this, + $this->serviceName, + 'customFieldDef', + array( + 'methods' => array( + 'list' => array( + 'path' => '{teamId}/custom_fields', + 'httpMethod' => 'GET', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->jobs = new Google_Service_Coordinate_Jobs_Resource( + $this, + $this->serviceName, + 'jobs', + array( + 'methods' => array( + 'get' => array( + 'path' => '{teamId}/jobs/{jobId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{teamId}/jobs', + 'httpMethod' => 'POST', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'address' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'lat' => array( + 'location' => 'query', + 'type' => 'number', + 'required' => true, + ), + 'lng' => array( + 'location' => 'query', + 'type' => 'number', + 'required' => true, + ), + 'title' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'customerName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'note' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'assignee' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerPhoneNumber' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customField' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'list' => array( + 'path' => '{teamId}/jobs', + 'httpMethod' => 'GET', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'minModifiedTimestampMs' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => '{teamId}/jobs/{jobId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customerName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'title' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'note' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'assignee' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerPhoneNumber' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'address' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'lat' => array( + 'location' => 'query', + 'type' => 'number', + ), + 'progress' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'lng' => array( + 'location' => 'query', + 'type' => 'number', + ), + 'customField' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'update' => array( + 'path' => '{teamId}/jobs/{jobId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customerName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'title' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'note' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'assignee' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerPhoneNumber' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'address' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'lat' => array( + 'location' => 'query', + 'type' => 'number', + ), + 'progress' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'lng' => array( + 'location' => 'query', + 'type' => 'number', + ), + 'customField' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + $this->location = new Google_Service_Coordinate_Location_Resource( + $this, + $this->serviceName, + 'location', + array( + 'methods' => array( + 'list' => array( + 'path' => '{teamId}/workers/{workerEmail}/locations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'workerEmail' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startTimestampMs' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->schedule = new Google_Service_Coordinate_Schedule_Resource( + $this, + $this->serviceName, + 'schedule', + array( + 'methods' => array( + 'get' => array( + 'path' => '{teamId}/jobs/{jobId}/schedule', + 'httpMethod' => 'GET', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{teamId}/jobs/{jobId}/schedule', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'allDay' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'startTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'duration' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => '{teamId}/jobs/{jobId}/schedule', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'allDay' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'startTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'duration' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->worker = new Google_Service_Coordinate_Worker_Resource( + $this, + $this->serviceName, + 'worker', + array( + 'methods' => array( + 'list' => array( + 'path' => '{teamId}/workers', + 'httpMethod' => 'GET', + 'parameters' => array( + 'teamId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "customFieldDef" collection of methods. + * Typical usage is: + * + * $coordinateService = new Google_Service_Coordinate(...); + * $customFieldDef = $coordinateService->customFieldDef; + * + */ +class Google_Service_Coordinate_CustomFieldDef_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of custom field definitions for a team. + * (customFieldDef.listCustomFieldDef) + * + * @param string $teamId + * Team ID + * @param array $optParams Optional parameters. + * @return Google_Service_Coordinate_CustomFieldDefListResponse + */ + public function listCustomFieldDef($teamId, $optParams = array()) + { + $params = array('teamId' => $teamId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Coordinate_CustomFieldDefListResponse"); + } +} + +/** + * The "jobs" collection of methods. + * Typical usage is: + * + * $coordinateService = new Google_Service_Coordinate(...); + * $jobs = $coordinateService->jobs; + * + */ +class Google_Service_Coordinate_Jobs_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a job, including all the changes made to the job. (jobs.get) + * + * @param string $teamId + * Team ID + * @param string $jobId + * Job number + * @param array $optParams Optional parameters. + * @return Google_Service_Coordinate_Job + */ + public function get($teamId, $jobId, $optParams = array()) + { + $params = array('teamId' => $teamId, 'jobId' => $jobId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Coordinate_Job"); + } + /** + * Inserts a new job. Only the state field of the job should be set. + * (jobs.insert) + * + * @param string $teamId + * Team ID + * @param string $address + * Job address as newline (Unix) separated string + * @param double $lat + * The latitude coordinate of this job's location. + * @param double $lng + * The longitude coordinate of this job's location. + * @param string $title + * Job title + * @param Google_Job $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string customerName + * Customer name + * @opt_param string note + * Job note as newline (Unix) separated string + * @opt_param string assignee + * Assignee email address, or empty string to unassign. + * @opt_param string customerPhoneNumber + * Customer phone number + * @opt_param string customField + * Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice' + * @return Google_Service_Coordinate_Job + */ + public function insert($teamId, $address, $lat, $lng, $title, Google_Service_Coordinate_Job $postBody, $optParams = array()) + { + $params = array('teamId' => $teamId, 'address' => $address, 'lat' => $lat, 'lng' => $lng, 'title' => $title, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Coordinate_Job"); + } + /** + * Retrieves jobs created or modified since the given timestamp. (jobs.listJobs) + * + * @param string $teamId + * Team ID + * @param array $optParams Optional parameters. + * + * @opt_param string minModifiedTimestampMs + * Minimum time a job was modified in milliseconds since epoch. + * @opt_param string maxResults + * Maximum number of results to return in one page. + * @opt_param string pageToken + * Continuation token + * @return Google_Service_Coordinate_JobListResponse + */ + public function listJobs($teamId, $optParams = array()) + { + $params = array('teamId' => $teamId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Coordinate_JobListResponse"); + } + /** + * Updates a job. Fields that are set in the job state will be updated. This + * method supports patch semantics. (jobs.patch) + * + * @param string $teamId + * Team ID + * @param string $jobId + * Job number + * @param Google_Job $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string customerName + * Customer name + * @opt_param string title + * Job title + * @opt_param string note + * Job note as newline (Unix) separated string + * @opt_param string assignee + * Assignee email address, or empty string to unassign. + * @opt_param string customerPhoneNumber + * Customer phone number + * @opt_param string address + * Job address as newline (Unix) separated string + * @opt_param double lat + * The latitude coordinate of this job's location. + * @opt_param string progress + * Job progress + * @opt_param double lng + * The longitude coordinate of this job's location. + * @opt_param string customField + * Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice' + * @return Google_Service_Coordinate_Job + */ + public function patch($teamId, $jobId, Google_Service_Coordinate_Job $postBody, $optParams = array()) + { + $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Coordinate_Job"); + } + /** + * Updates a job. Fields that are set in the job state will be updated. + * (jobs.update) + * + * @param string $teamId + * Team ID + * @param string $jobId + * Job number + * @param Google_Job $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string customerName + * Customer name + * @opt_param string title + * Job title + * @opt_param string note + * Job note as newline (Unix) separated string + * @opt_param string assignee + * Assignee email address, or empty string to unassign. + * @opt_param string customerPhoneNumber + * Customer phone number + * @opt_param string address + * Job address as newline (Unix) separated string + * @opt_param double lat + * The latitude coordinate of this job's location. + * @opt_param string progress + * Job progress + * @opt_param double lng + * The longitude coordinate of this job's location. + * @opt_param string customField + * Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice' + * @return Google_Service_Coordinate_Job + */ + public function update($teamId, $jobId, Google_Service_Coordinate_Job $postBody, $optParams = array()) + { + $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Coordinate_Job"); + } +} + +/** + * The "location" collection of methods. + * Typical usage is: + * + * $coordinateService = new Google_Service_Coordinate(...); + * $location = $coordinateService->location; + * + */ +class Google_Service_Coordinate_Location_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of locations for a worker. (location.listLocation) + * + * @param string $teamId + * Team ID + * @param string $workerEmail + * Worker email address. + * @param string $startTimestampMs + * Start timestamp in milliseconds since the epoch. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Continuation token + * @opt_param string maxResults + * Maximum number of results to return in one page. + * @return Google_Service_Coordinate_LocationListResponse + */ + public function listLocation($teamId, $workerEmail, $startTimestampMs, $optParams = array()) + { + $params = array('teamId' => $teamId, 'workerEmail' => $workerEmail, 'startTimestampMs' => $startTimestampMs); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Coordinate_LocationListResponse"); + } +} + +/** + * The "schedule" collection of methods. + * Typical usage is: + * + * $coordinateService = new Google_Service_Coordinate(...); + * $schedule = $coordinateService->schedule; + * + */ +class Google_Service_Coordinate_Schedule_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the schedule for a job. (schedule.get) + * + * @param string $teamId + * Team ID + * @param string $jobId + * Job number + * @param array $optParams Optional parameters. + * @return Google_Service_Coordinate_Schedule + */ + public function get($teamId, $jobId, $optParams = array()) + { + $params = array('teamId' => $teamId, 'jobId' => $jobId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Coordinate_Schedule"); + } + /** + * Replaces the schedule of a job with the provided schedule. This method + * supports patch semantics. (schedule.patch) + * + * @param string $teamId + * Team ID + * @param string $jobId + * Job number + * @param Google_Schedule $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool allDay + * Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if + * this is true. + * @opt_param string startTime + * Scheduled start time in milliseconds since epoch. + * @opt_param string duration + * Job duration in milliseconds. + * @opt_param string endTime + * Scheduled end time in milliseconds since epoch. + * @return Google_Service_Coordinate_Schedule + */ + public function patch($teamId, $jobId, Google_Service_Coordinate_Schedule $postBody, $optParams = array()) + { + $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Coordinate_Schedule"); + } + /** + * Replaces the schedule of a job with the provided schedule. (schedule.update) + * + * @param string $teamId + * Team ID + * @param string $jobId + * Job number + * @param Google_Schedule $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool allDay + * Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if + * this is true. + * @opt_param string startTime + * Scheduled start time in milliseconds since epoch. + * @opt_param string duration + * Job duration in milliseconds. + * @opt_param string endTime + * Scheduled end time in milliseconds since epoch. + * @return Google_Service_Coordinate_Schedule + */ + public function update($teamId, $jobId, Google_Service_Coordinate_Schedule $postBody, $optParams = array()) + { + $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Coordinate_Schedule"); + } +} + +/** + * The "worker" collection of methods. + * Typical usage is: + * + * $coordinateService = new Google_Service_Coordinate(...); + * $worker = $coordinateService->worker; + * + */ +class Google_Service_Coordinate_Worker_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of workers in a team. (worker.listWorker) + * + * @param string $teamId + * Team ID + * @param array $optParams Optional parameters. + * @return Google_Service_Coordinate_WorkerListResponse + */ + public function listWorker($teamId, $optParams = array()) + { + $params = array('teamId' => $teamId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Coordinate_WorkerListResponse"); + } +} + + + + +class Google_Service_Coordinate_CustomField extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customFieldId; + public $kind; + public $value; + + public function setCustomFieldId($customFieldId) + { + $this->customFieldId = $customFieldId; + } + + public function getCustomFieldId() + { + return $this->customFieldId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Coordinate_CustomFieldDef extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $enabled; + public $id; + public $kind; + public $name; + public $requiredForCheckout; + public $type; + + public function setEnabled($enabled) + { + $this->enabled = $enabled; + } + + public function getEnabled() + { + return $this->enabled; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRequiredForCheckout($requiredForCheckout) + { + $this->requiredForCheckout = $requiredForCheckout; + } + + public function getRequiredForCheckout() + { + return $this->requiredForCheckout; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Coordinate_CustomFieldDefListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Coordinate_CustomFieldDef'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Coordinate_CustomFields extends Google_Collection +{ + protected $collection_key = 'customField'; + protected $internal_gapi_mappings = array( + ); + protected $customFieldType = 'Google_Service_Coordinate_CustomField'; + protected $customFieldDataType = 'array'; + public $kind; + + public function setCustomField($customField) + { + $this->customField = $customField; + } + + public function getCustomField() + { + return $this->customField; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Coordinate_Job extends Google_Collection +{ + protected $collection_key = 'jobChange'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $jobChangeType = 'Google_Service_Coordinate_JobChange'; + protected $jobChangeDataType = 'array'; + public $kind; + protected $stateType = 'Google_Service_Coordinate_JobState'; + protected $stateDataType = ''; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setJobChange($jobChange) + { + $this->jobChange = $jobChange; + } + + public function getJobChange() + { + return $this->jobChange; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setState(Google_Service_Coordinate_JobState $state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_Coordinate_JobChange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $stateType = 'Google_Service_Coordinate_JobState'; + protected $stateDataType = ''; + public $timestamp; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setState(Google_Service_Coordinate_JobState $state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } +} + +class Google_Service_Coordinate_JobListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Coordinate_Job'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Coordinate_JobState extends Google_Collection +{ + protected $collection_key = 'note'; + protected $internal_gapi_mappings = array( + ); + public $assignee; + protected $customFieldsType = 'Google_Service_Coordinate_CustomFields'; + protected $customFieldsDataType = ''; + public $customerName; + public $customerPhoneNumber; + public $kind; + protected $locationType = 'Google_Service_Coordinate_Location'; + protected $locationDataType = ''; + public $note; + public $progress; + public $title; + + public function setAssignee($assignee) + { + $this->assignee = $assignee; + } + + public function getAssignee() + { + return $this->assignee; + } + + public function setCustomFields(Google_Service_Coordinate_CustomFields $customFields) + { + $this->customFields = $customFields; + } + + public function getCustomFields() + { + return $this->customFields; + } + + public function setCustomerName($customerName) + { + $this->customerName = $customerName; + } + + public function getCustomerName() + { + return $this->customerName; + } + + public function setCustomerPhoneNumber($customerPhoneNumber) + { + $this->customerPhoneNumber = $customerPhoneNumber; + } + + public function getCustomerPhoneNumber() + { + return $this->customerPhoneNumber; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation(Google_Service_Coordinate_Location $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setNote($note) + { + $this->note = $note; + } + + public function getNote() + { + return $this->note; + } + + public function setProgress($progress) + { + $this->progress = $progress; + } + + public function getProgress() + { + return $this->progress; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Coordinate_Location extends Google_Collection +{ + protected $collection_key = 'addressLine'; + protected $internal_gapi_mappings = array( + ); + public $addressLine; + public $kind; + public $lat; + public $lng; + + public function setAddressLine($addressLine) + { + $this->addressLine = $addressLine; + } + + public function getAddressLine() + { + return $this->addressLine; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLat($lat) + { + $this->lat = $lat; + } + + public function getLat() + { + return $this->lat; + } + + public function setLng($lng) + { + $this->lng = $lng; + } + + public function getLng() + { + return $this->lng; + } +} + +class Google_Service_Coordinate_LocationListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Coordinate_LocationRecord'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $tokenPaginationType = 'Google_Service_Coordinate_TokenPagination'; + protected $tokenPaginationDataType = ''; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTokenPagination(Google_Service_Coordinate_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } +} + +class Google_Service_Coordinate_LocationRecord extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $collectionTime; + public $confidenceRadius; + public $kind; + public $latitude; + public $longitude; + + public function setCollectionTime($collectionTime) + { + $this->collectionTime = $collectionTime; + } + + public function getCollectionTime() + { + return $this->collectionTime; + } + + public function setConfidenceRadius($confidenceRadius) + { + $this->confidenceRadius = $confidenceRadius; + } + + public function getConfidenceRadius() + { + return $this->confidenceRadius; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Coordinate_Schedule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $allDay; + public $duration; + public $endTime; + public $kind; + public $startTime; + + public function setAllDay($allDay) + { + $this->allDay = $allDay; + } + + public function getAllDay() + { + return $this->allDay; + } + + public function setDuration($duration) + { + $this->duration = $duration; + } + + public function getDuration() + { + return $this->duration; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } +} + +class Google_Service_Coordinate_TokenPagination extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + public $previousPageToken; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPreviousPageToken($previousPageToken) + { + $this->previousPageToken = $previousPageToken; + } + + public function getPreviousPageToken() + { + return $this->previousPageToken; + } +} + +class Google_Service_Coordinate_Worker extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Coordinate_WorkerListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Coordinate_Worker'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Customsearch.php b/vendor/google/apiclient/src/Google/Service/Customsearch.php new file mode 100644 index 0000000..abb157c --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Customsearch.php @@ -0,0 +1,1467 @@ + + * Lets you search over a website or collection of websites + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Customsearch extends Google_Service +{ + + + public $cse; + + + /** + * Constructs the internal representation of the Customsearch service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'customsearch/'; + $this->version = 'v1'; + $this->serviceName = 'customsearch'; + + $this->cse = new Google_Service_Customsearch_Cse_Resource( + $this, + $this->serviceName, + 'cse', + array( + 'methods' => array( + 'list' => array( + 'path' => 'v1', + 'httpMethod' => 'GET', + 'parameters' => array( + 'q' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'orTerms' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'highRange' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'num' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'cr' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'imgType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'gl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'relatedSite' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'searchType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'fileType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'start' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'imgDominantColor' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'lr' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'siteSearch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'cref' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'dateRestrict' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'safe' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'c2coff' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'googlehost' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'hq' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'exactTerms' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'lowRange' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'imgSize' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'imgColorType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'rights' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'excludeTerms' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'linkSite' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'cx' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'siteSearchFilter' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "cse" collection of methods. + * Typical usage is: + * + * $customsearchService = new Google_Service_Customsearch(...); + * $cse = $customsearchService->cse; + * + */ +class Google_Service_Customsearch_Cse_Resource extends Google_Service_Resource +{ + + /** + * Returns metadata about the search performed, metadata about the custom search + * engine used for the search, and the search results. (cse.listCse) + * + * @param string $q + * Query + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * The sort expression to apply to the results + * @opt_param string orTerms + * Provides additional search terms to check for in a document, where each document in the search + * results must contain at least one of the additional search terms + * @opt_param string highRange + * Creates a range in form as_nlo value..as_nhi value and attempts to append it to query + * @opt_param string num + * Number of search results to return + * @opt_param string cr + * Country restrict(s). + * @opt_param string imgType + * Returns images of a type, which can be one of: clipart, face, lineart, news, and photo. + * @opt_param string gl + * Geolocation of end user. + * @opt_param string relatedSite + * Specifies that all search results should be pages that are related to the specified URL + * @opt_param string searchType + * Specifies the search type: image. + * @opt_param string fileType + * Returns images of a specified type. Some of the allowed values are: bmp, gif, png, jpg, svg, + * pdf, ... + * @opt_param string start + * The index of the first result to return + * @opt_param string imgDominantColor + * Returns images of a specific dominant color: yellow, green, teal, blue, purple, pink, white, + * gray, black and brown. + * @opt_param string lr + * The language restriction for the search results + * @opt_param string siteSearch + * Specifies all search results should be pages from a given site + * @opt_param string cref + * The URL of a linked custom search engine + * @opt_param string dateRestrict + * Specifies all search results are from a time period + * @opt_param string safe + * Search safety level + * @opt_param string c2coff + * Turns off the translation between zh-CN and zh-TW. + * @opt_param string googlehost + * The local Google domain to use to perform the search. + * @opt_param string hq + * Appends the extra query terms to the query. + * @opt_param string exactTerms + * Identifies a phrase that all documents in the search results must contain + * @opt_param string hl + * Sets the user interface language. + * @opt_param string lowRange + * Creates a range in form as_nlo value..as_nhi value and attempts to append it to query + * @opt_param string imgSize + * Returns images of a specified size, where size can be one of: icon, small, medium, large, + * xlarge, xxlarge, and huge. + * @opt_param string imgColorType + * Returns black and white, grayscale, or color images: mono, gray, and color. + * @opt_param string rights + * Filters based on licensing. Supported values include: cc_publicdomain, cc_attribute, + * cc_sharealike, cc_noncommercial, cc_nonderived and combinations of these. + * @opt_param string excludeTerms + * Identifies a word or phrase that should not appear in any documents in the search results + * @opt_param string filter + * Controls turning on or off the duplicate content filter. + * @opt_param string linkSite + * Specifies that all search results should contain a link to a particular URL + * @opt_param string cx + * The custom search engine ID to scope this search query + * @opt_param string siteSearchFilter + * Controls whether to include or exclude results from the site named in the as_sitesearch + * parameter + * @return Google_Service_Customsearch_Search + */ + public function listCse($q, $optParams = array()) + { + $params = array('q' => $q); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Customsearch_Search"); + } +} + + + + +class Google_Service_Customsearch_Context extends Google_Collection +{ + protected $collection_key = 'facets'; + protected $internal_gapi_mappings = array( + ); + protected $facetsType = 'Google_Service_Customsearch_ContextFacets'; + protected $facetsDataType = 'array'; + public $title; + + public function setFacets($facets) + { + $this->facets = $facets; + } + + public function getFacets() + { + return $this->facets; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Customsearch_ContextFacets extends Google_Model +{ + protected $internal_gapi_mappings = array( + "labelWithOp" => "label_with_op", + ); + public $anchor; + public $label; + public $labelWithOp; + + public function setAnchor($anchor) + { + $this->anchor = $anchor; + } + + public function getAnchor() + { + return $this->anchor; + } + + public function setLabel($label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } + + public function setLabelWithOp($labelWithOp) + { + $this->labelWithOp = $labelWithOp; + } + + public function getLabelWithOp() + { + return $this->labelWithOp; + } +} + +class Google_Service_Customsearch_Promotion extends Google_Collection +{ + protected $collection_key = 'bodyLines'; + protected $internal_gapi_mappings = array( + ); + protected $bodyLinesType = 'Google_Service_Customsearch_PromotionBodyLines'; + protected $bodyLinesDataType = 'array'; + public $displayLink; + public $htmlTitle; + protected $imageType = 'Google_Service_Customsearch_PromotionImage'; + protected $imageDataType = ''; + public $link; + public $title; + + public function setBodyLines($bodyLines) + { + $this->bodyLines = $bodyLines; + } + + public function getBodyLines() + { + return $this->bodyLines; + } + + public function setDisplayLink($displayLink) + { + $this->displayLink = $displayLink; + } + + public function getDisplayLink() + { + return $this->displayLink; + } + + public function setHtmlTitle($htmlTitle) + { + $this->htmlTitle = $htmlTitle; + } + + public function getHtmlTitle() + { + return $this->htmlTitle; + } + + public function setImage(Google_Service_Customsearch_PromotionImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Customsearch_PromotionBodyLines extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $htmlTitle; + public $link; + public $title; + public $url; + + public function setHtmlTitle($htmlTitle) + { + $this->htmlTitle = $htmlTitle; + } + + public function getHtmlTitle() + { + return $this->htmlTitle; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Customsearch_PromotionImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $source; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Customsearch_Query extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $cr; + public $cref; + public $cx; + public $dateRestrict; + public $disableCnTwTranslation; + public $exactTerms; + public $excludeTerms; + public $fileType; + public $filter; + public $gl; + public $googleHost; + public $highRange; + public $hl; + public $hq; + public $imgColorType; + public $imgDominantColor; + public $imgSize; + public $imgType; + public $inputEncoding; + public $language; + public $linkSite; + public $lowRange; + public $orTerms; + public $outputEncoding; + public $relatedSite; + public $rights; + public $safe; + public $searchTerms; + public $searchType; + public $siteSearch; + public $siteSearchFilter; + public $sort; + public $startIndex; + public $startPage; + public $title; + public $totalResults; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setCr($cr) + { + $this->cr = $cr; + } + + public function getCr() + { + return $this->cr; + } + + public function setCref($cref) + { + $this->cref = $cref; + } + + public function getCref() + { + return $this->cref; + } + + public function setCx($cx) + { + $this->cx = $cx; + } + + public function getCx() + { + return $this->cx; + } + + public function setDateRestrict($dateRestrict) + { + $this->dateRestrict = $dateRestrict; + } + + public function getDateRestrict() + { + return $this->dateRestrict; + } + + public function setDisableCnTwTranslation($disableCnTwTranslation) + { + $this->disableCnTwTranslation = $disableCnTwTranslation; + } + + public function getDisableCnTwTranslation() + { + return $this->disableCnTwTranslation; + } + + public function setExactTerms($exactTerms) + { + $this->exactTerms = $exactTerms; + } + + public function getExactTerms() + { + return $this->exactTerms; + } + + public function setExcludeTerms($excludeTerms) + { + $this->excludeTerms = $excludeTerms; + } + + public function getExcludeTerms() + { + return $this->excludeTerms; + } + + public function setFileType($fileType) + { + $this->fileType = $fileType; + } + + public function getFileType() + { + return $this->fileType; + } + + public function setFilter($filter) + { + $this->filter = $filter; + } + + public function getFilter() + { + return $this->filter; + } + + public function setGl($gl) + { + $this->gl = $gl; + } + + public function getGl() + { + return $this->gl; + } + + public function setGoogleHost($googleHost) + { + $this->googleHost = $googleHost; + } + + public function getGoogleHost() + { + return $this->googleHost; + } + + public function setHighRange($highRange) + { + $this->highRange = $highRange; + } + + public function getHighRange() + { + return $this->highRange; + } + + public function setHl($hl) + { + $this->hl = $hl; + } + + public function getHl() + { + return $this->hl; + } + + public function setHq($hq) + { + $this->hq = $hq; + } + + public function getHq() + { + return $this->hq; + } + + public function setImgColorType($imgColorType) + { + $this->imgColorType = $imgColorType; + } + + public function getImgColorType() + { + return $this->imgColorType; + } + + public function setImgDominantColor($imgDominantColor) + { + $this->imgDominantColor = $imgDominantColor; + } + + public function getImgDominantColor() + { + return $this->imgDominantColor; + } + + public function setImgSize($imgSize) + { + $this->imgSize = $imgSize; + } + + public function getImgSize() + { + return $this->imgSize; + } + + public function setImgType($imgType) + { + $this->imgType = $imgType; + } + + public function getImgType() + { + return $this->imgType; + } + + public function setInputEncoding($inputEncoding) + { + $this->inputEncoding = $inputEncoding; + } + + public function getInputEncoding() + { + return $this->inputEncoding; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setLinkSite($linkSite) + { + $this->linkSite = $linkSite; + } + + public function getLinkSite() + { + return $this->linkSite; + } + + public function setLowRange($lowRange) + { + $this->lowRange = $lowRange; + } + + public function getLowRange() + { + return $this->lowRange; + } + + public function setOrTerms($orTerms) + { + $this->orTerms = $orTerms; + } + + public function getOrTerms() + { + return $this->orTerms; + } + + public function setOutputEncoding($outputEncoding) + { + $this->outputEncoding = $outputEncoding; + } + + public function getOutputEncoding() + { + return $this->outputEncoding; + } + + public function setRelatedSite($relatedSite) + { + $this->relatedSite = $relatedSite; + } + + public function getRelatedSite() + { + return $this->relatedSite; + } + + public function setRights($rights) + { + $this->rights = $rights; + } + + public function getRights() + { + return $this->rights; + } + + public function setSafe($safe) + { + $this->safe = $safe; + } + + public function getSafe() + { + return $this->safe; + } + + public function setSearchTerms($searchTerms) + { + $this->searchTerms = $searchTerms; + } + + public function getSearchTerms() + { + return $this->searchTerms; + } + + public function setSearchType($searchType) + { + $this->searchType = $searchType; + } + + public function getSearchType() + { + return $this->searchType; + } + + public function setSiteSearch($siteSearch) + { + $this->siteSearch = $siteSearch; + } + + public function getSiteSearch() + { + return $this->siteSearch; + } + + public function setSiteSearchFilter($siteSearchFilter) + { + $this->siteSearchFilter = $siteSearchFilter; + } + + public function getSiteSearchFilter() + { + return $this->siteSearchFilter; + } + + public function setSort($sort) + { + $this->sort = $sort; + } + + public function getSort() + { + return $this->sort; + } + + public function setStartIndex($startIndex) + { + $this->startIndex = $startIndex; + } + + public function getStartIndex() + { + return $this->startIndex; + } + + public function setStartPage($startPage) + { + $this->startPage = $startPage; + } + + public function getStartPage() + { + return $this->startPage; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_Customsearch_Result extends Google_Collection +{ + protected $collection_key = 'labels'; + protected $internal_gapi_mappings = array( + ); + public $cacheId; + public $displayLink; + public $fileFormat; + public $formattedUrl; + public $htmlFormattedUrl; + public $htmlSnippet; + public $htmlTitle; + protected $imageType = 'Google_Service_Customsearch_ResultImage'; + protected $imageDataType = ''; + public $kind; + protected $labelsType = 'Google_Service_Customsearch_ResultLabels'; + protected $labelsDataType = 'array'; + public $link; + public $mime; + public $pagemap; + public $snippet; + public $title; + + public function setCacheId($cacheId) + { + $this->cacheId = $cacheId; + } + + public function getCacheId() + { + return $this->cacheId; + } + + public function setDisplayLink($displayLink) + { + $this->displayLink = $displayLink; + } + + public function getDisplayLink() + { + return $this->displayLink; + } + + public function setFileFormat($fileFormat) + { + $this->fileFormat = $fileFormat; + } + + public function getFileFormat() + { + return $this->fileFormat; + } + + public function setFormattedUrl($formattedUrl) + { + $this->formattedUrl = $formattedUrl; + } + + public function getFormattedUrl() + { + return $this->formattedUrl; + } + + public function setHtmlFormattedUrl($htmlFormattedUrl) + { + $this->htmlFormattedUrl = $htmlFormattedUrl; + } + + public function getHtmlFormattedUrl() + { + return $this->htmlFormattedUrl; + } + + public function setHtmlSnippet($htmlSnippet) + { + $this->htmlSnippet = $htmlSnippet; + } + + public function getHtmlSnippet() + { + return $this->htmlSnippet; + } + + public function setHtmlTitle($htmlTitle) + { + $this->htmlTitle = $htmlTitle; + } + + public function getHtmlTitle() + { + return $this->htmlTitle; + } + + public function setImage(Google_Service_Customsearch_ResultImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setMime($mime) + { + $this->mime = $mime; + } + + public function getMime() + { + return $this->mime; + } + + public function setPagemap($pagemap) + { + $this->pagemap = $pagemap; + } + + public function getPagemap() + { + return $this->pagemap; + } + + public function setSnippet($snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Customsearch_ResultImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $byteSize; + public $contextLink; + public $height; + public $thumbnailHeight; + public $thumbnailLink; + public $thumbnailWidth; + public $width; + + public function setByteSize($byteSize) + { + $this->byteSize = $byteSize; + } + + public function getByteSize() + { + return $this->byteSize; + } + + public function setContextLink($contextLink) + { + $this->contextLink = $contextLink; + } + + public function getContextLink() + { + return $this->contextLink; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setThumbnailHeight($thumbnailHeight) + { + $this->thumbnailHeight = $thumbnailHeight; + } + + public function getThumbnailHeight() + { + return $this->thumbnailHeight; + } + + public function setThumbnailLink($thumbnailLink) + { + $this->thumbnailLink = $thumbnailLink; + } + + public function getThumbnailLink() + { + return $this->thumbnailLink; + } + + public function setThumbnailWidth($thumbnailWidth) + { + $this->thumbnailWidth = $thumbnailWidth; + } + + public function getThumbnailWidth() + { + return $this->thumbnailWidth; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Customsearch_ResultLabels extends Google_Model +{ + protected $internal_gapi_mappings = array( + "labelWithOp" => "label_with_op", + ); + public $displayName; + public $labelWithOp; + public $name; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setLabelWithOp($labelWithOp) + { + $this->labelWithOp = $labelWithOp; + } + + public function getLabelWithOp() + { + return $this->labelWithOp; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Customsearch_ResultPagemap extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Customsearch_ResultPagemapItemElement extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Customsearch_Search extends Google_Collection +{ + protected $collection_key = 'promotions'; + protected $internal_gapi_mappings = array( + ); + protected $contextType = 'Google_Service_Customsearch_Context'; + protected $contextDataType = ''; + protected $itemsType = 'Google_Service_Customsearch_Result'; + protected $itemsDataType = 'array'; + public $kind; + protected $promotionsType = 'Google_Service_Customsearch_Promotion'; + protected $promotionsDataType = 'array'; + protected $queriesType = 'Google_Service_Customsearch_Query'; + protected $queriesDataType = 'map'; + protected $searchInformationType = 'Google_Service_Customsearch_SearchSearchInformation'; + protected $searchInformationDataType = ''; + protected $spellingType = 'Google_Service_Customsearch_SearchSpelling'; + protected $spellingDataType = ''; + protected $urlType = 'Google_Service_Customsearch_SearchUrl'; + protected $urlDataType = ''; + + public function setContext(Google_Service_Customsearch_Context $context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPromotions($promotions) + { + $this->promotions = $promotions; + } + + public function getPromotions() + { + return $this->promotions; + } + + public function setQueries($queries) + { + $this->queries = $queries; + } + + public function getQueries() + { + return $this->queries; + } + + public function setSearchInformation(Google_Service_Customsearch_SearchSearchInformation $searchInformation) + { + $this->searchInformation = $searchInformation; + } + + public function getSearchInformation() + { + return $this->searchInformation; + } + + public function setSpelling(Google_Service_Customsearch_SearchSpelling $spelling) + { + $this->spelling = $spelling; + } + + public function getSpelling() + { + return $this->spelling; + } + + public function setUrl(Google_Service_Customsearch_SearchUrl $url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Customsearch_SearchQueries extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Customsearch_SearchSearchInformation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formattedSearchTime; + public $formattedTotalResults; + public $searchTime; + public $totalResults; + + public function setFormattedSearchTime($formattedSearchTime) + { + $this->formattedSearchTime = $formattedSearchTime; + } + + public function getFormattedSearchTime() + { + return $this->formattedSearchTime; + } + + public function setFormattedTotalResults($formattedTotalResults) + { + $this->formattedTotalResults = $formattedTotalResults; + } + + public function getFormattedTotalResults() + { + return $this->formattedTotalResults; + } + + public function setSearchTime($searchTime) + { + $this->searchTime = $searchTime; + } + + public function getSearchTime() + { + return $this->searchTime; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_Customsearch_SearchSpelling extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $correctedQuery; + public $htmlCorrectedQuery; + + public function setCorrectedQuery($correctedQuery) + { + $this->correctedQuery = $correctedQuery; + } + + public function getCorrectedQuery() + { + return $this->correctedQuery; + } + + public function setHtmlCorrectedQuery($htmlCorrectedQuery) + { + $this->htmlCorrectedQuery = $htmlCorrectedQuery; + } + + public function getHtmlCorrectedQuery() + { + return $this->htmlCorrectedQuery; + } +} + +class Google_Service_Customsearch_SearchUrl extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $template; + public $type; + + public function setTemplate($template) + { + $this->template = $template; + } + + public function getTemplate() + { + return $this->template; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Datastore.php b/vendor/google/apiclient/src/Google/Service/Datastore.php new file mode 100644 index 0000000..b7abee1 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Datastore.php @@ -0,0 +1,1667 @@ + + * API for accessing Google Cloud Datastore. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Datastore extends Google_Service +{ + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** View and manage your Google Cloud Datastore data. */ + const DATASTORE = "https://www.googleapis.com/auth/datastore"; + /** View your email address. */ + const USERINFO_EMAIL = "https://www.googleapis.com/auth/userinfo.email"; + + public $datasets; + + + /** + * Constructs the internal representation of the Datastore service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'datastore/v1beta2/datasets/'; + $this->version = 'v1beta2'; + $this->serviceName = 'datastore'; + + $this->datasets = new Google_Service_Datastore_Datasets_Resource( + $this, + $this->serviceName, + 'datasets', + array( + 'methods' => array( + 'allocateIds' => array( + 'path' => '{datasetId}/allocateIds', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'beginTransaction' => array( + 'path' => '{datasetId}/beginTransaction', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'commit' => array( + 'path' => '{datasetId}/commit', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'lookup' => array( + 'path' => '{datasetId}/lookup', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'rollback' => array( + 'path' => '{datasetId}/rollback', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'runQuery' => array( + 'path' => '{datasetId}/runQuery', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "datasets" collection of methods. + * Typical usage is: + * + * $datastoreService = new Google_Service_Datastore(...); + * $datasets = $datastoreService->datasets; + * + */ +class Google_Service_Datastore_Datasets_Resource extends Google_Service_Resource +{ + + /** + * Allocate IDs for incomplete keys (useful for referencing an entity before it + * is inserted). (datasets.allocateIds) + * + * @param string $datasetId + * Identifies the dataset. + * @param Google_AllocateIdsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Datastore_AllocateIdsResponse + */ + public function allocateIds($datasetId, Google_Service_Datastore_AllocateIdsRequest $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('allocateIds', array($params), "Google_Service_Datastore_AllocateIdsResponse"); + } + /** + * Begin a new transaction. (datasets.beginTransaction) + * + * @param string $datasetId + * Identifies the dataset. + * @param Google_BeginTransactionRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Datastore_BeginTransactionResponse + */ + public function beginTransaction($datasetId, Google_Service_Datastore_BeginTransactionRequest $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('beginTransaction', array($params), "Google_Service_Datastore_BeginTransactionResponse"); + } + /** + * Commit a transaction, optionally creating, deleting or modifying some + * entities. (datasets.commit) + * + * @param string $datasetId + * Identifies the dataset. + * @param Google_CommitRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Datastore_CommitResponse + */ + public function commit($datasetId, Google_Service_Datastore_CommitRequest $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('commit', array($params), "Google_Service_Datastore_CommitResponse"); + } + /** + * Look up some entities by key. (datasets.lookup) + * + * @param string $datasetId + * Identifies the dataset. + * @param Google_LookupRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Datastore_LookupResponse + */ + public function lookup($datasetId, Google_Service_Datastore_LookupRequest $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('lookup', array($params), "Google_Service_Datastore_LookupResponse"); + } + /** + * Roll back a transaction. (datasets.rollback) + * + * @param string $datasetId + * Identifies the dataset. + * @param Google_RollbackRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Datastore_RollbackResponse + */ + public function rollback($datasetId, Google_Service_Datastore_RollbackRequest $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('rollback', array($params), "Google_Service_Datastore_RollbackResponse"); + } + /** + * Query for entities. (datasets.runQuery) + * + * @param string $datasetId + * Identifies the dataset. + * @param Google_RunQueryRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Datastore_RunQueryResponse + */ + public function runQuery($datasetId, Google_Service_Datastore_RunQueryRequest $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('runQuery', array($params), "Google_Service_Datastore_RunQueryResponse"); + } +} + + + + +class Google_Service_Datastore_AllocateIdsRequest extends Google_Collection +{ + protected $collection_key = 'keys'; + protected $internal_gapi_mappings = array( + ); + protected $keysType = 'Google_Service_Datastore_Key'; + protected $keysDataType = 'array'; + + public function setKeys($keys) + { + $this->keys = $keys; + } + + public function getKeys() + { + return $this->keys; + } +} + +class Google_Service_Datastore_AllocateIdsResponse extends Google_Collection +{ + protected $collection_key = 'keys'; + protected $internal_gapi_mappings = array( + ); + protected $headerType = 'Google_Service_Datastore_ResponseHeader'; + protected $headerDataType = ''; + protected $keysType = 'Google_Service_Datastore_Key'; + protected $keysDataType = 'array'; + + public function setHeader(Google_Service_Datastore_ResponseHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } + + public function setKeys($keys) + { + $this->keys = $keys; + } + + public function getKeys() + { + return $this->keys; + } +} + +class Google_Service_Datastore_BeginTransactionRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $isolationLevel; + + public function setIsolationLevel($isolationLevel) + { + $this->isolationLevel = $isolationLevel; + } + + public function getIsolationLevel() + { + return $this->isolationLevel; + } +} + +class Google_Service_Datastore_BeginTransactionResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $headerType = 'Google_Service_Datastore_ResponseHeader'; + protected $headerDataType = ''; + public $transaction; + + public function setHeader(Google_Service_Datastore_ResponseHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } + + public function setTransaction($transaction) + { + $this->transaction = $transaction; + } + + public function getTransaction() + { + return $this->transaction; + } +} + +class Google_Service_Datastore_CommitRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $ignoreReadOnly; + public $mode; + protected $mutationType = 'Google_Service_Datastore_Mutation'; + protected $mutationDataType = ''; + public $transaction; + + public function setIgnoreReadOnly($ignoreReadOnly) + { + $this->ignoreReadOnly = $ignoreReadOnly; + } + + public function getIgnoreReadOnly() + { + return $this->ignoreReadOnly; + } + + public function setMode($mode) + { + $this->mode = $mode; + } + + public function getMode() + { + return $this->mode; + } + + public function setMutation(Google_Service_Datastore_Mutation $mutation) + { + $this->mutation = $mutation; + } + + public function getMutation() + { + return $this->mutation; + } + + public function setTransaction($transaction) + { + $this->transaction = $transaction; + } + + public function getTransaction() + { + return $this->transaction; + } +} + +class Google_Service_Datastore_CommitResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $headerType = 'Google_Service_Datastore_ResponseHeader'; + protected $headerDataType = ''; + protected $mutationResultType = 'Google_Service_Datastore_MutationResult'; + protected $mutationResultDataType = ''; + + public function setHeader(Google_Service_Datastore_ResponseHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } + + public function setMutationResult(Google_Service_Datastore_MutationResult $mutationResult) + { + $this->mutationResult = $mutationResult; + } + + public function getMutationResult() + { + return $this->mutationResult; + } +} + +class Google_Service_Datastore_CompositeFilter extends Google_Collection +{ + protected $collection_key = 'filters'; + protected $internal_gapi_mappings = array( + ); + protected $filtersType = 'Google_Service_Datastore_Filter'; + protected $filtersDataType = 'array'; + public $operator; + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setOperator($operator) + { + $this->operator = $operator; + } + + public function getOperator() + { + return $this->operator; + } +} + +class Google_Service_Datastore_Entity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $keyType = 'Google_Service_Datastore_Key'; + protected $keyDataType = ''; + protected $propertiesType = 'Google_Service_Datastore_Property'; + protected $propertiesDataType = 'map'; + + public function setKey(Google_Service_Datastore_Key $key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setProperties($properties) + { + $this->properties = $properties; + } + + public function getProperties() + { + return $this->properties; + } +} + +class Google_Service_Datastore_EntityProperties extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Datastore_EntityResult extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $entityType = 'Google_Service_Datastore_Entity'; + protected $entityDataType = ''; + + public function setEntity(Google_Service_Datastore_Entity $entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } +} + +class Google_Service_Datastore_Filter extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $compositeFilterType = 'Google_Service_Datastore_CompositeFilter'; + protected $compositeFilterDataType = ''; + protected $propertyFilterType = 'Google_Service_Datastore_PropertyFilter'; + protected $propertyFilterDataType = ''; + + public function setCompositeFilter(Google_Service_Datastore_CompositeFilter $compositeFilter) + { + $this->compositeFilter = $compositeFilter; + } + + public function getCompositeFilter() + { + return $this->compositeFilter; + } + + public function setPropertyFilter(Google_Service_Datastore_PropertyFilter $propertyFilter) + { + $this->propertyFilter = $propertyFilter; + } + + public function getPropertyFilter() + { + return $this->propertyFilter; + } +} + +class Google_Service_Datastore_GqlQuery extends Google_Collection +{ + protected $collection_key = 'numberArgs'; + protected $internal_gapi_mappings = array( + ); + public $allowLiteral; + protected $nameArgsType = 'Google_Service_Datastore_GqlQueryArg'; + protected $nameArgsDataType = 'array'; + protected $numberArgsType = 'Google_Service_Datastore_GqlQueryArg'; + protected $numberArgsDataType = 'array'; + public $queryString; + + public function setAllowLiteral($allowLiteral) + { + $this->allowLiteral = $allowLiteral; + } + + public function getAllowLiteral() + { + return $this->allowLiteral; + } + + public function setNameArgs($nameArgs) + { + $this->nameArgs = $nameArgs; + } + + public function getNameArgs() + { + return $this->nameArgs; + } + + public function setNumberArgs($numberArgs) + { + $this->numberArgs = $numberArgs; + } + + public function getNumberArgs() + { + return $this->numberArgs; + } + + public function setQueryString($queryString) + { + $this->queryString = $queryString; + } + + public function getQueryString() + { + return $this->queryString; + } +} + +class Google_Service_Datastore_GqlQueryArg extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $cursor; + public $name; + protected $valueType = 'Google_Service_Datastore_Value'; + protected $valueDataType = ''; + + public function setCursor($cursor) + { + $this->cursor = $cursor; + } + + public function getCursor() + { + return $this->cursor; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue(Google_Service_Datastore_Value $value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Datastore_Key extends Google_Collection +{ + protected $collection_key = 'path'; + protected $internal_gapi_mappings = array( + ); + protected $partitionIdType = 'Google_Service_Datastore_PartitionId'; + protected $partitionIdDataType = ''; + protected $pathType = 'Google_Service_Datastore_KeyPathElement'; + protected $pathDataType = 'array'; + + public function setPartitionId(Google_Service_Datastore_PartitionId $partitionId) + { + $this->partitionId = $partitionId; + } + + public function getPartitionId() + { + return $this->partitionId; + } + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } +} + +class Google_Service_Datastore_KeyPathElement extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Datastore_KindExpression extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Datastore_LookupRequest extends Google_Collection +{ + protected $collection_key = 'keys'; + protected $internal_gapi_mappings = array( + ); + protected $keysType = 'Google_Service_Datastore_Key'; + protected $keysDataType = 'array'; + protected $readOptionsType = 'Google_Service_Datastore_ReadOptions'; + protected $readOptionsDataType = ''; + + public function setKeys($keys) + { + $this->keys = $keys; + } + + public function getKeys() + { + return $this->keys; + } + + public function setReadOptions(Google_Service_Datastore_ReadOptions $readOptions) + { + $this->readOptions = $readOptions; + } + + public function getReadOptions() + { + return $this->readOptions; + } +} + +class Google_Service_Datastore_LookupResponse extends Google_Collection +{ + protected $collection_key = 'missing'; + protected $internal_gapi_mappings = array( + ); + protected $deferredType = 'Google_Service_Datastore_Key'; + protected $deferredDataType = 'array'; + protected $foundType = 'Google_Service_Datastore_EntityResult'; + protected $foundDataType = 'array'; + protected $headerType = 'Google_Service_Datastore_ResponseHeader'; + protected $headerDataType = ''; + protected $missingType = 'Google_Service_Datastore_EntityResult'; + protected $missingDataType = 'array'; + + public function setDeferred($deferred) + { + $this->deferred = $deferred; + } + + public function getDeferred() + { + return $this->deferred; + } + + public function setFound($found) + { + $this->found = $found; + } + + public function getFound() + { + return $this->found; + } + + public function setHeader(Google_Service_Datastore_ResponseHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } + + public function setMissing($missing) + { + $this->missing = $missing; + } + + public function getMissing() + { + return $this->missing; + } +} + +class Google_Service_Datastore_Mutation extends Google_Collection +{ + protected $collection_key = 'upsert'; + protected $internal_gapi_mappings = array( + ); + protected $deleteType = 'Google_Service_Datastore_Key'; + protected $deleteDataType = 'array'; + public $force; + protected $insertType = 'Google_Service_Datastore_Entity'; + protected $insertDataType = 'array'; + protected $insertAutoIdType = 'Google_Service_Datastore_Entity'; + protected $insertAutoIdDataType = 'array'; + protected $updateType = 'Google_Service_Datastore_Entity'; + protected $updateDataType = 'array'; + protected $upsertType = 'Google_Service_Datastore_Entity'; + protected $upsertDataType = 'array'; + + public function setDelete($delete) + { + $this->delete = $delete; + } + + public function getDelete() + { + return $this->delete; + } + + public function setForce($force) + { + $this->force = $force; + } + + public function getForce() + { + return $this->force; + } + + public function setInsert($insert) + { + $this->insert = $insert; + } + + public function getInsert() + { + return $this->insert; + } + + public function setInsertAutoId($insertAutoId) + { + $this->insertAutoId = $insertAutoId; + } + + public function getInsertAutoId() + { + return $this->insertAutoId; + } + + public function setUpdate($update) + { + $this->update = $update; + } + + public function getUpdate() + { + return $this->update; + } + + public function setUpsert($upsert) + { + $this->upsert = $upsert; + } + + public function getUpsert() + { + return $this->upsert; + } +} + +class Google_Service_Datastore_MutationResult extends Google_Collection +{ + protected $collection_key = 'insertAutoIdKeys'; + protected $internal_gapi_mappings = array( + ); + public $indexUpdates; + protected $insertAutoIdKeysType = 'Google_Service_Datastore_Key'; + protected $insertAutoIdKeysDataType = 'array'; + + public function setIndexUpdates($indexUpdates) + { + $this->indexUpdates = $indexUpdates; + } + + public function getIndexUpdates() + { + return $this->indexUpdates; + } + + public function setInsertAutoIdKeys($insertAutoIdKeys) + { + $this->insertAutoIdKeys = $insertAutoIdKeys; + } + + public function getInsertAutoIdKeys() + { + return $this->insertAutoIdKeys; + } +} + +class Google_Service_Datastore_PartitionId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $datasetId; + public $namespace; + + public function setDatasetId($datasetId) + { + $this->datasetId = $datasetId; + } + + public function getDatasetId() + { + return $this->datasetId; + } + + public function setNamespace($namespace) + { + $this->namespace = $namespace; + } + + public function getNamespace() + { + return $this->namespace; + } +} + +class Google_Service_Datastore_Property extends Google_Collection +{ + protected $collection_key = 'listValue'; + protected $internal_gapi_mappings = array( + ); + public $blobKeyValue; + public $blobValue; + public $booleanValue; + public $dateTimeValue; + public $doubleValue; + protected $entityValueType = 'Google_Service_Datastore_Entity'; + protected $entityValueDataType = ''; + public $indexed; + public $integerValue; + protected $keyValueType = 'Google_Service_Datastore_Key'; + protected $keyValueDataType = ''; + protected $listValueType = 'Google_Service_Datastore_Value'; + protected $listValueDataType = 'array'; + public $meaning; + public $stringValue; + + public function setBlobKeyValue($blobKeyValue) + { + $this->blobKeyValue = $blobKeyValue; + } + + public function getBlobKeyValue() + { + return $this->blobKeyValue; + } + + public function setBlobValue($blobValue) + { + $this->blobValue = $blobValue; + } + + public function getBlobValue() + { + return $this->blobValue; + } + + public function setBooleanValue($booleanValue) + { + $this->booleanValue = $booleanValue; + } + + public function getBooleanValue() + { + return $this->booleanValue; + } + + public function setDateTimeValue($dateTimeValue) + { + $this->dateTimeValue = $dateTimeValue; + } + + public function getDateTimeValue() + { + return $this->dateTimeValue; + } + + public function setDoubleValue($doubleValue) + { + $this->doubleValue = $doubleValue; + } + + public function getDoubleValue() + { + return $this->doubleValue; + } + + public function setEntityValue(Google_Service_Datastore_Entity $entityValue) + { + $this->entityValue = $entityValue; + } + + public function getEntityValue() + { + return $this->entityValue; + } + + public function setIndexed($indexed) + { + $this->indexed = $indexed; + } + + public function getIndexed() + { + return $this->indexed; + } + + public function setIntegerValue($integerValue) + { + $this->integerValue = $integerValue; + } + + public function getIntegerValue() + { + return $this->integerValue; + } + + public function setKeyValue(Google_Service_Datastore_Key $keyValue) + { + $this->keyValue = $keyValue; + } + + public function getKeyValue() + { + return $this->keyValue; + } + + public function setListValue($listValue) + { + $this->listValue = $listValue; + } + + public function getListValue() + { + return $this->listValue; + } + + public function setMeaning($meaning) + { + $this->meaning = $meaning; + } + + public function getMeaning() + { + return $this->meaning; + } + + public function setStringValue($stringValue) + { + $this->stringValue = $stringValue; + } + + public function getStringValue() + { + return $this->stringValue; + } +} + +class Google_Service_Datastore_PropertyExpression extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $aggregationFunction; + protected $propertyType = 'Google_Service_Datastore_PropertyReference'; + protected $propertyDataType = ''; + + public function setAggregationFunction($aggregationFunction) + { + $this->aggregationFunction = $aggregationFunction; + } + + public function getAggregationFunction() + { + return $this->aggregationFunction; + } + + public function setProperty(Google_Service_Datastore_PropertyReference $property) + { + $this->property = $property; + } + + public function getProperty() + { + return $this->property; + } +} + +class Google_Service_Datastore_PropertyFilter extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $operator; + protected $propertyType = 'Google_Service_Datastore_PropertyReference'; + protected $propertyDataType = ''; + protected $valueType = 'Google_Service_Datastore_Value'; + protected $valueDataType = ''; + + public function setOperator($operator) + { + $this->operator = $operator; + } + + public function getOperator() + { + return $this->operator; + } + + public function setProperty(Google_Service_Datastore_PropertyReference $property) + { + $this->property = $property; + } + + public function getProperty() + { + return $this->property; + } + + public function setValue(Google_Service_Datastore_Value $value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Datastore_PropertyOrder extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $direction; + protected $propertyType = 'Google_Service_Datastore_PropertyReference'; + protected $propertyDataType = ''; + + public function setDirection($direction) + { + $this->direction = $direction; + } + + public function getDirection() + { + return $this->direction; + } + + public function setProperty(Google_Service_Datastore_PropertyReference $property) + { + $this->property = $property; + } + + public function getProperty() + { + return $this->property; + } +} + +class Google_Service_Datastore_PropertyReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Datastore_Query extends Google_Collection +{ + protected $collection_key = 'projection'; + protected $internal_gapi_mappings = array( + ); + public $endCursor; + protected $filterType = 'Google_Service_Datastore_Filter'; + protected $filterDataType = ''; + protected $groupByType = 'Google_Service_Datastore_PropertyReference'; + protected $groupByDataType = 'array'; + protected $kindsType = 'Google_Service_Datastore_KindExpression'; + protected $kindsDataType = 'array'; + public $limit; + public $offset; + protected $orderType = 'Google_Service_Datastore_PropertyOrder'; + protected $orderDataType = 'array'; + protected $projectionType = 'Google_Service_Datastore_PropertyExpression'; + protected $projectionDataType = 'array'; + public $startCursor; + + public function setEndCursor($endCursor) + { + $this->endCursor = $endCursor; + } + + public function getEndCursor() + { + return $this->endCursor; + } + + public function setFilter(Google_Service_Datastore_Filter $filter) + { + $this->filter = $filter; + } + + public function getFilter() + { + return $this->filter; + } + + public function setGroupBy($groupBy) + { + $this->groupBy = $groupBy; + } + + public function getGroupBy() + { + return $this->groupBy; + } + + public function setKinds($kinds) + { + $this->kinds = $kinds; + } + + public function getKinds() + { + return $this->kinds; + } + + public function setLimit($limit) + { + $this->limit = $limit; + } + + public function getLimit() + { + return $this->limit; + } + + public function setOffset($offset) + { + $this->offset = $offset; + } + + public function getOffset() + { + return $this->offset; + } + + public function setOrder($order) + { + $this->order = $order; + } + + public function getOrder() + { + return $this->order; + } + + public function setProjection($projection) + { + $this->projection = $projection; + } + + public function getProjection() + { + return $this->projection; + } + + public function setStartCursor($startCursor) + { + $this->startCursor = $startCursor; + } + + public function getStartCursor() + { + return $this->startCursor; + } +} + +class Google_Service_Datastore_QueryResultBatch extends Google_Collection +{ + protected $collection_key = 'entityResults'; + protected $internal_gapi_mappings = array( + ); + public $endCursor; + public $entityResultType; + protected $entityResultsType = 'Google_Service_Datastore_EntityResult'; + protected $entityResultsDataType = 'array'; + public $moreResults; + public $skippedResults; + + public function setEndCursor($endCursor) + { + $this->endCursor = $endCursor; + } + + public function getEndCursor() + { + return $this->endCursor; + } + + public function setEntityResultType($entityResultType) + { + $this->entityResultType = $entityResultType; + } + + public function getEntityResultType() + { + return $this->entityResultType; + } + + public function setEntityResults($entityResults) + { + $this->entityResults = $entityResults; + } + + public function getEntityResults() + { + return $this->entityResults; + } + + public function setMoreResults($moreResults) + { + $this->moreResults = $moreResults; + } + + public function getMoreResults() + { + return $this->moreResults; + } + + public function setSkippedResults($skippedResults) + { + $this->skippedResults = $skippedResults; + } + + public function getSkippedResults() + { + return $this->skippedResults; + } +} + +class Google_Service_Datastore_ReadOptions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $readConsistency; + public $transaction; + + public function setReadConsistency($readConsistency) + { + $this->readConsistency = $readConsistency; + } + + public function getReadConsistency() + { + return $this->readConsistency; + } + + public function setTransaction($transaction) + { + $this->transaction = $transaction; + } + + public function getTransaction() + { + return $this->transaction; + } +} + +class Google_Service_Datastore_ResponseHeader extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Datastore_RollbackRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $transaction; + + public function setTransaction($transaction) + { + $this->transaction = $transaction; + } + + public function getTransaction() + { + return $this->transaction; + } +} + +class Google_Service_Datastore_RollbackResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $headerType = 'Google_Service_Datastore_ResponseHeader'; + protected $headerDataType = ''; + + public function setHeader(Google_Service_Datastore_ResponseHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } +} + +class Google_Service_Datastore_RunQueryRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $gqlQueryType = 'Google_Service_Datastore_GqlQuery'; + protected $gqlQueryDataType = ''; + protected $partitionIdType = 'Google_Service_Datastore_PartitionId'; + protected $partitionIdDataType = ''; + protected $queryType = 'Google_Service_Datastore_Query'; + protected $queryDataType = ''; + protected $readOptionsType = 'Google_Service_Datastore_ReadOptions'; + protected $readOptionsDataType = ''; + + public function setGqlQuery(Google_Service_Datastore_GqlQuery $gqlQuery) + { + $this->gqlQuery = $gqlQuery; + } + + public function getGqlQuery() + { + return $this->gqlQuery; + } + + public function setPartitionId(Google_Service_Datastore_PartitionId $partitionId) + { + $this->partitionId = $partitionId; + } + + public function getPartitionId() + { + return $this->partitionId; + } + + public function setQuery(Google_Service_Datastore_Query $query) + { + $this->query = $query; + } + + public function getQuery() + { + return $this->query; + } + + public function setReadOptions(Google_Service_Datastore_ReadOptions $readOptions) + { + $this->readOptions = $readOptions; + } + + public function getReadOptions() + { + return $this->readOptions; + } +} + +class Google_Service_Datastore_RunQueryResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $batchType = 'Google_Service_Datastore_QueryResultBatch'; + protected $batchDataType = ''; + protected $headerType = 'Google_Service_Datastore_ResponseHeader'; + protected $headerDataType = ''; + + public function setBatch(Google_Service_Datastore_QueryResultBatch $batch) + { + $this->batch = $batch; + } + + public function getBatch() + { + return $this->batch; + } + + public function setHeader(Google_Service_Datastore_ResponseHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } +} + +class Google_Service_Datastore_Value extends Google_Collection +{ + protected $collection_key = 'listValue'; + protected $internal_gapi_mappings = array( + ); + public $blobKeyValue; + public $blobValue; + public $booleanValue; + public $dateTimeValue; + public $doubleValue; + protected $entityValueType = 'Google_Service_Datastore_Entity'; + protected $entityValueDataType = ''; + public $indexed; + public $integerValue; + protected $keyValueType = 'Google_Service_Datastore_Key'; + protected $keyValueDataType = ''; + protected $listValueType = 'Google_Service_Datastore_Value'; + protected $listValueDataType = 'array'; + public $meaning; + public $stringValue; + + public function setBlobKeyValue($blobKeyValue) + { + $this->blobKeyValue = $blobKeyValue; + } + + public function getBlobKeyValue() + { + return $this->blobKeyValue; + } + + public function setBlobValue($blobValue) + { + $this->blobValue = $blobValue; + } + + public function getBlobValue() + { + return $this->blobValue; + } + + public function setBooleanValue($booleanValue) + { + $this->booleanValue = $booleanValue; + } + + public function getBooleanValue() + { + return $this->booleanValue; + } + + public function setDateTimeValue($dateTimeValue) + { + $this->dateTimeValue = $dateTimeValue; + } + + public function getDateTimeValue() + { + return $this->dateTimeValue; + } + + public function setDoubleValue($doubleValue) + { + $this->doubleValue = $doubleValue; + } + + public function getDoubleValue() + { + return $this->doubleValue; + } + + public function setEntityValue(Google_Service_Datastore_Entity $entityValue) + { + $this->entityValue = $entityValue; + } + + public function getEntityValue() + { + return $this->entityValue; + } + + public function setIndexed($indexed) + { + $this->indexed = $indexed; + } + + public function getIndexed() + { + return $this->indexed; + } + + public function setIntegerValue($integerValue) + { + $this->integerValue = $integerValue; + } + + public function getIntegerValue() + { + return $this->integerValue; + } + + public function setKeyValue(Google_Service_Datastore_Key $keyValue) + { + $this->keyValue = $keyValue; + } + + public function getKeyValue() + { + return $this->keyValue; + } + + public function setListValue($listValue) + { + $this->listValue = $listValue; + } + + public function getListValue() + { + return $this->listValue; + } + + public function setMeaning($meaning) + { + $this->meaning = $meaning; + } + + public function getMeaning() + { + return $this->meaning; + } + + public function setStringValue($stringValue) + { + $this->stringValue = $stringValue; + } + + public function getStringValue() + { + return $this->stringValue; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Dfareporting.php b/vendor/google/apiclient/src/Google/Service/Dfareporting.php new file mode 100644 index 0000000..79a41a0 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Dfareporting.php @@ -0,0 +1,3016 @@ + + * Lets you create, run and download reports. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Dfareporting extends Google_Service +{ + /** View and manage DoubleClick for Advertisers reports. */ + const DFAREPORTING = "https://www.googleapis.com/auth/dfareporting"; + + public $dimensionValues; + public $files; + public $reports; + public $reports_compatibleFields; + public $reports_files; + public $userProfiles; + + + /** + * Constructs the internal representation of the Dfareporting service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'dfareporting/v1.3/'; + $this->version = 'v1.3'; + $this->serviceName = 'dfareporting'; + + $this->dimensionValues = new Google_Service_Dfareporting_DimensionValues_Resource( + $this, + $this->serviceName, + 'dimensionValues', + array( + 'methods' => array( + 'query' => array( + 'path' => 'userprofiles/{profileId}/dimensionvalues/query', + 'httpMethod' => 'POST', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->files = new Google_Service_Dfareporting_Files_Resource( + $this, + $this->serviceName, + 'files', + array( + 'methods' => array( + 'get' => array( + 'path' => 'reports/{reportId}/files/{fileId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'userprofiles/{profileId}/files', + 'httpMethod' => 'GET', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sortField' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'scope' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->reports = new Google_Service_Dfareporting_Reports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'userprofiles/{profileId}/reports', + 'httpMethod' => 'POST', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'userprofiles/{profileId}/reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sortField' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'scope' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'run' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}/run', + 'httpMethod' => 'POST', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'synchronous' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->reports_compatibleFields = new Google_Service_Dfareporting_ReportsCompatibleFields_Resource( + $this, + $this->serviceName, + 'compatibleFields', + array( + 'methods' => array( + 'query' => array( + 'path' => 'userprofiles/{profileId}/reports/compatiblefields/query', + 'httpMethod' => 'POST', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->reports_files = new Google_Service_Dfareporting_ReportsFiles_Resource( + $this, + $this->serviceName, + 'files', + array( + 'methods' => array( + 'get' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}/files/{fileId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'userprofiles/{profileId}/reports/{reportId}/files', + 'httpMethod' => 'GET', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sortField' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->userProfiles = new Google_Service_Dfareporting_UserProfiles_Resource( + $this, + $this->serviceName, + 'userProfiles', + array( + 'methods' => array( + 'get' => array( + 'path' => 'userprofiles/{profileId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'profileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'userprofiles', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "dimensionValues" collection of methods. + * Typical usage is: + * + * $dfareportingService = new Google_Service_Dfareporting(...); + * $dimensionValues = $dfareportingService->dimensionValues; + * + */ +class Google_Service_Dfareporting_DimensionValues_Resource extends Google_Service_Resource +{ + + /** + * Retrieves list of report dimension values for a list of filters. + * (dimensionValues.query) + * + * @param string $profileId + * The DFA user profile ID. + * @param Google_DimensionValueRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The value of the nextToken from the previous result page. + * @opt_param int maxResults + * Maximum number of results to return. + * @return Google_Service_Dfareporting_DimensionValueList + */ + public function query($profileId, Google_Service_Dfareporting_DimensionValueRequest $postBody, $optParams = array()) + { + $params = array('profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('query', array($params), "Google_Service_Dfareporting_DimensionValueList"); + } +} + +/** + * The "files" collection of methods. + * Typical usage is: + * + * $dfareportingService = new Google_Service_Dfareporting(...); + * $files = $dfareportingService->files; + * + */ +class Google_Service_Dfareporting_Files_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a report file by its report ID and file ID. (files.get) + * + * @param string $reportId + * The ID of the report. + * @param string $fileId + * The ID of the report file. + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_DfareportingFile + */ + public function get($reportId, $fileId, $optParams = array()) + { + $params = array('reportId' => $reportId, 'fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dfareporting_DfareportingFile"); + } + /** + * Lists files for a user profile. (files.listFiles) + * + * @param string $profileId + * The DFA profile ID. + * @param array $optParams Optional parameters. + * + * @opt_param string sortField + * The field by which to sort the list. + * @opt_param int maxResults + * Maximum number of results to return. + * @opt_param string pageToken + * The value of the nextToken from the previous result page. + * @opt_param string sortOrder + * Order of sorted results, default is 'DESCENDING'. + * @opt_param string scope + * The scope that defines which results are returned, default is 'MINE'. + * @return Google_Service_Dfareporting_FileList + */ + public function listFiles($profileId, $optParams = array()) + { + $params = array('profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dfareporting_FileList"); + } +} + +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $dfareportingService = new Google_Service_Dfareporting(...); + * $reports = $dfareportingService->reports; + * + */ +class Google_Service_Dfareporting_Reports_Resource extends Google_Service_Resource +{ + + /** + * Deletes a report by its ID. (reports.delete) + * + * @param string $profileId + * The DFA user profile ID. + * @param string $reportId + * The ID of the report. + * @param array $optParams Optional parameters. + */ + public function delete($profileId, $reportId, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a report by its ID. (reports.get) + * + * @param string $profileId + * The DFA user profile ID. + * @param string $reportId + * The ID of the report. + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_Report + */ + public function get($profileId, $reportId, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dfareporting_Report"); + } + /** + * Creates a report. (reports.insert) + * + * @param string $profileId + * The DFA user profile ID. + * @param Google_Report $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_Report + */ + public function insert($profileId, Google_Service_Dfareporting_Report $postBody, $optParams = array()) + { + $params = array('profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Dfareporting_Report"); + } + /** + * Retrieves list of reports. (reports.listReports) + * + * @param string $profileId + * The DFA user profile ID. + * @param array $optParams Optional parameters. + * + * @opt_param string sortField + * The field by which to sort the list. + * @opt_param int maxResults + * Maximum number of results to return. + * @opt_param string pageToken + * The value of the nextToken from the previous result page. + * @opt_param string sortOrder + * Order of sorted results, default is 'DESCENDING'. + * @opt_param string scope + * The scope that defines which results are returned, default is 'MINE'. + * @return Google_Service_Dfareporting_ReportList + */ + public function listReports($profileId, $optParams = array()) + { + $params = array('profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dfareporting_ReportList"); + } + /** + * Updates a report. This method supports patch semantics. (reports.patch) + * + * @param string $profileId + * The DFA user profile ID. + * @param string $reportId + * The ID of the report. + * @param Google_Report $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_Report + */ + public function patch($profileId, $reportId, Google_Service_Dfareporting_Report $postBody, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Dfareporting_Report"); + } + /** + * Runs a report. (reports.run) + * + * @param string $profileId + * The DFA profile ID. + * @param string $reportId + * The ID of the report. + * @param array $optParams Optional parameters. + * + * @opt_param bool synchronous + * If set and true, tries to run the report synchronously. + * @return Google_Service_Dfareporting_DfareportingFile + */ + public function run($profileId, $reportId, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId); + $params = array_merge($params, $optParams); + return $this->call('run', array($params), "Google_Service_Dfareporting_DfareportingFile"); + } + /** + * Updates a report. (reports.update) + * + * @param string $profileId + * The DFA user profile ID. + * @param string $reportId + * The ID of the report. + * @param Google_Report $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_Report + */ + public function update($profileId, $reportId, Google_Service_Dfareporting_Report $postBody, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Dfareporting_Report"); + } +} + +/** + * The "compatibleFields" collection of methods. + * Typical usage is: + * + * $dfareportingService = new Google_Service_Dfareporting(...); + * $compatibleFields = $dfareportingService->compatibleFields; + * + */ +class Google_Service_Dfareporting_ReportsCompatibleFields_Resource extends Google_Service_Resource +{ + + /** + * Returns the fields that are compatible to be selected in the respective + * sections of a report criteria, given the fields already selected in the input + * report and user permissions. (compatibleFields.query) + * + * @param string $profileId + * The DFA user profile ID. + * @param Google_Report $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_CompatibleFields + */ + public function query($profileId, Google_Service_Dfareporting_Report $postBody, $optParams = array()) + { + $params = array('profileId' => $profileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('query', array($params), "Google_Service_Dfareporting_CompatibleFields"); + } +} +/** + * The "files" collection of methods. + * Typical usage is: + * + * $dfareportingService = new Google_Service_Dfareporting(...); + * $files = $dfareportingService->files; + * + */ +class Google_Service_Dfareporting_ReportsFiles_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a report file. (files.get) + * + * @param string $profileId + * The DFA profile ID. + * @param string $reportId + * The ID of the report. + * @param string $fileId + * The ID of the report file. + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_DfareportingFile + */ + public function get($profileId, $reportId, $fileId, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId, 'fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dfareporting_DfareportingFile"); + } + /** + * Lists files for a report. (files.listReportsFiles) + * + * @param string $profileId + * The DFA profile ID. + * @param string $reportId + * The ID of the parent report. + * @param array $optParams Optional parameters. + * + * @opt_param string sortField + * The field by which to sort the list. + * @opt_param int maxResults + * Maximum number of results to return. + * @opt_param string pageToken + * The value of the nextToken from the previous result page. + * @opt_param string sortOrder + * Order of sorted results, default is 'DESCENDING'. + * @return Google_Service_Dfareporting_FileList + */ + public function listReportsFiles($profileId, $reportId, $optParams = array()) + { + $params = array('profileId' => $profileId, 'reportId' => $reportId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dfareporting_FileList"); + } +} + +/** + * The "userProfiles" collection of methods. + * Typical usage is: + * + * $dfareportingService = new Google_Service_Dfareporting(...); + * $userProfiles = $dfareportingService->userProfiles; + * + */ +class Google_Service_Dfareporting_UserProfiles_Resource extends Google_Service_Resource +{ + + /** + * Gets one user profile by ID. (userProfiles.get) + * + * @param string $profileId + * The user profile ID. + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_UserProfile + */ + public function get($profileId, $optParams = array()) + { + $params = array('profileId' => $profileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dfareporting_UserProfile"); + } + /** + * Retrieves list of user profiles for a user. (userProfiles.listUserProfiles) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Dfareporting_UserProfileList + */ + public function listUserProfiles($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dfareporting_UserProfileList"); + } +} + + + + +class Google_Service_Dfareporting_Activities extends Google_Collection +{ + protected $collection_key = 'metricNames'; + protected $internal_gapi_mappings = array( + ); + protected $filtersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $filtersDataType = 'array'; + public $kind; + public $metricNames; + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } +} + +class Google_Service_Dfareporting_CompatibleFields extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $crossDimensionReachReportCompatibleFieldsType = 'Google_Service_Dfareporting_CrossDimensionReachReportCompatibleFields'; + protected $crossDimensionReachReportCompatibleFieldsDataType = ''; + protected $floodlightReportCompatibleFieldsType = 'Google_Service_Dfareporting_FloodlightReportCompatibleFields'; + protected $floodlightReportCompatibleFieldsDataType = ''; + public $kind; + protected $pathToConversionReportCompatibleFieldsType = 'Google_Service_Dfareporting_PathToConversionReportCompatibleFields'; + protected $pathToConversionReportCompatibleFieldsDataType = ''; + protected $reachReportCompatibleFieldsType = 'Google_Service_Dfareporting_ReachReportCompatibleFields'; + protected $reachReportCompatibleFieldsDataType = ''; + protected $reportCompatibleFieldsType = 'Google_Service_Dfareporting_ReportCompatibleFields'; + protected $reportCompatibleFieldsDataType = ''; + + public function setCrossDimensionReachReportCompatibleFields(Google_Service_Dfareporting_CrossDimensionReachReportCompatibleFields $crossDimensionReachReportCompatibleFields) + { + $this->crossDimensionReachReportCompatibleFields = $crossDimensionReachReportCompatibleFields; + } + + public function getCrossDimensionReachReportCompatibleFields() + { + return $this->crossDimensionReachReportCompatibleFields; + } + + public function setFloodlightReportCompatibleFields(Google_Service_Dfareporting_FloodlightReportCompatibleFields $floodlightReportCompatibleFields) + { + $this->floodlightReportCompatibleFields = $floodlightReportCompatibleFields; + } + + public function getFloodlightReportCompatibleFields() + { + return $this->floodlightReportCompatibleFields; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPathToConversionReportCompatibleFields(Google_Service_Dfareporting_PathToConversionReportCompatibleFields $pathToConversionReportCompatibleFields) + { + $this->pathToConversionReportCompatibleFields = $pathToConversionReportCompatibleFields; + } + + public function getPathToConversionReportCompatibleFields() + { + return $this->pathToConversionReportCompatibleFields; + } + + public function setReachReportCompatibleFields(Google_Service_Dfareporting_ReachReportCompatibleFields $reachReportCompatibleFields) + { + $this->reachReportCompatibleFields = $reachReportCompatibleFields; + } + + public function getReachReportCompatibleFields() + { + return $this->reachReportCompatibleFields; + } + + public function setReportCompatibleFields(Google_Service_Dfareporting_ReportCompatibleFields $reportCompatibleFields) + { + $this->reportCompatibleFields = $reportCompatibleFields; + } + + public function getReportCompatibleFields() + { + return $this->reportCompatibleFields; + } +} + +class Google_Service_Dfareporting_CrossDimensionReachReportCompatibleFields extends Google_Collection +{ + protected $collection_key = 'overlapMetrics'; + protected $internal_gapi_mappings = array( + ); + protected $breakdownType = 'Google_Service_Dfareporting_Dimension'; + protected $breakdownDataType = 'array'; + protected $dimensionFiltersType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionFiltersDataType = 'array'; + public $kind; + protected $metricsType = 'Google_Service_Dfareporting_Metric'; + protected $metricsDataType = 'array'; + protected $overlapMetricsType = 'Google_Service_Dfareporting_Metric'; + protected $overlapMetricsDataType = 'array'; + + public function setBreakdown($breakdown) + { + $this->breakdown = $breakdown; + } + + public function getBreakdown() + { + return $this->breakdown; + } + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setOverlapMetrics($overlapMetrics) + { + $this->overlapMetrics = $overlapMetrics; + } + + public function getOverlapMetrics() + { + return $this->overlapMetrics; + } +} + +class Google_Service_Dfareporting_CustomRichMediaEvents extends Google_Collection +{ + protected $collection_key = 'filteredEventIds'; + protected $internal_gapi_mappings = array( + ); + protected $filteredEventIdsType = 'Google_Service_Dfareporting_DimensionValue'; + protected $filteredEventIdsDataType = 'array'; + public $kind; + + public function setFilteredEventIds($filteredEventIds) + { + $this->filteredEventIds = $filteredEventIds; + } + + public function getFilteredEventIds() + { + return $this->filteredEventIds; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Dfareporting_DateRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endDate; + public $kind; + public $relativeDateRange; + public $startDate; + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRelativeDateRange($relativeDateRange) + { + $this->relativeDateRange = $relativeDateRange; + } + + public function getRelativeDateRange() + { + return $this->relativeDateRange; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } +} + +class Google_Service_Dfareporting_DfareportingFile extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + public $etag; + public $fileName; + public $format; + public $id; + public $kind; + public $lastModifiedTime; + public $reportId; + public $status; + protected $urlsType = 'Google_Service_Dfareporting_DfareportingFileUrls'; + protected $urlsDataType = ''; + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFileName($fileName) + { + $this->fileName = $fileName; + } + + public function getFileName() + { + return $this->fileName; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setReportId($reportId) + { + $this->reportId = $reportId; + } + + public function getReportId() + { + return $this->reportId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUrls(Google_Service_Dfareporting_DfareportingFileUrls $urls) + { + $this->urls = $urls; + } + + public function getUrls() + { + return $this->urls; + } +} + +class Google_Service_Dfareporting_DfareportingFileUrls extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $apiUrl; + public $browserUrl; + + public function setApiUrl($apiUrl) + { + $this->apiUrl = $apiUrl; + } + + public function getApiUrl() + { + return $this->apiUrl; + } + + public function setBrowserUrl($browserUrl) + { + $this->browserUrl = $browserUrl; + } + + public function getBrowserUrl() + { + return $this->browserUrl; + } +} + +class Google_Service_Dfareporting_Dimension extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $name; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Dfareporting_DimensionFilter extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $dimensionName; + public $kind; + public $value; + + public function setDimensionName($dimensionName) + { + $this->dimensionName = $dimensionName; + } + + public function getDimensionName() + { + return $this->dimensionName; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Dfareporting_DimensionValue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $dimensionName; + public $etag; + public $id; + public $kind; + public $matchType; + public $value; + + public function setDimensionName($dimensionName) + { + $this->dimensionName = $dimensionName; + } + + public function getDimensionName() + { + return $this->dimensionName; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMatchType($matchType) + { + $this->matchType = $matchType; + } + + public function getMatchType() + { + return $this->matchType; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Dfareporting_DimensionValueList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Dfareporting_DimensionValue'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Dfareporting_DimensionValueRequest extends Google_Collection +{ + protected $collection_key = 'filters'; + protected $internal_gapi_mappings = array( + ); + public $dimensionName; + public $endDate; + protected $filtersType = 'Google_Service_Dfareporting_DimensionFilter'; + protected $filtersDataType = 'array'; + public $kind; + public $startDate; + + public function setDimensionName($dimensionName) + { + $this->dimensionName = $dimensionName; + } + + public function getDimensionName() + { + return $this->dimensionName; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } +} + +class Google_Service_Dfareporting_FileList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Dfareporting_DfareportingFile'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Dfareporting_FloodlightReportCompatibleFields extends Google_Collection +{ + protected $collection_key = 'metrics'; + protected $internal_gapi_mappings = array( + ); + protected $dimensionFiltersType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionsDataType = 'array'; + public $kind; + protected $metricsType = 'Google_Service_Dfareporting_Metric'; + protected $metricsDataType = 'array'; + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } +} + +class Google_Service_Dfareporting_Metric extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $name; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Dfareporting_PathToConversionReportCompatibleFields extends Google_Collection +{ + protected $collection_key = 'perInteractionDimensions'; + protected $internal_gapi_mappings = array( + ); + protected $conversionDimensionsType = 'Google_Service_Dfareporting_Dimension'; + protected $conversionDimensionsDataType = 'array'; + protected $customFloodlightVariablesType = 'Google_Service_Dfareporting_Dimension'; + protected $customFloodlightVariablesDataType = 'array'; + public $kind; + protected $metricsType = 'Google_Service_Dfareporting_Metric'; + protected $metricsDataType = 'array'; + protected $perInteractionDimensionsType = 'Google_Service_Dfareporting_Dimension'; + protected $perInteractionDimensionsDataType = 'array'; + + public function setConversionDimensions($conversionDimensions) + { + $this->conversionDimensions = $conversionDimensions; + } + + public function getConversionDimensions() + { + return $this->conversionDimensions; + } + + public function setCustomFloodlightVariables($customFloodlightVariables) + { + $this->customFloodlightVariables = $customFloodlightVariables; + } + + public function getCustomFloodlightVariables() + { + return $this->customFloodlightVariables; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setPerInteractionDimensions($perInteractionDimensions) + { + $this->perInteractionDimensions = $perInteractionDimensions; + } + + public function getPerInteractionDimensions() + { + return $this->perInteractionDimensions; + } +} + +class Google_Service_Dfareporting_ReachReportCompatibleFields extends Google_Collection +{ + protected $collection_key = 'reachByFrequencyMetrics'; + protected $internal_gapi_mappings = array( + ); + protected $dimensionFiltersType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionsDataType = 'array'; + public $kind; + protected $metricsType = 'Google_Service_Dfareporting_Metric'; + protected $metricsDataType = 'array'; + protected $pivotedActivityMetricsType = 'Google_Service_Dfareporting_Metric'; + protected $pivotedActivityMetricsDataType = 'array'; + protected $reachByFrequencyMetricsType = 'Google_Service_Dfareporting_Metric'; + protected $reachByFrequencyMetricsDataType = 'array'; + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setPivotedActivityMetrics($pivotedActivityMetrics) + { + $this->pivotedActivityMetrics = $pivotedActivityMetrics; + } + + public function getPivotedActivityMetrics() + { + return $this->pivotedActivityMetrics; + } + + public function setReachByFrequencyMetrics($reachByFrequencyMetrics) + { + $this->reachByFrequencyMetrics = $reachByFrequencyMetrics; + } + + public function getReachByFrequencyMetrics() + { + return $this->reachByFrequencyMetrics; + } +} + +class Google_Service_Dfareporting_Recipient extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deliveryType; + public $email; + public $kind; + + public function setDeliveryType($deliveryType) + { + $this->deliveryType = $deliveryType; + } + + public function getDeliveryType() + { + return $this->deliveryType; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Dfareporting_Report extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + protected $activeGrpCriteriaType = 'Google_Service_Dfareporting_ReportActiveGrpCriteria'; + protected $activeGrpCriteriaDataType = ''; + protected $criteriaType = 'Google_Service_Dfareporting_ReportCriteria'; + protected $criteriaDataType = ''; + protected $crossDimensionReachCriteriaType = 'Google_Service_Dfareporting_ReportCrossDimensionReachCriteria'; + protected $crossDimensionReachCriteriaDataType = ''; + protected $deliveryType = 'Google_Service_Dfareporting_ReportDelivery'; + protected $deliveryDataType = ''; + public $etag; + public $fileName; + protected $floodlightCriteriaType = 'Google_Service_Dfareporting_ReportFloodlightCriteria'; + protected $floodlightCriteriaDataType = ''; + public $format; + public $id; + public $kind; + public $lastModifiedTime; + public $name; + public $ownerProfileId; + protected $pathToConversionCriteriaType = 'Google_Service_Dfareporting_ReportPathToConversionCriteria'; + protected $pathToConversionCriteriaDataType = ''; + protected $reachCriteriaType = 'Google_Service_Dfareporting_ReportReachCriteria'; + protected $reachCriteriaDataType = ''; + protected $scheduleType = 'Google_Service_Dfareporting_ReportSchedule'; + protected $scheduleDataType = ''; + public $subAccountId; + public $type; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setActiveGrpCriteria(Google_Service_Dfareporting_ReportActiveGrpCriteria $activeGrpCriteria) + { + $this->activeGrpCriteria = $activeGrpCriteria; + } + + public function getActiveGrpCriteria() + { + return $this->activeGrpCriteria; + } + + public function setCriteria(Google_Service_Dfareporting_ReportCriteria $criteria) + { + $this->criteria = $criteria; + } + + public function getCriteria() + { + return $this->criteria; + } + + public function setCrossDimensionReachCriteria(Google_Service_Dfareporting_ReportCrossDimensionReachCriteria $crossDimensionReachCriteria) + { + $this->crossDimensionReachCriteria = $crossDimensionReachCriteria; + } + + public function getCrossDimensionReachCriteria() + { + return $this->crossDimensionReachCriteria; + } + + public function setDelivery(Google_Service_Dfareporting_ReportDelivery $delivery) + { + $this->delivery = $delivery; + } + + public function getDelivery() + { + return $this->delivery; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFileName($fileName) + { + $this->fileName = $fileName; + } + + public function getFileName() + { + return $this->fileName; + } + + public function setFloodlightCriteria(Google_Service_Dfareporting_ReportFloodlightCriteria $floodlightCriteria) + { + $this->floodlightCriteria = $floodlightCriteria; + } + + public function getFloodlightCriteria() + { + return $this->floodlightCriteria; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOwnerProfileId($ownerProfileId) + { + $this->ownerProfileId = $ownerProfileId; + } + + public function getOwnerProfileId() + { + return $this->ownerProfileId; + } + + public function setPathToConversionCriteria(Google_Service_Dfareporting_ReportPathToConversionCriteria $pathToConversionCriteria) + { + $this->pathToConversionCriteria = $pathToConversionCriteria; + } + + public function getPathToConversionCriteria() + { + return $this->pathToConversionCriteria; + } + + public function setReachCriteria(Google_Service_Dfareporting_ReportReachCriteria $reachCriteria) + { + $this->reachCriteria = $reachCriteria; + } + + public function getReachCriteria() + { + return $this->reachCriteria; + } + + public function setSchedule(Google_Service_Dfareporting_ReportSchedule $schedule) + { + $this->schedule = $schedule; + } + + public function getSchedule() + { + return $this->schedule; + } + + public function setSubAccountId($subAccountId) + { + $this->subAccountId = $subAccountId; + } + + public function getSubAccountId() + { + return $this->subAccountId; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Dfareporting_ReportActiveGrpCriteria extends Google_Collection +{ + protected $collection_key = 'metricNames'; + protected $internal_gapi_mappings = array( + ); + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + protected $dimensionFiltersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_SortedDimension'; + protected $dimensionsDataType = 'array'; + public $metricNames; + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } +} + +class Google_Service_Dfareporting_ReportCompatibleFields extends Google_Collection +{ + protected $collection_key = 'pivotedActivityMetrics'; + protected $internal_gapi_mappings = array( + ); + protected $dimensionFiltersType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_Dimension'; + protected $dimensionsDataType = 'array'; + public $kind; + protected $metricsType = 'Google_Service_Dfareporting_Metric'; + protected $metricsDataType = 'array'; + protected $pivotedActivityMetricsType = 'Google_Service_Dfareporting_Metric'; + protected $pivotedActivityMetricsDataType = 'array'; + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setPivotedActivityMetrics($pivotedActivityMetrics) + { + $this->pivotedActivityMetrics = $pivotedActivityMetrics; + } + + public function getPivotedActivityMetrics() + { + return $this->pivotedActivityMetrics; + } +} + +class Google_Service_Dfareporting_ReportCriteria extends Google_Collection +{ + protected $collection_key = 'metricNames'; + protected $internal_gapi_mappings = array( + ); + protected $activitiesType = 'Google_Service_Dfareporting_Activities'; + protected $activitiesDataType = ''; + protected $customRichMediaEventsType = 'Google_Service_Dfareporting_CustomRichMediaEvents'; + protected $customRichMediaEventsDataType = ''; + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + protected $dimensionFiltersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_SortedDimension'; + protected $dimensionsDataType = 'array'; + public $metricNames; + + public function setActivities(Google_Service_Dfareporting_Activities $activities) + { + $this->activities = $activities; + } + + public function getActivities() + { + return $this->activities; + } + + public function setCustomRichMediaEvents(Google_Service_Dfareporting_CustomRichMediaEvents $customRichMediaEvents) + { + $this->customRichMediaEvents = $customRichMediaEvents; + } + + public function getCustomRichMediaEvents() + { + return $this->customRichMediaEvents; + } + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } +} + +class Google_Service_Dfareporting_ReportCrossDimensionReachCriteria extends Google_Collection +{ + protected $collection_key = 'overlapMetricNames'; + protected $internal_gapi_mappings = array( + ); + protected $breakdownType = 'Google_Service_Dfareporting_SortedDimension'; + protected $breakdownDataType = 'array'; + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + public $dimension; + protected $dimensionFiltersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $dimensionFiltersDataType = 'array'; + public $metricNames; + public $overlapMetricNames; + public $pivoted; + + public function setBreakdown($breakdown) + { + $this->breakdown = $breakdown; + } + + public function getBreakdown() + { + return $this->breakdown; + } + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setDimension($dimension) + { + $this->dimension = $dimension; + } + + public function getDimension() + { + return $this->dimension; + } + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } + + public function setOverlapMetricNames($overlapMetricNames) + { + $this->overlapMetricNames = $overlapMetricNames; + } + + public function getOverlapMetricNames() + { + return $this->overlapMetricNames; + } + + public function setPivoted($pivoted) + { + $this->pivoted = $pivoted; + } + + public function getPivoted() + { + return $this->pivoted; + } +} + +class Google_Service_Dfareporting_ReportDelivery extends Google_Collection +{ + protected $collection_key = 'recipients'; + protected $internal_gapi_mappings = array( + ); + public $emailOwner; + public $emailOwnerDeliveryType; + public $message; + protected $recipientsType = 'Google_Service_Dfareporting_Recipient'; + protected $recipientsDataType = 'array'; + + public function setEmailOwner($emailOwner) + { + $this->emailOwner = $emailOwner; + } + + public function getEmailOwner() + { + return $this->emailOwner; + } + + public function setEmailOwnerDeliveryType($emailOwnerDeliveryType) + { + $this->emailOwnerDeliveryType = $emailOwnerDeliveryType; + } + + public function getEmailOwnerDeliveryType() + { + return $this->emailOwnerDeliveryType; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setRecipients($recipients) + { + $this->recipients = $recipients; + } + + public function getRecipients() + { + return $this->recipients; + } +} + +class Google_Service_Dfareporting_ReportFloodlightCriteria extends Google_Collection +{ + protected $collection_key = 'metricNames'; + protected $internal_gapi_mappings = array( + ); + protected $customRichMediaEventsType = 'Google_Service_Dfareporting_DimensionValue'; + protected $customRichMediaEventsDataType = 'array'; + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + protected $dimensionFiltersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_SortedDimension'; + protected $dimensionsDataType = 'array'; + protected $floodlightConfigIdType = 'Google_Service_Dfareporting_DimensionValue'; + protected $floodlightConfigIdDataType = ''; + public $metricNames; + protected $reportPropertiesType = 'Google_Service_Dfareporting_ReportFloodlightCriteriaReportProperties'; + protected $reportPropertiesDataType = ''; + + public function setCustomRichMediaEvents($customRichMediaEvents) + { + $this->customRichMediaEvents = $customRichMediaEvents; + } + + public function getCustomRichMediaEvents() + { + return $this->customRichMediaEvents; + } + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setFloodlightConfigId(Google_Service_Dfareporting_DimensionValue $floodlightConfigId) + { + $this->floodlightConfigId = $floodlightConfigId; + } + + public function getFloodlightConfigId() + { + return $this->floodlightConfigId; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } + + public function setReportProperties(Google_Service_Dfareporting_ReportFloodlightCriteriaReportProperties $reportProperties) + { + $this->reportProperties = $reportProperties; + } + + public function getReportProperties() + { + return $this->reportProperties; + } +} + +class Google_Service_Dfareporting_ReportFloodlightCriteriaReportProperties extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $includeAttributedIPConversions; + public $includeUnattributedCookieConversions; + public $includeUnattributedIPConversions; + + public function setIncludeAttributedIPConversions($includeAttributedIPConversions) + { + $this->includeAttributedIPConversions = $includeAttributedIPConversions; + } + + public function getIncludeAttributedIPConversions() + { + return $this->includeAttributedIPConversions; + } + + public function setIncludeUnattributedCookieConversions($includeUnattributedCookieConversions) + { + $this->includeUnattributedCookieConversions = $includeUnattributedCookieConversions; + } + + public function getIncludeUnattributedCookieConversions() + { + return $this->includeUnattributedCookieConversions; + } + + public function setIncludeUnattributedIPConversions($includeUnattributedIPConversions) + { + $this->includeUnattributedIPConversions = $includeUnattributedIPConversions; + } + + public function getIncludeUnattributedIPConversions() + { + return $this->includeUnattributedIPConversions; + } +} + +class Google_Service_Dfareporting_ReportList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Dfareporting_Report'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Dfareporting_ReportPathToConversionCriteria extends Google_Collection +{ + protected $collection_key = 'perInteractionDimensions'; + protected $internal_gapi_mappings = array( + ); + protected $activityFiltersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $activityFiltersDataType = 'array'; + protected $conversionDimensionsType = 'Google_Service_Dfareporting_SortedDimension'; + protected $conversionDimensionsDataType = 'array'; + protected $customFloodlightVariablesType = 'Google_Service_Dfareporting_SortedDimension'; + protected $customFloodlightVariablesDataType = 'array'; + protected $customRichMediaEventsType = 'Google_Service_Dfareporting_DimensionValue'; + protected $customRichMediaEventsDataType = 'array'; + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + protected $floodlightConfigIdType = 'Google_Service_Dfareporting_DimensionValue'; + protected $floodlightConfigIdDataType = ''; + public $metricNames; + protected $perInteractionDimensionsType = 'Google_Service_Dfareporting_SortedDimension'; + protected $perInteractionDimensionsDataType = 'array'; + protected $reportPropertiesType = 'Google_Service_Dfareporting_ReportPathToConversionCriteriaReportProperties'; + protected $reportPropertiesDataType = ''; + + public function setActivityFilters($activityFilters) + { + $this->activityFilters = $activityFilters; + } + + public function getActivityFilters() + { + return $this->activityFilters; + } + + public function setConversionDimensions($conversionDimensions) + { + $this->conversionDimensions = $conversionDimensions; + } + + public function getConversionDimensions() + { + return $this->conversionDimensions; + } + + public function setCustomFloodlightVariables($customFloodlightVariables) + { + $this->customFloodlightVariables = $customFloodlightVariables; + } + + public function getCustomFloodlightVariables() + { + return $this->customFloodlightVariables; + } + + public function setCustomRichMediaEvents($customRichMediaEvents) + { + $this->customRichMediaEvents = $customRichMediaEvents; + } + + public function getCustomRichMediaEvents() + { + return $this->customRichMediaEvents; + } + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setFloodlightConfigId(Google_Service_Dfareporting_DimensionValue $floodlightConfigId) + { + $this->floodlightConfigId = $floodlightConfigId; + } + + public function getFloodlightConfigId() + { + return $this->floodlightConfigId; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } + + public function setPerInteractionDimensions($perInteractionDimensions) + { + $this->perInteractionDimensions = $perInteractionDimensions; + } + + public function getPerInteractionDimensions() + { + return $this->perInteractionDimensions; + } + + public function setReportProperties(Google_Service_Dfareporting_ReportPathToConversionCriteriaReportProperties $reportProperties) + { + $this->reportProperties = $reportProperties; + } + + public function getReportProperties() + { + return $this->reportProperties; + } +} + +class Google_Service_Dfareporting_ReportPathToConversionCriteriaReportProperties extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $clicksLookbackWindow; + public $impressionsLookbackWindow; + public $includeAttributedIPConversions; + public $includeUnattributedCookieConversions; + public $includeUnattributedIPConversions; + public $maximumClickInteractions; + public $maximumImpressionInteractions; + public $maximumInteractionGap; + public $pivotOnInteractionPath; + + public function setClicksLookbackWindow($clicksLookbackWindow) + { + $this->clicksLookbackWindow = $clicksLookbackWindow; + } + + public function getClicksLookbackWindow() + { + return $this->clicksLookbackWindow; + } + + public function setImpressionsLookbackWindow($impressionsLookbackWindow) + { + $this->impressionsLookbackWindow = $impressionsLookbackWindow; + } + + public function getImpressionsLookbackWindow() + { + return $this->impressionsLookbackWindow; + } + + public function setIncludeAttributedIPConversions($includeAttributedIPConversions) + { + $this->includeAttributedIPConversions = $includeAttributedIPConversions; + } + + public function getIncludeAttributedIPConversions() + { + return $this->includeAttributedIPConversions; + } + + public function setIncludeUnattributedCookieConversions($includeUnattributedCookieConversions) + { + $this->includeUnattributedCookieConversions = $includeUnattributedCookieConversions; + } + + public function getIncludeUnattributedCookieConversions() + { + return $this->includeUnattributedCookieConversions; + } + + public function setIncludeUnattributedIPConversions($includeUnattributedIPConversions) + { + $this->includeUnattributedIPConversions = $includeUnattributedIPConversions; + } + + public function getIncludeUnattributedIPConversions() + { + return $this->includeUnattributedIPConversions; + } + + public function setMaximumClickInteractions($maximumClickInteractions) + { + $this->maximumClickInteractions = $maximumClickInteractions; + } + + public function getMaximumClickInteractions() + { + return $this->maximumClickInteractions; + } + + public function setMaximumImpressionInteractions($maximumImpressionInteractions) + { + $this->maximumImpressionInteractions = $maximumImpressionInteractions; + } + + public function getMaximumImpressionInteractions() + { + return $this->maximumImpressionInteractions; + } + + public function setMaximumInteractionGap($maximumInteractionGap) + { + $this->maximumInteractionGap = $maximumInteractionGap; + } + + public function getMaximumInteractionGap() + { + return $this->maximumInteractionGap; + } + + public function setPivotOnInteractionPath($pivotOnInteractionPath) + { + $this->pivotOnInteractionPath = $pivotOnInteractionPath; + } + + public function getPivotOnInteractionPath() + { + return $this->pivotOnInteractionPath; + } +} + +class Google_Service_Dfareporting_ReportReachCriteria extends Google_Collection +{ + protected $collection_key = 'reachByFrequencyMetricNames'; + protected $internal_gapi_mappings = array( + ); + protected $activitiesType = 'Google_Service_Dfareporting_Activities'; + protected $activitiesDataType = ''; + protected $customRichMediaEventsType = 'Google_Service_Dfareporting_CustomRichMediaEvents'; + protected $customRichMediaEventsDataType = ''; + protected $dateRangeType = 'Google_Service_Dfareporting_DateRange'; + protected $dateRangeDataType = ''; + protected $dimensionFiltersType = 'Google_Service_Dfareporting_DimensionValue'; + protected $dimensionFiltersDataType = 'array'; + protected $dimensionsType = 'Google_Service_Dfareporting_SortedDimension'; + protected $dimensionsDataType = 'array'; + public $metricNames; + public $reachByFrequencyMetricNames; + + public function setActivities(Google_Service_Dfareporting_Activities $activities) + { + $this->activities = $activities; + } + + public function getActivities() + { + return $this->activities; + } + + public function setCustomRichMediaEvents(Google_Service_Dfareporting_CustomRichMediaEvents $customRichMediaEvents) + { + $this->customRichMediaEvents = $customRichMediaEvents; + } + + public function getCustomRichMediaEvents() + { + return $this->customRichMediaEvents; + } + + public function setDateRange(Google_Service_Dfareporting_DateRange $dateRange) + { + $this->dateRange = $dateRange; + } + + public function getDateRange() + { + return $this->dateRange; + } + + public function setDimensionFilters($dimensionFilters) + { + $this->dimensionFilters = $dimensionFilters; + } + + public function getDimensionFilters() + { + return $this->dimensionFilters; + } + + public function setDimensions($dimensions) + { + $this->dimensions = $dimensions; + } + + public function getDimensions() + { + return $this->dimensions; + } + + public function setMetricNames($metricNames) + { + $this->metricNames = $metricNames; + } + + public function getMetricNames() + { + return $this->metricNames; + } + + public function setReachByFrequencyMetricNames($reachByFrequencyMetricNames) + { + $this->reachByFrequencyMetricNames = $reachByFrequencyMetricNames; + } + + public function getReachByFrequencyMetricNames() + { + return $this->reachByFrequencyMetricNames; + } +} + +class Google_Service_Dfareporting_ReportSchedule extends Google_Collection +{ + protected $collection_key = 'repeatsOnWeekDays'; + protected $internal_gapi_mappings = array( + ); + public $active; + public $every; + public $expirationDate; + public $repeats; + public $repeatsOnWeekDays; + public $runsOnDayOfMonth; + public $startDate; + + public function setActive($active) + { + $this->active = $active; + } + + public function getActive() + { + return $this->active; + } + + public function setEvery($every) + { + $this->every = $every; + } + + public function getEvery() + { + return $this->every; + } + + public function setExpirationDate($expirationDate) + { + $this->expirationDate = $expirationDate; + } + + public function getExpirationDate() + { + return $this->expirationDate; + } + + public function setRepeats($repeats) + { + $this->repeats = $repeats; + } + + public function getRepeats() + { + return $this->repeats; + } + + public function setRepeatsOnWeekDays($repeatsOnWeekDays) + { + $this->repeatsOnWeekDays = $repeatsOnWeekDays; + } + + public function getRepeatsOnWeekDays() + { + return $this->repeatsOnWeekDays; + } + + public function setRunsOnDayOfMonth($runsOnDayOfMonth) + { + $this->runsOnDayOfMonth = $runsOnDayOfMonth; + } + + public function getRunsOnDayOfMonth() + { + return $this->runsOnDayOfMonth; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } +} + +class Google_Service_Dfareporting_SortedDimension extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $name; + public $sortOrder; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSortOrder($sortOrder) + { + $this->sortOrder = $sortOrder; + } + + public function getSortOrder() + { + return $this->sortOrder; + } +} + +class Google_Service_Dfareporting_UserProfile extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $accountName; + public $etag; + public $kind; + public $profileId; + public $subAccountId; + public $subAccountName; + public $userName; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setAccountName($accountName) + { + $this->accountName = $accountName; + } + + public function getAccountName() + { + return $this->accountName; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setSubAccountId($subAccountId) + { + $this->subAccountId = $subAccountId; + } + + public function getSubAccountId() + { + return $this->subAccountId; + } + + public function setSubAccountName($subAccountName) + { + $this->subAccountName = $subAccountName; + } + + public function getSubAccountName() + { + return $this->subAccountName; + } + + public function setUserName($userName) + { + $this->userName = $userName; + } + + public function getUserName() + { + return $this->userName; + } +} + +class Google_Service_Dfareporting_UserProfileList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Dfareporting_UserProfile'; + protected $itemsDataType = 'array'; + public $kind; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Directory.php b/vendor/google/apiclient/src/Google/Service/Directory.php new file mode 100644 index 0000000..70b9627 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Directory.php @@ -0,0 +1,5907 @@ + + * The Admin SDK Directory API lets you view and manage enterprise resources such as users and groups, administrative notifications, security features, and more. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Directory extends Google_Service +{ + /** View and manage your Chrome OS devices' metadata. */ + const ADMIN_DIRECTORY_DEVICE_CHROMEOS = "https://www.googleapis.com/auth/admin.directory.device.chromeos"; + /** View your Chrome OS devices' metadata. */ + const ADMIN_DIRECTORY_DEVICE_CHROMEOS_READONLY = "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"; + /** View and manage your mobile devices' metadata. */ + const ADMIN_DIRECTORY_DEVICE_MOBILE = "https://www.googleapis.com/auth/admin.directory.device.mobile"; + /** Manage your mobile devices by performing administrative tasks. */ + const ADMIN_DIRECTORY_DEVICE_MOBILE_ACTION = "https://www.googleapis.com/auth/admin.directory.device.mobile.action"; + /** View your mobile devices' metadata. */ + const ADMIN_DIRECTORY_DEVICE_MOBILE_READONLY = "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"; + /** View and manage the provisioning of groups on your domain. */ + const ADMIN_DIRECTORY_GROUP = "https://www.googleapis.com/auth/admin.directory.group"; + /** View and manage group subscriptions on your domain. */ + const ADMIN_DIRECTORY_GROUP_MEMBER = "https://www.googleapis.com/auth/admin.directory.group.member"; + /** View group subscriptions on your domain. */ + const ADMIN_DIRECTORY_GROUP_MEMBER_READONLY = "https://www.googleapis.com/auth/admin.directory.group.member.readonly"; + /** View groups on your domain. */ + const ADMIN_DIRECTORY_GROUP_READONLY = "https://www.googleapis.com/auth/admin.directory.group.readonly"; + /** View and manage notifications received on your domain. */ + const ADMIN_DIRECTORY_NOTIFICATIONS = "https://www.googleapis.com/auth/admin.directory.notifications"; + /** View and manage organization units on your domain. */ + const ADMIN_DIRECTORY_ORGUNIT = "https://www.googleapis.com/auth/admin.directory.orgunit"; + /** View organization units on your domain. */ + const ADMIN_DIRECTORY_ORGUNIT_READONLY = "https://www.googleapis.com/auth/admin.directory.orgunit.readonly"; + /** View and manage the provisioning of users on your domain. */ + const ADMIN_DIRECTORY_USER = "https://www.googleapis.com/auth/admin.directory.user"; + /** View and manage user aliases on your domain. */ + const ADMIN_DIRECTORY_USER_ALIAS = "https://www.googleapis.com/auth/admin.directory.user.alias"; + /** View user aliases on your domain. */ + const ADMIN_DIRECTORY_USER_ALIAS_READONLY = "https://www.googleapis.com/auth/admin.directory.user.alias.readonly"; + /** View users on your domain. */ + const ADMIN_DIRECTORY_USER_READONLY = "https://www.googleapis.com/auth/admin.directory.user.readonly"; + /** Manage data access permissions for users on your domain. */ + const ADMIN_DIRECTORY_USER_SECURITY = "https://www.googleapis.com/auth/admin.directory.user.security"; + /** View and manage the provisioning of user schemas on your domain. */ + const ADMIN_DIRECTORY_USERSCHEMA = "https://www.googleapis.com/auth/admin.directory.userschema"; + /** View user schemas on your domain. */ + const ADMIN_DIRECTORY_USERSCHEMA_READONLY = "https://www.googleapis.com/auth/admin.directory.userschema.readonly"; + + public $asps; + public $channels; + public $chromeosdevices; + public $groups; + public $groups_aliases; + public $members; + public $mobiledevices; + public $notifications; + public $orgunits; + public $schemas; + public $tokens; + public $users; + public $users_aliases; + public $users_photos; + public $verificationCodes; + + + /** + * Constructs the internal representation of the Directory service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'admin/directory/v1/'; + $this->version = 'directory_v1'; + $this->serviceName = 'admin'; + + $this->asps = new Google_Service_Directory_Asps_Resource( + $this, + $this->serviceName, + 'asps', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/{userKey}/asps/{codeId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'codeId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'users/{userKey}/asps/{codeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'codeId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'users/{userKey}/asps', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_Directory_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'stop' => array( + 'path' => '/admin/directory_v1/channels/stop', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->chromeosdevices = new Google_Service_Directory_Chromeosdevices_Resource( + $this, + $this->serviceName, + 'chromeosdevices', + array( + 'methods' => array( + 'get' => array( + 'path' => 'customer/{customerId}/devices/chromeos/{deviceId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deviceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'customer/{customerId}/devices/chromeos', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'customer/{customerId}/devices/chromeos/{deviceId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deviceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'customer/{customerId}/devices/chromeos/{deviceId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deviceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->groups = new Google_Service_Directory_Groups_Resource( + $this, + $this->serviceName, + 'groups', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'groups/{groupKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'groups/{groupKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'groups', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'groups', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customer' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'domain' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'userKey' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'groups/{groupKey}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'groups/{groupKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->groups_aliases = new Google_Service_Directory_GroupsAliases_Resource( + $this, + $this->serviceName, + 'aliases', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'groups/{groupKey}/aliases/{alias}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'alias' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'groups/{groupKey}/aliases', + 'httpMethod' => 'POST', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'groups/{groupKey}/aliases', + 'httpMethod' => 'GET', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->members = new Google_Service_Directory_Members_Resource( + $this, + $this->serviceName, + 'members', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'groups/{groupKey}/members/{memberKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'memberKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'groups/{groupKey}/members/{memberKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'memberKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'groups/{groupKey}/members', + 'httpMethod' => 'POST', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'groups/{groupKey}/members', + 'httpMethod' => 'GET', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'roles' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'groups/{groupKey}/members/{memberKey}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'memberKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'groups/{groupKey}/members/{memberKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'groupKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'memberKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->mobiledevices = new Google_Service_Directory_Mobiledevices_Resource( + $this, + $this->serviceName, + 'mobiledevices', + array( + 'methods' => array( + 'action' => array( + 'path' => 'customer/{customerId}/devices/mobile/{resourceId}/action', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'customer/{customerId}/devices/mobile/{resourceId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'customer/{customerId}/devices/mobile/{resourceId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'customer/{customerId}/devices/mobile', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->notifications = new Google_Service_Directory_Notifications_Resource( + $this, + $this->serviceName, + 'notifications', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'customer/{customer}/notifications/{notificationId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'customer' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'notificationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'customer/{customer}/notifications/{notificationId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customer' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'notificationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'customer/{customer}/notifications', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customer' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'customer/{customer}/notifications/{notificationId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'customer' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'notificationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'customer/{customer}/notifications/{notificationId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'customer' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'notificationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->orgunits = new Google_Service_Directory_Orgunits_Resource( + $this, + $this->serviceName, + 'orgunits', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'customer/{customerId}/orgunits{/orgUnitPath*}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orgUnitPath' => array( + 'location' => 'path', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'customer/{customerId}/orgunits{/orgUnitPath*}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orgUnitPath' => array( + 'location' => 'path', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'customer/{customerId}/orgunits', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'customer/{customerId}/orgunits', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'orgUnitPath' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'customer/{customerId}/orgunits{/orgUnitPath*}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orgUnitPath' => array( + 'location' => 'path', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'customer/{customerId}/orgunits{/orgUnitPath*}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orgUnitPath' => array( + 'location' => 'path', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->schemas = new Google_Service_Directory_Schemas_Resource( + $this, + $this->serviceName, + 'schemas', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'customer/{customerId}/schemas/{schemaKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'schemaKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'customer/{customerId}/schemas/{schemaKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'schemaKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'customer/{customerId}/schemas', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'customer/{customerId}/schemas', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'customer/{customerId}/schemas/{schemaKey}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'schemaKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'customer/{customerId}/schemas/{schemaKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'schemaKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->tokens = new Google_Service_Directory_Tokens_Resource( + $this, + $this->serviceName, + 'tokens', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/{userKey}/tokens/{clientId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'clientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'users/{userKey}/tokens/{clientId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'clientId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'users/{userKey}/tokens', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->users = new Google_Service_Directory_Users_Resource( + $this, + $this->serviceName, + 'users', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/{userKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'users/{userKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'viewType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customFieldMask' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'users', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'users', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customer' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'domain' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customFieldMask' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'viewType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'event' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'makeAdmin' => array( + 'path' => 'users/{userKey}/makeAdmin', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'users/{userKey}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'undelete' => array( + 'path' => 'users/{userKey}/undelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'users/{userKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'watch' => array( + 'path' => 'users/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customer' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'domain' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customFieldMask' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'viewType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'event' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->users_aliases = new Google_Service_Directory_UsersAliases_Resource( + $this, + $this->serviceName, + 'aliases', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/{userKey}/aliases/{alias}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'alias' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'users/{userKey}/aliases', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'users/{userKey}/aliases', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'event' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'users/{userKey}/aliases/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'event' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->users_photos = new Google_Service_Directory_UsersPhotos_Resource( + $this, + $this->serviceName, + 'photos', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/{userKey}/photos/thumbnail', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'users/{userKey}/photos/thumbnail', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'users/{userKey}/photos/thumbnail', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'users/{userKey}/photos/thumbnail', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->verificationCodes = new Google_Service_Directory_VerificationCodes_Resource( + $this, + $this->serviceName, + 'verificationCodes', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'users/{userKey}/verificationCodes/generate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'invalidate' => array( + 'path' => 'users/{userKey}/verificationCodes/invalidate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'users/{userKey}/verificationCodes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "asps" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $asps = $adminService->asps; + * + */ +class Google_Service_Directory_Asps_Resource extends Google_Service_Resource +{ + + /** + * Delete an ASP issued by a user. (asps.delete) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param int $codeId + * The unique ID of the ASP to be deleted. + * @param array $optParams Optional parameters. + */ + public function delete($userKey, $codeId, $optParams = array()) + { + $params = array('userKey' => $userKey, 'codeId' => $codeId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Get information about an ASP issued by a user. (asps.get) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param int $codeId + * The unique ID of the ASP. + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Asp + */ + public function get($userKey, $codeId, $optParams = array()) + { + $params = array('userKey' => $userKey, 'codeId' => $codeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_Asp"); + } + /** + * List the ASPs issued by a user. (asps.listAsps) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Asps + */ + public function listAsps($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Asps"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $channels = $adminService->channels; + * + */ +class Google_Service_Directory_Channels_Resource extends Google_Service_Resource +{ + + /** + * Stop watching resources through this channel (channels.stop) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + */ + public function stop(Google_Service_Directory_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('stop', array($params)); + } +} + +/** + * The "chromeosdevices" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $chromeosdevices = $adminService->chromeosdevices; + * + */ +class Google_Service_Directory_Chromeosdevices_Resource extends Google_Service_Resource +{ + + /** + * Retrieve Chrome OS Device (chromeosdevices.get) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $deviceId + * Immutable id of Chrome OS Device + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @return Google_Service_Directory_ChromeOsDevice + */ + public function get($customerId, $deviceId, $optParams = array()) + { + $params = array('customerId' => $customerId, 'deviceId' => $deviceId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_ChromeOsDevice"); + } + /** + * Retrieve all Chrome OS Devices of a customer (paginated) + * (chromeosdevices.listChromeosdevices) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Column to use for sorting results + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @opt_param int maxResults + * Maximum number of results to return. Default is 100 + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string sortOrder + * Whether to return results in ascending or descending order. Only of use when orderBy is also + * used + * @opt_param string query + * Search string in the format given at + * http://support.google.com/chromeos/a/bin/answer.py?hl=en=1698333 + * @return Google_Service_Directory_ChromeOsDevices + */ + public function listChromeosdevices($customerId, $optParams = array()) + { + $params = array('customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_ChromeOsDevices"); + } + /** + * Update Chrome OS Device. This method supports patch semantics. + * (chromeosdevices.patch) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $deviceId + * Immutable id of Chrome OS Device + * @param Google_ChromeOsDevice $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @return Google_Service_Directory_ChromeOsDevice + */ + public function patch($customerId, $deviceId, Google_Service_Directory_ChromeOsDevice $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'deviceId' => $deviceId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_ChromeOsDevice"); + } + /** + * Update Chrome OS Device (chromeosdevices.update) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $deviceId + * Immutable id of Chrome OS Device + * @param Google_ChromeOsDevice $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @return Google_Service_Directory_ChromeOsDevice + */ + public function update($customerId, $deviceId, Google_Service_Directory_ChromeOsDevice $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'deviceId' => $deviceId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_ChromeOsDevice"); + } +} + +/** + * The "groups" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $groups = $adminService->groups; + * + */ +class Google_Service_Directory_Groups_Resource extends Google_Service_Resource +{ + + /** + * Delete Group (groups.delete) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param array $optParams Optional parameters. + */ + public function delete($groupKey, $optParams = array()) + { + $params = array('groupKey' => $groupKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieve Group (groups.get) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Group + */ + public function get($groupKey, $optParams = array()) + { + $params = array('groupKey' => $groupKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_Group"); + } + /** + * Create Group (groups.insert) + * + * @param Google_Group $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Group + */ + public function insert(Google_Service_Directory_Group $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_Group"); + } + /** + * Retrieve all groups in a domain (paginated) (groups.listGroups) + * + * @param array $optParams Optional parameters. + * + * @opt_param string customer + * Immutable id of the Google Apps account. In case of multi-domain, to fetch all groups for a + * customer, fill this field instead of domain. + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string domain + * Name of the domain. Fill this field to get groups from only this domain. To return all groups in + * a multi-domain fill customer field instead. + * @opt_param int maxResults + * Maximum number of results to return. Default is 200 + * @opt_param string userKey + * Email or immutable Id of the user if only those groups are to be listed, the given user is a + * member of. If Id, it should match with id of user object + * @return Google_Service_Directory_Groups + */ + public function listGroups($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Groups"); + } + /** + * Update Group. This method supports patch semantics. (groups.patch) + * + * @param string $groupKey + * Email or immutable Id of the group. If Id, it should match with id of group object + * @param Google_Group $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Group + */ + public function patch($groupKey, Google_Service_Directory_Group $postBody, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_Group"); + } + /** + * Update Group (groups.update) + * + * @param string $groupKey + * Email or immutable Id of the group. If Id, it should match with id of group object + * @param Google_Group $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Group + */ + public function update($groupKey, Google_Service_Directory_Group $postBody, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_Group"); + } +} + +/** + * The "aliases" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $aliases = $adminService->aliases; + * + */ +class Google_Service_Directory_GroupsAliases_Resource extends Google_Service_Resource +{ + + /** + * Remove a alias for the group (aliases.delete) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param string $alias + * The alias to be removed + * @param array $optParams Optional parameters. + */ + public function delete($groupKey, $alias, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'alias' => $alias); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Add a alias for the group (aliases.insert) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param Google_Alias $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Alias + */ + public function insert($groupKey, Google_Service_Directory_Alias $postBody, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_Alias"); + } + /** + * List all aliases for a group (aliases.listGroupsAliases) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Aliases + */ + public function listGroupsAliases($groupKey, $optParams = array()) + { + $params = array('groupKey' => $groupKey); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Aliases"); + } +} + +/** + * The "members" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $members = $adminService->members; + * + */ +class Google_Service_Directory_Members_Resource extends Google_Service_Resource +{ + + /** + * Remove membership. (members.delete) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param string $memberKey + * Email or immutable Id of the member + * @param array $optParams Optional parameters. + */ + public function delete($groupKey, $memberKey, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieve Group Member (members.get) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param string $memberKey + * Email or immutable Id of the member + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Member + */ + public function get($groupKey, $memberKey, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_Member"); + } + /** + * Add user to the specified group. (members.insert) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param Google_Member $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Member + */ + public function insert($groupKey, Google_Service_Directory_Member $postBody, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_Member"); + } + /** + * Retrieve all members in a group (paginated) (members.listMembers) + * + * @param string $groupKey + * Email or immutable Id of the group + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string roles + * Comma separated role values to filter list results on. + * @opt_param int maxResults + * Maximum number of results to return. Default is 200 + * @return Google_Service_Directory_Members + */ + public function listMembers($groupKey, $optParams = array()) + { + $params = array('groupKey' => $groupKey); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Members"); + } + /** + * Update membership of a user in the specified group. This method supports + * patch semantics. (members.patch) + * + * @param string $groupKey + * Email or immutable Id of the group. If Id, it should match with id of group object + * @param string $memberKey + * Email or immutable Id of the user. If Id, it should match with id of member object + * @param Google_Member $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Member + */ + public function patch($groupKey, $memberKey, Google_Service_Directory_Member $postBody, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_Member"); + } + /** + * Update membership of a user in the specified group. (members.update) + * + * @param string $groupKey + * Email or immutable Id of the group. If Id, it should match with id of group object + * @param string $memberKey + * Email or immutable Id of the user. If Id, it should match with id of member object + * @param Google_Member $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Member + */ + public function update($groupKey, $memberKey, Google_Service_Directory_Member $postBody, $optParams = array()) + { + $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_Member"); + } +} + +/** + * The "mobiledevices" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $mobiledevices = $adminService->mobiledevices; + * + */ +class Google_Service_Directory_Mobiledevices_Resource extends Google_Service_Resource +{ + + /** + * Take action on Mobile Device (mobiledevices.action) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $resourceId + * Immutable id of Mobile Device + * @param Google_MobileDeviceAction $postBody + * @param array $optParams Optional parameters. + */ + public function action($customerId, $resourceId, Google_Service_Directory_MobileDeviceAction $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'resourceId' => $resourceId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('action', array($params)); + } + /** + * Delete Mobile Device (mobiledevices.delete) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $resourceId + * Immutable id of Mobile Device + * @param array $optParams Optional parameters. + */ + public function delete($customerId, $resourceId, $optParams = array()) + { + $params = array('customerId' => $customerId, 'resourceId' => $resourceId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieve Mobile Device (mobiledevices.get) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $resourceId + * Immutable id of Mobile Device + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @return Google_Service_Directory_MobileDevice + */ + public function get($customerId, $resourceId, $optParams = array()) + { + $params = array('customerId' => $customerId, 'resourceId' => $resourceId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_MobileDevice"); + } + /** + * Retrieve all Mobile Devices of a customer (paginated) + * (mobiledevices.listMobiledevices) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Column to use for sorting results + * @opt_param string projection + * Restrict information returned to a set of selected fields. + * @opt_param int maxResults + * Maximum number of results to return. Default is 100 + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string sortOrder + * Whether to return results in ascending or descending order. Only of use when orderBy is also + * used + * @opt_param string query + * Search string in the format given at + * http://support.google.com/a/bin/answer.py?hl=en=1408863#search + * @return Google_Service_Directory_MobileDevices + */ + public function listMobiledevices($customerId, $optParams = array()) + { + $params = array('customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_MobileDevices"); + } +} + +/** + * The "notifications" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $notifications = $adminService->notifications; + * + */ +class Google_Service_Directory_Notifications_Resource extends Google_Service_Resource +{ + + /** + * Deletes a notification (notifications.delete) + * + * @param string $customer + * The unique ID for the customer's Google account. The customerId is also returned as part of the + * Users resource. + * @param string $notificationId + * The unique ID of the notification. + * @param array $optParams Optional parameters. + */ + public function delete($customer, $notificationId, $optParams = array()) + { + $params = array('customer' => $customer, 'notificationId' => $notificationId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a notification. (notifications.get) + * + * @param string $customer + * The unique ID for the customer's Google account. The customerId is also returned as part of the + * Users resource. + * @param string $notificationId + * The unique ID of the notification. + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Notification + */ + public function get($customer, $notificationId, $optParams = array()) + { + $params = array('customer' => $customer, 'notificationId' => $notificationId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_Notification"); + } + /** + * Retrieves a list of notifications. (notifications.listNotifications) + * + * @param string $customer + * The unique ID for the customer's Google account. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token to specify the page of results to retrieve. + * @opt_param string maxResults + * Maximum number of notifications to return per page. The default is 100. + * @opt_param string language + * The ISO 639-1 code of the language notifications are returned in. The default is English (en). + * @return Google_Service_Directory_Notifications + */ + public function listNotifications($customer, $optParams = array()) + { + $params = array('customer' => $customer); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Notifications"); + } + /** + * Updates a notification. This method supports patch semantics. + * (notifications.patch) + * + * @param string $customer + * The unique ID for the customer's Google account. + * @param string $notificationId + * The unique ID of the notification. + * @param Google_Notification $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Notification + */ + public function patch($customer, $notificationId, Google_Service_Directory_Notification $postBody, $optParams = array()) + { + $params = array('customer' => $customer, 'notificationId' => $notificationId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_Notification"); + } + /** + * Updates a notification. (notifications.update) + * + * @param string $customer + * The unique ID for the customer's Google account. + * @param string $notificationId + * The unique ID of the notification. + * @param Google_Notification $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Notification + */ + public function update($customer, $notificationId, Google_Service_Directory_Notification $postBody, $optParams = array()) + { + $params = array('customer' => $customer, 'notificationId' => $notificationId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_Notification"); + } +} + +/** + * The "orgunits" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $orgunits = $adminService->orgunits; + * + */ +class Google_Service_Directory_Orgunits_Resource extends Google_Service_Resource +{ + + /** + * Remove Organization Unit (orgunits.delete) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $orgUnitPath + * Full path of the organization unit + * @param array $optParams Optional parameters. + */ + public function delete($customerId, $orgUnitPath, $optParams = array()) + { + $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieve Organization Unit (orgunits.get) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $orgUnitPath + * Full path of the organization unit + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_OrgUnit + */ + public function get($customerId, $orgUnitPath, $optParams = array()) + { + $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_OrgUnit"); + } + /** + * Add Organization Unit (orgunits.insert) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param Google_OrgUnit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_OrgUnit + */ + public function insert($customerId, Google_Service_Directory_OrgUnit $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_OrgUnit"); + } + /** + * Retrieve all Organization Units (orgunits.listOrgunits) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param array $optParams Optional parameters. + * + * @opt_param string type + * Whether to return all sub-organizations or just immediate children + * @opt_param string orgUnitPath + * the URL-encoded organization unit + * @return Google_Service_Directory_OrgUnits + */ + public function listOrgunits($customerId, $optParams = array()) + { + $params = array('customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_OrgUnits"); + } + /** + * Update Organization Unit. This method supports patch semantics. + * (orgunits.patch) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $orgUnitPath + * Full path of the organization unit + * @param Google_OrgUnit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_OrgUnit + */ + public function patch($customerId, $orgUnitPath, Google_Service_Directory_OrgUnit $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_OrgUnit"); + } + /** + * Update Organization Unit (orgunits.update) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $orgUnitPath + * Full path of the organization unit + * @param Google_OrgUnit $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_OrgUnit + */ + public function update($customerId, $orgUnitPath, Google_Service_Directory_OrgUnit $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_OrgUnit"); + } +} + +/** + * The "schemas" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $schemas = $adminService->schemas; + * + */ +class Google_Service_Directory_Schemas_Resource extends Google_Service_Resource +{ + + /** + * Delete schema (schemas.delete) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $schemaKey + * Name or immutable Id of the schema + * @param array $optParams Optional parameters. + */ + public function delete($customerId, $schemaKey, $optParams = array()) + { + $params = array('customerId' => $customerId, 'schemaKey' => $schemaKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieve schema (schemas.get) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $schemaKey + * Name or immutable Id of the schema + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Schema + */ + public function get($customerId, $schemaKey, $optParams = array()) + { + $params = array('customerId' => $customerId, 'schemaKey' => $schemaKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_Schema"); + } + /** + * Create schema. (schemas.insert) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param Google_Schema $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Schema + */ + public function insert($customerId, Google_Service_Directory_Schema $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_Schema"); + } + /** + * Retrieve all schemas for a customer (schemas.listSchemas) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Schemas + */ + public function listSchemas($customerId, $optParams = array()) + { + $params = array('customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Schemas"); + } + /** + * Update schema. This method supports patch semantics. (schemas.patch) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $schemaKey + * Name or immutable Id of the schema. + * @param Google_Schema $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Schema + */ + public function patch($customerId, $schemaKey, Google_Service_Directory_Schema $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'schemaKey' => $schemaKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_Schema"); + } + /** + * Update schema (schemas.update) + * + * @param string $customerId + * Immutable id of the Google Apps account + * @param string $schemaKey + * Name or immutable Id of the schema. + * @param Google_Schema $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Schema + */ + public function update($customerId, $schemaKey, Google_Service_Directory_Schema $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'schemaKey' => $schemaKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_Schema"); + } +} + +/** + * The "tokens" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $tokens = $adminService->tokens; + * + */ +class Google_Service_Directory_Tokens_Resource extends Google_Service_Resource +{ + + /** + * Delete all access tokens issued by a user for an application. (tokens.delete) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param string $clientId + * The Client ID of the application the token is issued to. + * @param array $optParams Optional parameters. + */ + public function delete($userKey, $clientId, $optParams = array()) + { + $params = array('userKey' => $userKey, 'clientId' => $clientId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Get information about an access token issued by a user. (tokens.get) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param string $clientId + * The Client ID of the application the token is issued to. + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Token + */ + public function get($userKey, $clientId, $optParams = array()) + { + $params = array('userKey' => $userKey, 'clientId' => $clientId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_Token"); + } + /** + * Returns the set of tokens specified user has issued to 3rd party + * applications. (tokens.listTokens) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Tokens + */ + public function listTokens($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Tokens"); + } +} + +/** + * The "users" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $users = $adminService->users; + * + */ +class Google_Service_Directory_Users_Resource extends Google_Service_Resource +{ + + /** + * Delete user (users.delete) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + */ + public function delete($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * retrieve user (users.get) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + * + * @opt_param string viewType + * Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user. + * @opt_param string customFieldMask + * Comma-separated list of schema names. All fields from these schemas are fetched. This should + * only be set when projection=custom. + * @opt_param string projection + * What subset of fields to fetch for this user. + * @return Google_Service_Directory_User + */ + public function get($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_User"); + } + /** + * create user. (users.insert) + * + * @param Google_User $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_User + */ + public function insert(Google_Service_Directory_User $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_User"); + } + /** + * Retrieve either deleted users or all users in a domain (paginated) + * (users.listUsers) + * + * @param array $optParams Optional parameters. + * + * @opt_param string customer + * Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a + * customer, fill this field instead of domain. + * @opt_param string orderBy + * Column to use for sorting results + * @opt_param string domain + * Name of the domain. Fill this field to get users from only this domain. To return all users in a + * multi-domain fill customer field instead. + * @opt_param string projection + * What subset of fields to fetch for this user. + * @opt_param string showDeleted + * If set to true retrieves the list of deleted users. Default is false + * @opt_param string customFieldMask + * Comma-separated list of schema names. All fields from these schemas are fetched. This should + * only be set when projection=custom. + * @opt_param int maxResults + * Maximum number of results to return. Default is 100. Max allowed is 500 + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string sortOrder + * Whether to return results in ascending or descending order. + * @opt_param string query + * Query string search. Should be of the form "". Complete documentation is at + * https://developers.google.com/admin-sdk/directory/v1/guides/search-users + * @opt_param string viewType + * Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user. + * @opt_param string event + * Event on which subscription is intended (if subscribing) + * @return Google_Service_Directory_Users + */ + public function listUsers($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Users"); + } + /** + * change admin status of a user (users.makeAdmin) + * + * @param string $userKey + * Email or immutable Id of the user as admin + * @param Google_UserMakeAdmin $postBody + * @param array $optParams Optional parameters. + */ + public function makeAdmin($userKey, Google_Service_Directory_UserMakeAdmin $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('makeAdmin', array($params)); + } + /** + * update user. This method supports patch semantics. (users.patch) + * + * @param string $userKey + * Email or immutable Id of the user. If Id, it should match with id of user object + * @param Google_User $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_User + */ + public function patch($userKey, Google_Service_Directory_User $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_User"); + } + /** + * Undelete a deleted user (users.undelete) + * + * @param string $userKey + * The immutable id of the user + * @param Google_UserUndelete $postBody + * @param array $optParams Optional parameters. + */ + public function undelete($userKey, Google_Service_Directory_UserUndelete $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('undelete', array($params)); + } + /** + * update user (users.update) + * + * @param string $userKey + * Email or immutable Id of the user. If Id, it should match with id of user object + * @param Google_User $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_User + */ + public function update($userKey, Google_Service_Directory_User $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_User"); + } + /** + * Watch for changes in users list (users.watch) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string customer + * Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a + * customer, fill this field instead of domain. + * @opt_param string orderBy + * Column to use for sorting results + * @opt_param string domain + * Name of the domain. Fill this field to get users from only this domain. To return all users in a + * multi-domain fill customer field instead. + * @opt_param string projection + * What subset of fields to fetch for this user. + * @opt_param string showDeleted + * If set to true retrieves the list of deleted users. Default is false + * @opt_param string customFieldMask + * Comma-separated list of schema names. All fields from these schemas are fetched. This should + * only be set when projection=custom. + * @opt_param int maxResults + * Maximum number of results to return. Default is 100. Max allowed is 500 + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string sortOrder + * Whether to return results in ascending or descending order. + * @opt_param string query + * Query string search. Should be of the form "". Complete documentation is at + * https://developers.google.com/admin-sdk/directory/v1/guides/search-users + * @opt_param string viewType + * Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user. + * @opt_param string event + * Event on which subscription is intended (if subscribing) + * @return Google_Service_Directory_Channel + */ + public function watch(Google_Service_Directory_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Directory_Channel"); + } +} + +/** + * The "aliases" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $aliases = $adminService->aliases; + * + */ +class Google_Service_Directory_UsersAliases_Resource extends Google_Service_Resource +{ + + /** + * Remove a alias for the user (aliases.delete) + * + * @param string $userKey + * Email or immutable Id of the user + * @param string $alias + * The alias to be removed + * @param array $optParams Optional parameters. + */ + public function delete($userKey, $alias, $optParams = array()) + { + $params = array('userKey' => $userKey, 'alias' => $alias); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Add a alias for the user (aliases.insert) + * + * @param string $userKey + * Email or immutable Id of the user + * @param Google_Alias $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_Alias + */ + public function insert($userKey, Google_Service_Directory_Alias $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Directory_Alias"); + } + /** + * List all aliases for a user (aliases.listUsersAliases) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + * + * @opt_param string event + * Event on which subscription is intended (if subscribing) + * @return Google_Service_Directory_Aliases + */ + public function listUsersAliases($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_Aliases"); + } + /** + * Watch for changes in user aliases list (aliases.watch) + * + * @param string $userKey + * Email or immutable Id of the user + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string event + * Event on which subscription is intended (if subscribing) + * @return Google_Service_Directory_Channel + */ + public function watch($userKey, Google_Service_Directory_Channel $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Directory_Channel"); + } +} +/** + * The "photos" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $photos = $adminService->photos; + * + */ +class Google_Service_Directory_UsersPhotos_Resource extends Google_Service_Resource +{ + + /** + * Remove photos for the user (photos.delete) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + */ + public function delete($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieve photo of a user (photos.get) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_UserPhoto + */ + public function get($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Directory_UserPhoto"); + } + /** + * Add a photo for the user. This method supports patch semantics. + * (photos.patch) + * + * @param string $userKey + * Email or immutable Id of the user + * @param Google_UserPhoto $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_UserPhoto + */ + public function patch($userKey, Google_Service_Directory_UserPhoto $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Directory_UserPhoto"); + } + /** + * Add a photo for the user (photos.update) + * + * @param string $userKey + * Email or immutable Id of the user + * @param Google_UserPhoto $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_UserPhoto + */ + public function update($userKey, Google_Service_Directory_UserPhoto $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Directory_UserPhoto"); + } +} + +/** + * The "verificationCodes" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Directory(...); + * $verificationCodes = $adminService->verificationCodes; + * + */ +class Google_Service_Directory_VerificationCodes_Resource extends Google_Service_Resource +{ + + /** + * Generate new backup verification codes for the user. + * (verificationCodes.generate) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + */ + public function generate($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params)); + } + /** + * Invalidate the current backup verification codes for the user. + * (verificationCodes.invalidate) + * + * @param string $userKey + * Email or immutable Id of the user + * @param array $optParams Optional parameters. + */ + public function invalidate($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('invalidate', array($params)); + } + /** + * Returns the current set of valid backup verification codes for the specified + * user. (verificationCodes.listVerificationCodes) + * + * @param string $userKey + * Identifies the user in the API request. The value can be the user's primary email address, alias + * email address, or unique user ID. + * @param array $optParams Optional parameters. + * @return Google_Service_Directory_VerificationCodes + */ + public function listVerificationCodes($userKey, $optParams = array()) + { + $params = array('userKey' => $userKey); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Directory_VerificationCodes"); + } +} + + + + +class Google_Service_Directory_Alias extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $alias; + public $etag; + public $id; + public $kind; + public $primaryEmail; + + public function setAlias($alias) + { + $this->alias = $alias; + } + + public function getAlias() + { + return $this->alias; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPrimaryEmail($primaryEmail) + { + $this->primaryEmail = $primaryEmail; + } + + public function getPrimaryEmail() + { + return $this->primaryEmail; + } +} + +class Google_Service_Directory_Aliases extends Google_Collection +{ + protected $collection_key = 'aliases'; + protected $internal_gapi_mappings = array( + ); + protected $aliasesType = 'Google_Service_Directory_Alias'; + protected $aliasesDataType = 'array'; + public $etag; + public $kind; + + public function setAliases($aliases) + { + $this->aliases = $aliases; + } + + public function getAliases() + { + return $this->aliases; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Directory_Asp extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $codeId; + public $creationTime; + public $etag; + public $kind; + public $lastTimeUsed; + public $name; + public $userKey; + + public function setCodeId($codeId) + { + $this->codeId = $codeId; + } + + public function getCodeId() + { + return $this->codeId; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastTimeUsed($lastTimeUsed) + { + $this->lastTimeUsed = $lastTimeUsed; + } + + public function getLastTimeUsed() + { + return $this->lastTimeUsed; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setUserKey($userKey) + { + $this->userKey = $userKey; + } + + public function getUserKey() + { + return $this->userKey; + } +} + +class Google_Service_Directory_Asps extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Directory_Asp'; + protected $itemsDataType = 'array'; + public $kind; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Directory_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $expiration; + public $id; + public $kind; + public $params; + public $payload; + public $resourceId; + public $resourceUri; + public $token; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setExpiration($expiration) + { + $this->expiration = $expiration; + } + + public function getExpiration() + { + return $this->expiration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParams($params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setResourceUri($resourceUri) + { + $this->resourceUri = $resourceUri; + } + + public function getResourceUri() + { + return $this->resourceUri; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_ChannelParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Directory_ChromeOsDevice extends Google_Collection +{ + protected $collection_key = 'recentUsers'; + protected $internal_gapi_mappings = array( + ); + public $annotatedLocation; + public $annotatedUser; + public $bootMode; + public $deviceId; + public $etag; + public $ethernetMacAddress; + public $firmwareVersion; + public $kind; + public $lastEnrollmentTime; + public $lastSync; + public $macAddress; + public $meid; + public $model; + public $notes; + public $orderNumber; + public $orgUnitPath; + public $osVersion; + public $platformVersion; + protected $recentUsersType = 'Google_Service_Directory_ChromeOsDeviceRecentUsers'; + protected $recentUsersDataType = 'array'; + public $serialNumber; + public $status; + public $supportEndDate; + public $willAutoRenew; + + public function setAnnotatedLocation($annotatedLocation) + { + $this->annotatedLocation = $annotatedLocation; + } + + public function getAnnotatedLocation() + { + return $this->annotatedLocation; + } + + public function setAnnotatedUser($annotatedUser) + { + $this->annotatedUser = $annotatedUser; + } + + public function getAnnotatedUser() + { + return $this->annotatedUser; + } + + public function setBootMode($bootMode) + { + $this->bootMode = $bootMode; + } + + public function getBootMode() + { + return $this->bootMode; + } + + public function setDeviceId($deviceId) + { + $this->deviceId = $deviceId; + } + + public function getDeviceId() + { + return $this->deviceId; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEthernetMacAddress($ethernetMacAddress) + { + $this->ethernetMacAddress = $ethernetMacAddress; + } + + public function getEthernetMacAddress() + { + return $this->ethernetMacAddress; + } + + public function setFirmwareVersion($firmwareVersion) + { + $this->firmwareVersion = $firmwareVersion; + } + + public function getFirmwareVersion() + { + return $this->firmwareVersion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastEnrollmentTime($lastEnrollmentTime) + { + $this->lastEnrollmentTime = $lastEnrollmentTime; + } + + public function getLastEnrollmentTime() + { + return $this->lastEnrollmentTime; + } + + public function setLastSync($lastSync) + { + $this->lastSync = $lastSync; + } + + public function getLastSync() + { + return $this->lastSync; + } + + public function setMacAddress($macAddress) + { + $this->macAddress = $macAddress; + } + + public function getMacAddress() + { + return $this->macAddress; + } + + public function setMeid($meid) + { + $this->meid = $meid; + } + + public function getMeid() + { + return $this->meid; + } + + public function setModel($model) + { + $this->model = $model; + } + + public function getModel() + { + return $this->model; + } + + public function setNotes($notes) + { + $this->notes = $notes; + } + + public function getNotes() + { + return $this->notes; + } + + public function setOrderNumber($orderNumber) + { + $this->orderNumber = $orderNumber; + } + + public function getOrderNumber() + { + return $this->orderNumber; + } + + public function setOrgUnitPath($orgUnitPath) + { + $this->orgUnitPath = $orgUnitPath; + } + + public function getOrgUnitPath() + { + return $this->orgUnitPath; + } + + public function setOsVersion($osVersion) + { + $this->osVersion = $osVersion; + } + + public function getOsVersion() + { + return $this->osVersion; + } + + public function setPlatformVersion($platformVersion) + { + $this->platformVersion = $platformVersion; + } + + public function getPlatformVersion() + { + return $this->platformVersion; + } + + public function setRecentUsers($recentUsers) + { + $this->recentUsers = $recentUsers; + } + + public function getRecentUsers() + { + return $this->recentUsers; + } + + public function setSerialNumber($serialNumber) + { + $this->serialNumber = $serialNumber; + } + + public function getSerialNumber() + { + return $this->serialNumber; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setSupportEndDate($supportEndDate) + { + $this->supportEndDate = $supportEndDate; + } + + public function getSupportEndDate() + { + return $this->supportEndDate; + } + + public function setWillAutoRenew($willAutoRenew) + { + $this->willAutoRenew = $willAutoRenew; + } + + public function getWillAutoRenew() + { + return $this->willAutoRenew; + } +} + +class Google_Service_Directory_ChromeOsDeviceRecentUsers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $email; + public $type; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_ChromeOsDevices extends Google_Collection +{ + protected $collection_key = 'chromeosdevices'; + protected $internal_gapi_mappings = array( + ); + protected $chromeosdevicesType = 'Google_Service_Directory_ChromeOsDevice'; + protected $chromeosdevicesDataType = 'array'; + public $etag; + public $kind; + public $nextPageToken; + + public function setChromeosdevices($chromeosdevices) + { + $this->chromeosdevices = $chromeosdevices; + } + + public function getChromeosdevices() + { + return $this->chromeosdevices; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Directory_Group extends Google_Collection +{ + protected $collection_key = 'nonEditableAliases'; + protected $internal_gapi_mappings = array( + ); + public $adminCreated; + public $aliases; + public $description; + public $directMembersCount; + public $email; + public $etag; + public $id; + public $kind; + public $name; + public $nonEditableAliases; + + public function setAdminCreated($adminCreated) + { + $this->adminCreated = $adminCreated; + } + + public function getAdminCreated() + { + return $this->adminCreated; + } + + public function setAliases($aliases) + { + $this->aliases = $aliases; + } + + public function getAliases() + { + return $this->aliases; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDirectMembersCount($directMembersCount) + { + $this->directMembersCount = $directMembersCount; + } + + public function getDirectMembersCount() + { + return $this->directMembersCount; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNonEditableAliases($nonEditableAliases) + { + $this->nonEditableAliases = $nonEditableAliases; + } + + public function getNonEditableAliases() + { + return $this->nonEditableAliases; + } +} + +class Google_Service_Directory_Groups extends Google_Collection +{ + protected $collection_key = 'groups'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $groupsType = 'Google_Service_Directory_Group'; + protected $groupsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGroups($groups) + { + $this->groups = $groups; + } + + public function getGroups() + { + return $this->groups; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Directory_Member extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $email; + public $etag; + public $id; + public $kind; + public $role; + public $type; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_Members extends Google_Collection +{ + protected $collection_key = 'members'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + protected $membersType = 'Google_Service_Directory_Member'; + protected $membersDataType = 'array'; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMembers($members) + { + $this->members = $members; + } + + public function getMembers() + { + return $this->members; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Directory_MobileDevice extends Google_Collection +{ + protected $collection_key = 'name'; + protected $internal_gapi_mappings = array( + ); + protected $applicationsType = 'Google_Service_Directory_MobileDeviceApplications'; + protected $applicationsDataType = 'array'; + public $basebandVersion; + public $buildNumber; + public $defaultLanguage; + public $deviceCompromisedStatus; + public $deviceId; + public $email; + public $etag; + public $firstSync; + public $hardwareId; + public $imei; + public $kernelVersion; + public $kind; + public $lastSync; + public $managedAccountIsOnOwnerProfile; + public $meid; + public $model; + public $name; + public $networkOperator; + public $os; + public $resourceId; + public $serialNumber; + public $status; + public $type; + public $userAgent; + public $wifiMacAddress; + + public function setApplications($applications) + { + $this->applications = $applications; + } + + public function getApplications() + { + return $this->applications; + } + + public function setBasebandVersion($basebandVersion) + { + $this->basebandVersion = $basebandVersion; + } + + public function getBasebandVersion() + { + return $this->basebandVersion; + } + + public function setBuildNumber($buildNumber) + { + $this->buildNumber = $buildNumber; + } + + public function getBuildNumber() + { + return $this->buildNumber; + } + + public function setDefaultLanguage($defaultLanguage) + { + $this->defaultLanguage = $defaultLanguage; + } + + public function getDefaultLanguage() + { + return $this->defaultLanguage; + } + + public function setDeviceCompromisedStatus($deviceCompromisedStatus) + { + $this->deviceCompromisedStatus = $deviceCompromisedStatus; + } + + public function getDeviceCompromisedStatus() + { + return $this->deviceCompromisedStatus; + } + + public function setDeviceId($deviceId) + { + $this->deviceId = $deviceId; + } + + public function getDeviceId() + { + return $this->deviceId; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFirstSync($firstSync) + { + $this->firstSync = $firstSync; + } + + public function getFirstSync() + { + return $this->firstSync; + } + + public function setHardwareId($hardwareId) + { + $this->hardwareId = $hardwareId; + } + + public function getHardwareId() + { + return $this->hardwareId; + } + + public function setImei($imei) + { + $this->imei = $imei; + } + + public function getImei() + { + return $this->imei; + } + + public function setKernelVersion($kernelVersion) + { + $this->kernelVersion = $kernelVersion; + } + + public function getKernelVersion() + { + return $this->kernelVersion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastSync($lastSync) + { + $this->lastSync = $lastSync; + } + + public function getLastSync() + { + return $this->lastSync; + } + + public function setManagedAccountIsOnOwnerProfile($managedAccountIsOnOwnerProfile) + { + $this->managedAccountIsOnOwnerProfile = $managedAccountIsOnOwnerProfile; + } + + public function getManagedAccountIsOnOwnerProfile() + { + return $this->managedAccountIsOnOwnerProfile; + } + + public function setMeid($meid) + { + $this->meid = $meid; + } + + public function getMeid() + { + return $this->meid; + } + + public function setModel($model) + { + $this->model = $model; + } + + public function getModel() + { + return $this->model; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetworkOperator($networkOperator) + { + $this->networkOperator = $networkOperator; + } + + public function getNetworkOperator() + { + return $this->networkOperator; + } + + public function setOs($os) + { + $this->os = $os; + } + + public function getOs() + { + return $this->os; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setSerialNumber($serialNumber) + { + $this->serialNumber = $serialNumber; + } + + public function getSerialNumber() + { + return $this->serialNumber; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUserAgent($userAgent) + { + $this->userAgent = $userAgent; + } + + public function getUserAgent() + { + return $this->userAgent; + } + + public function setWifiMacAddress($wifiMacAddress) + { + $this->wifiMacAddress = $wifiMacAddress; + } + + public function getWifiMacAddress() + { + return $this->wifiMacAddress; + } +} + +class Google_Service_Directory_MobileDeviceAction extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $action; + + public function setAction($action) + { + $this->action = $action; + } + + public function getAction() + { + return $this->action; + } +} + +class Google_Service_Directory_MobileDeviceApplications extends Google_Collection +{ + protected $collection_key = 'permission'; + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $packageName; + public $permission; + public $versionCode; + public $versionName; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setPackageName($packageName) + { + $this->packageName = $packageName; + } + + public function getPackageName() + { + return $this->packageName; + } + + public function setPermission($permission) + { + $this->permission = $permission; + } + + public function getPermission() + { + return $this->permission; + } + + public function setVersionCode($versionCode) + { + $this->versionCode = $versionCode; + } + + public function getVersionCode() + { + return $this->versionCode; + } + + public function setVersionName($versionName) + { + $this->versionName = $versionName; + } + + public function getVersionName() + { + return $this->versionName; + } +} + +class Google_Service_Directory_MobileDevices extends Google_Collection +{ + protected $collection_key = 'mobiledevices'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + protected $mobiledevicesType = 'Google_Service_Directory_MobileDevice'; + protected $mobiledevicesDataType = 'array'; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMobiledevices($mobiledevices) + { + $this->mobiledevices = $mobiledevices; + } + + public function getMobiledevices() + { + return $this->mobiledevices; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Directory_Notification extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $body; + public $etag; + public $fromAddress; + public $isUnread; + public $kind; + public $notificationId; + public $sendTime; + public $subject; + + public function setBody($body) + { + $this->body = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFromAddress($fromAddress) + { + $this->fromAddress = $fromAddress; + } + + public function getFromAddress() + { + return $this->fromAddress; + } + + public function setIsUnread($isUnread) + { + $this->isUnread = $isUnread; + } + + public function getIsUnread() + { + return $this->isUnread; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNotificationId($notificationId) + { + $this->notificationId = $notificationId; + } + + public function getNotificationId() + { + return $this->notificationId; + } + + public function setSendTime($sendTime) + { + $this->sendTime = $sendTime; + } + + public function getSendTime() + { + return $this->sendTime; + } + + public function setSubject($subject) + { + $this->subject = $subject; + } + + public function getSubject() + { + return $this->subject; + } +} + +class Google_Service_Directory_Notifications extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Directory_Notification'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $unreadNotificationsCount; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setUnreadNotificationsCount($unreadNotificationsCount) + { + $this->unreadNotificationsCount = $unreadNotificationsCount; + } + + public function getUnreadNotificationsCount() + { + return $this->unreadNotificationsCount; + } +} + +class Google_Service_Directory_OrgUnit extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $blockInheritance; + public $description; + public $etag; + public $kind; + public $name; + public $orgUnitPath; + public $parentOrgUnitPath; + + public function setBlockInheritance($blockInheritance) + { + $this->blockInheritance = $blockInheritance; + } + + public function getBlockInheritance() + { + return $this->blockInheritance; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOrgUnitPath($orgUnitPath) + { + $this->orgUnitPath = $orgUnitPath; + } + + public function getOrgUnitPath() + { + return $this->orgUnitPath; + } + + public function setParentOrgUnitPath($parentOrgUnitPath) + { + $this->parentOrgUnitPath = $parentOrgUnitPath; + } + + public function getParentOrgUnitPath() + { + return $this->parentOrgUnitPath; + } +} + +class Google_Service_Directory_OrgUnits extends Google_Collection +{ + protected $collection_key = 'organizationUnits'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + protected $organizationUnitsType = 'Google_Service_Directory_OrgUnit'; + protected $organizationUnitsDataType = 'array'; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOrganizationUnits($organizationUnits) + { + $this->organizationUnits = $organizationUnits; + } + + public function getOrganizationUnits() + { + return $this->organizationUnits; + } +} + +class Google_Service_Directory_Schema extends Google_Collection +{ + protected $collection_key = 'fields'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $fieldsType = 'Google_Service_Directory_SchemaFieldSpec'; + protected $fieldsDataType = 'array'; + public $kind; + public $schemaId; + public $schemaName; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFields($fields) + { + $this->fields = $fields; + } + + public function getFields() + { + return $this->fields; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSchemaId($schemaId) + { + $this->schemaId = $schemaId; + } + + public function getSchemaId() + { + return $this->schemaId; + } + + public function setSchemaName($schemaName) + { + $this->schemaName = $schemaName; + } + + public function getSchemaName() + { + return $this->schemaName; + } +} + +class Google_Service_Directory_SchemaFieldSpec extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $fieldId; + public $fieldName; + public $fieldType; + public $indexed; + public $kind; + public $multiValued; + protected $numericIndexingSpecType = 'Google_Service_Directory_SchemaFieldSpecNumericIndexingSpec'; + protected $numericIndexingSpecDataType = ''; + public $readAccessType; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFieldId($fieldId) + { + $this->fieldId = $fieldId; + } + + public function getFieldId() + { + return $this->fieldId; + } + + public function setFieldName($fieldName) + { + $this->fieldName = $fieldName; + } + + public function getFieldName() + { + return $this->fieldName; + } + + public function setFieldType($fieldType) + { + $this->fieldType = $fieldType; + } + + public function getFieldType() + { + return $this->fieldType; + } + + public function setIndexed($indexed) + { + $this->indexed = $indexed; + } + + public function getIndexed() + { + return $this->indexed; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMultiValued($multiValued) + { + $this->multiValued = $multiValued; + } + + public function getMultiValued() + { + return $this->multiValued; + } + + public function setNumericIndexingSpec(Google_Service_Directory_SchemaFieldSpecNumericIndexingSpec $numericIndexingSpec) + { + $this->numericIndexingSpec = $numericIndexingSpec; + } + + public function getNumericIndexingSpec() + { + return $this->numericIndexingSpec; + } + + public function setReadAccessType($readAccessType) + { + $this->readAccessType = $readAccessType; + } + + public function getReadAccessType() + { + return $this->readAccessType; + } +} + +class Google_Service_Directory_SchemaFieldSpecNumericIndexingSpec extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $maxValue; + public $minValue; + + public function setMaxValue($maxValue) + { + $this->maxValue = $maxValue; + } + + public function getMaxValue() + { + return $this->maxValue; + } + + public function setMinValue($minValue) + { + $this->minValue = $minValue; + } + + public function getMinValue() + { + return $this->minValue; + } +} + +class Google_Service_Directory_Schemas extends Google_Collection +{ + protected $collection_key = 'schemas'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + protected $schemasType = 'Google_Service_Directory_Schema'; + protected $schemasDataType = 'array'; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSchemas($schemas) + { + $this->schemas = $schemas; + } + + public function getSchemas() + { + return $this->schemas; + } +} + +class Google_Service_Directory_Token extends Google_Collection +{ + protected $collection_key = 'scopes'; + protected $internal_gapi_mappings = array( + ); + public $anonymous; + public $clientId; + public $displayText; + public $etag; + public $kind; + public $nativeApp; + public $scopes; + public $userKey; + + public function setAnonymous($anonymous) + { + $this->anonymous = $anonymous; + } + + public function getAnonymous() + { + return $this->anonymous; + } + + public function setClientId($clientId) + { + $this->clientId = $clientId; + } + + public function getClientId() + { + return $this->clientId; + } + + public function setDisplayText($displayText) + { + $this->displayText = $displayText; + } + + public function getDisplayText() + { + return $this->displayText; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNativeApp($nativeApp) + { + $this->nativeApp = $nativeApp; + } + + public function getNativeApp() + { + return $this->nativeApp; + } + + public function setScopes($scopes) + { + $this->scopes = $scopes; + } + + public function getScopes() + { + return $this->scopes; + } + + public function setUserKey($userKey) + { + $this->userKey = $userKey; + } + + public function getUserKey() + { + return $this->userKey; + } +} + +class Google_Service_Directory_Tokens extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Directory_Token'; + protected $itemsDataType = 'array'; + public $kind; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Directory_User extends Google_Collection +{ + protected $collection_key = 'nonEditableAliases'; + protected $internal_gapi_mappings = array( + ); + public $addresses; + public $agreedToTerms; + public $aliases; + public $changePasswordAtNextLogin; + public $creationTime; + public $customSchemas; + public $customerId; + public $deletionTime; + public $emails; + public $etag; + public $externalIds; + public $hashFunction; + public $id; + public $ims; + public $includeInGlobalAddressList; + public $ipWhitelisted; + public $isAdmin; + public $isDelegatedAdmin; + public $isMailboxSetup; + public $kind; + public $lastLoginTime; + protected $nameType = 'Google_Service_Directory_UserName'; + protected $nameDataType = ''; + public $nonEditableAliases; + public $orgUnitPath; + public $organizations; + public $password; + public $phones; + public $primaryEmail; + public $relations; + public $suspended; + public $suspensionReason; + public $thumbnailPhotoUrl; + + public function setAddresses($addresses) + { + $this->addresses = $addresses; + } + + public function getAddresses() + { + return $this->addresses; + } + + public function setAgreedToTerms($agreedToTerms) + { + $this->agreedToTerms = $agreedToTerms; + } + + public function getAgreedToTerms() + { + return $this->agreedToTerms; + } + + public function setAliases($aliases) + { + $this->aliases = $aliases; + } + + public function getAliases() + { + return $this->aliases; + } + + public function setChangePasswordAtNextLogin($changePasswordAtNextLogin) + { + $this->changePasswordAtNextLogin = $changePasswordAtNextLogin; + } + + public function getChangePasswordAtNextLogin() + { + return $this->changePasswordAtNextLogin; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCustomSchemas($customSchemas) + { + $this->customSchemas = $customSchemas; + } + + public function getCustomSchemas() + { + return $this->customSchemas; + } + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setDeletionTime($deletionTime) + { + $this->deletionTime = $deletionTime; + } + + public function getDeletionTime() + { + return $this->deletionTime; + } + + public function setEmails($emails) + { + $this->emails = $emails; + } + + public function getEmails() + { + return $this->emails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExternalIds($externalIds) + { + $this->externalIds = $externalIds; + } + + public function getExternalIds() + { + return $this->externalIds; + } + + public function setHashFunction($hashFunction) + { + $this->hashFunction = $hashFunction; + } + + public function getHashFunction() + { + return $this->hashFunction; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIms($ims) + { + $this->ims = $ims; + } + + public function getIms() + { + return $this->ims; + } + + public function setIncludeInGlobalAddressList($includeInGlobalAddressList) + { + $this->includeInGlobalAddressList = $includeInGlobalAddressList; + } + + public function getIncludeInGlobalAddressList() + { + return $this->includeInGlobalAddressList; + } + + public function setIpWhitelisted($ipWhitelisted) + { + $this->ipWhitelisted = $ipWhitelisted; + } + + public function getIpWhitelisted() + { + return $this->ipWhitelisted; + } + + public function setIsAdmin($isAdmin) + { + $this->isAdmin = $isAdmin; + } + + public function getIsAdmin() + { + return $this->isAdmin; + } + + public function setIsDelegatedAdmin($isDelegatedAdmin) + { + $this->isDelegatedAdmin = $isDelegatedAdmin; + } + + public function getIsDelegatedAdmin() + { + return $this->isDelegatedAdmin; + } + + public function setIsMailboxSetup($isMailboxSetup) + { + $this->isMailboxSetup = $isMailboxSetup; + } + + public function getIsMailboxSetup() + { + return $this->isMailboxSetup; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastLoginTime($lastLoginTime) + { + $this->lastLoginTime = $lastLoginTime; + } + + public function getLastLoginTime() + { + return $this->lastLoginTime; + } + + public function setName(Google_Service_Directory_UserName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNonEditableAliases($nonEditableAliases) + { + $this->nonEditableAliases = $nonEditableAliases; + } + + public function getNonEditableAliases() + { + return $this->nonEditableAliases; + } + + public function setOrgUnitPath($orgUnitPath) + { + $this->orgUnitPath = $orgUnitPath; + } + + public function getOrgUnitPath() + { + return $this->orgUnitPath; + } + + public function setOrganizations($organizations) + { + $this->organizations = $organizations; + } + + public function getOrganizations() + { + return $this->organizations; + } + + public function setPassword($password) + { + $this->password = $password; + } + + public function getPassword() + { + return $this->password; + } + + public function setPhones($phones) + { + $this->phones = $phones; + } + + public function getPhones() + { + return $this->phones; + } + + public function setPrimaryEmail($primaryEmail) + { + $this->primaryEmail = $primaryEmail; + } + + public function getPrimaryEmail() + { + return $this->primaryEmail; + } + + public function setRelations($relations) + { + $this->relations = $relations; + } + + public function getRelations() + { + return $this->relations; + } + + public function setSuspended($suspended) + { + $this->suspended = $suspended; + } + + public function getSuspended() + { + return $this->suspended; + } + + public function setSuspensionReason($suspensionReason) + { + $this->suspensionReason = $suspensionReason; + } + + public function getSuspensionReason() + { + return $this->suspensionReason; + } + + public function setThumbnailPhotoUrl($thumbnailPhotoUrl) + { + $this->thumbnailPhotoUrl = $thumbnailPhotoUrl; + } + + public function getThumbnailPhotoUrl() + { + return $this->thumbnailPhotoUrl; + } +} + +class Google_Service_Directory_UserAddress extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $country; + public $countryCode; + public $customType; + public $extendedAddress; + public $formatted; + public $locality; + public $poBox; + public $postalCode; + public $primary; + public $region; + public $sourceIsStructured; + public $streetAddress; + public $type; + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setCountryCode($countryCode) + { + $this->countryCode = $countryCode; + } + + public function getCountryCode() + { + return $this->countryCode; + } + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setExtendedAddress($extendedAddress) + { + $this->extendedAddress = $extendedAddress; + } + + public function getExtendedAddress() + { + return $this->extendedAddress; + } + + public function setFormatted($formatted) + { + $this->formatted = $formatted; + } + + public function getFormatted() + { + return $this->formatted; + } + + public function setLocality($locality) + { + $this->locality = $locality; + } + + public function getLocality() + { + return $this->locality; + } + + public function setPoBox($poBox) + { + $this->poBox = $poBox; + } + + public function getPoBox() + { + return $this->poBox; + } + + public function setPostalCode($postalCode) + { + $this->postalCode = $postalCode; + } + + public function getPostalCode() + { + return $this->postalCode; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSourceIsStructured($sourceIsStructured) + { + $this->sourceIsStructured = $sourceIsStructured; + } + + public function getSourceIsStructured() + { + return $this->sourceIsStructured; + } + + public function setStreetAddress($streetAddress) + { + $this->streetAddress = $streetAddress; + } + + public function getStreetAddress() + { + return $this->streetAddress; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_UserCustomProperties extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Directory_UserCustomSchemas extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Directory_UserEmail extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $customType; + public $primary; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_UserExternalId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customType; + public $type; + public $value; + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Directory_UserIm extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customProtocol; + public $customType; + public $im; + public $primary; + public $protocol; + public $type; + + public function setCustomProtocol($customProtocol) + { + $this->customProtocol = $customProtocol; + } + + public function getCustomProtocol() + { + return $this->customProtocol; + } + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setIm($im) + { + $this->im = $im; + } + + public function getIm() + { + return $this->im; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setProtocol($protocol) + { + $this->protocol = $protocol; + } + + public function getProtocol() + { + return $this->protocol; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_UserMakeAdmin extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $status; + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Directory_UserName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $fullName; + public $givenName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setFullName($fullName) + { + $this->fullName = $fullName; + } + + public function getFullName() + { + return $this->fullName; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } +} + +class Google_Service_Directory_UserOrganization extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $costCenter; + public $customType; + public $department; + public $description; + public $domain; + public $location; + public $name; + public $primary; + public $symbol; + public $title; + public $type; + + public function setCostCenter($costCenter) + { + $this->costCenter = $costCenter; + } + + public function getCostCenter() + { + return $this->costCenter; + } + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setDepartment($department) + { + $this->department = $department; + } + + public function getDepartment() + { + return $this->department; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setSymbol($symbol) + { + $this->symbol = $symbol; + } + + public function getSymbol() + { + return $this->symbol; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Directory_UserPhone extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customType; + public $primary; + public $type; + public $value; + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Directory_UserPhoto extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $height; + public $id; + public $kind; + public $mimeType; + public $photoData; + public $primaryEmail; + public $width; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setPhotoData($photoData) + { + $this->photoData = $photoData; + } + + public function getPhotoData() + { + return $this->photoData; + } + + public function setPrimaryEmail($primaryEmail) + { + $this->primaryEmail = $primaryEmail; + } + + public function getPrimaryEmail() + { + return $this->primaryEmail; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Directory_UserRelation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customType; + public $type; + public $value; + + public function setCustomType($customType) + { + $this->customType = $customType; + } + + public function getCustomType() + { + return $this->customType; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Directory_UserUndelete extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $orgUnitPath; + + public function setOrgUnitPath($orgUnitPath) + { + $this->orgUnitPath = $orgUnitPath; + } + + public function getOrgUnitPath() + { + return $this->orgUnitPath; + } +} + +class Google_Service_Directory_Users extends Google_Collection +{ + protected $collection_key = 'users'; + protected $internal_gapi_mappings = array( + "triggerEvent" => "trigger_event", + ); + public $etag; + public $kind; + public $nextPageToken; + public $triggerEvent; + protected $usersType = 'Google_Service_Directory_User'; + protected $usersDataType = 'array'; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTriggerEvent($triggerEvent) + { + $this->triggerEvent = $triggerEvent; + } + + public function getTriggerEvent() + { + return $this->triggerEvent; + } + + public function setUsers($users) + { + $this->users = $users; + } + + public function getUsers() + { + return $this->users; + } +} + +class Google_Service_Directory_VerificationCode extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + public $userId; + public $verificationCode; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUserId($userId) + { + $this->userId = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function setVerificationCode($verificationCode) + { + $this->verificationCode = $verificationCode; + } + + public function getVerificationCode() + { + return $this->verificationCode; + } +} + +class Google_Service_Directory_VerificationCodes extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Directory_VerificationCode'; + protected $itemsDataType = 'array'; + public $kind; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Dns.php b/vendor/google/apiclient/src/Google/Service/Dns.php new file mode 100644 index 0000000..cd9a35d --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Dns.php @@ -0,0 +1,972 @@ + + * The Google Cloud DNS API provides services for configuring and serving authoritative DNS records. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Dns extends Google_Service +{ + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** View your DNS records hosted by Google Cloud DNS. */ + const NDEV_CLOUDDNS_READONLY = "https://www.googleapis.com/auth/ndev.clouddns.readonly"; + /** View and manage your DNS records hosted by Google Cloud DNS. */ + const NDEV_CLOUDDNS_READWRITE = "https://www.googleapis.com/auth/ndev.clouddns.readwrite"; + + public $changes; + public $managedZones; + public $projects; + public $resourceRecordSets; + + + /** + * Constructs the internal representation of the Dns service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'dns/v1beta1/projects/'; + $this->version = 'v1beta1'; + $this->serviceName = 'dns'; + + $this->changes = new Google_Service_Dns_Changes_Resource( + $this, + $this->serviceName, + 'changes', + array( + 'methods' => array( + 'create' => array( + 'path' => '{project}/managedZones/{managedZone}/changes', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'managedZone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/managedZones/{managedZone}/changes/{changeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'managedZone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'changeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/managedZones/{managedZone}/changes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'managedZone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->managedZones = new Google_Service_Dns_ManagedZones_Resource( + $this, + $this->serviceName, + 'managedZones', + array( + 'methods' => array( + 'create' => array( + 'path' => '{project}/managedZones', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{project}/managedZones/{managedZone}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'managedZone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/managedZones/{managedZone}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'managedZone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/managedZones', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->projects = new Google_Service_Dns_Projects_Resource( + $this, + $this->serviceName, + 'projects', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->resourceRecordSets = new Google_Service_Dns_ResourceRecordSets_Resource( + $this, + $this->serviceName, + 'resourceRecordSets', + array( + 'methods' => array( + 'list' => array( + 'path' => '{project}/managedZones/{managedZone}/rrsets', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'managedZone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'name' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "changes" collection of methods. + * Typical usage is: + * + * $dnsService = new Google_Service_Dns(...); + * $changes = $dnsService->changes; + * + */ +class Google_Service_Dns_Changes_Resource extends Google_Service_Resource +{ + + /** + * Atomically update the ResourceRecordSet collection. (changes.create) + * + * @param string $project + * Identifies the project addressed by this request. + * @param string $managedZone + * Identifies the managed zone addressed by this request. Can be the managed zone name or id. + * @param Google_Change $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Dns_Change + */ + public function create($project, $managedZone, Google_Service_Dns_Change $postBody, $optParams = array()) + { + $params = array('project' => $project, 'managedZone' => $managedZone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Dns_Change"); + } + /** + * Fetch the representation of an existing Change. (changes.get) + * + * @param string $project + * Identifies the project addressed by this request. + * @param string $managedZone + * Identifies the managed zone addressed by this request. Can be the managed zone name or id. + * @param string $changeId + * The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse. + * @param array $optParams Optional parameters. + * @return Google_Service_Dns_Change + */ + public function get($project, $managedZone, $changeId, $optParams = array()) + { + $params = array('project' => $project, 'managedZone' => $managedZone, 'changeId' => $changeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dns_Change"); + } + /** + * Enumerate Changes to a ResourceRecordSet collection. (changes.listChanges) + * + * @param string $project + * Identifies the project addressed by this request. + * @param string $managedZone + * Identifies the managed zone addressed by this request. Can be the managed zone name or id. + * @param array $optParams Optional parameters. + * + * @opt_param int maxResults + * Optional. Maximum number of results to be returned. If unspecified, the server will decide how + * many results to return. + * @opt_param string pageToken + * Optional. A tag returned by a previous list request that was truncated. Use this parameter to + * continue a previous list request. + * @opt_param string sortBy + * Sorting criterion. The only supported value is change sequence. + * @opt_param string sortOrder + * Sorting order direction: 'ascending' or 'descending'. + * @return Google_Service_Dns_ChangesListResponse + */ + public function listChanges($project, $managedZone, $optParams = array()) + { + $params = array('project' => $project, 'managedZone' => $managedZone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dns_ChangesListResponse"); + } +} + +/** + * The "managedZones" collection of methods. + * Typical usage is: + * + * $dnsService = new Google_Service_Dns(...); + * $managedZones = $dnsService->managedZones; + * + */ +class Google_Service_Dns_ManagedZones_Resource extends Google_Service_Resource +{ + + /** + * Create a new ManagedZone. (managedZones.create) + * + * @param string $project + * Identifies the project addressed by this request. + * @param Google_ManagedZone $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Dns_ManagedZone + */ + public function create($project, Google_Service_Dns_ManagedZone $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Dns_ManagedZone"); + } + /** + * Delete a previously created ManagedZone. (managedZones.delete) + * + * @param string $project + * Identifies the project addressed by this request. + * @param string $managedZone + * Identifies the managed zone addressed by this request. Can be the managed zone name or id. + * @param array $optParams Optional parameters. + */ + public function delete($project, $managedZone, $optParams = array()) + { + $params = array('project' => $project, 'managedZone' => $managedZone); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Fetch the representation of an existing ManagedZone. (managedZones.get) + * + * @param string $project + * Identifies the project addressed by this request. + * @param string $managedZone + * Identifies the managed zone addressed by this request. Can be the managed zone name or id. + * @param array $optParams Optional parameters. + * @return Google_Service_Dns_ManagedZone + */ + public function get($project, $managedZone, $optParams = array()) + { + $params = array('project' => $project, 'managedZone' => $managedZone); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dns_ManagedZone"); + } + /** + * Enumerate ManagedZones that have been created but not yet deleted. + * (managedZones.listManagedZones) + * + * @param string $project + * Identifies the project addressed by this request. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Optional. A tag returned by a previous list request that was truncated. Use this parameter to + * continue a previous list request. + * @opt_param int maxResults + * Optional. Maximum number of results to be returned. If unspecified, the server will decide how + * many results to return. + * @return Google_Service_Dns_ManagedZonesListResponse + */ + public function listManagedZones($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dns_ManagedZonesListResponse"); + } +} + +/** + * The "projects" collection of methods. + * Typical usage is: + * + * $dnsService = new Google_Service_Dns(...); + * $projects = $dnsService->projects; + * + */ +class Google_Service_Dns_Projects_Resource extends Google_Service_Resource +{ + + /** + * Fetch the representation of an existing Project. (projects.get) + * + * @param string $project + * Identifies the project addressed by this request. + * @param array $optParams Optional parameters. + * @return Google_Service_Dns_Project + */ + public function get($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Dns_Project"); + } +} + +/** + * The "resourceRecordSets" collection of methods. + * Typical usage is: + * + * $dnsService = new Google_Service_Dns(...); + * $resourceRecordSets = $dnsService->resourceRecordSets; + * + */ +class Google_Service_Dns_ResourceRecordSets_Resource extends Google_Service_Resource +{ + + /** + * Enumerate ResourceRecordSets that have been created but not yet deleted. + * (resourceRecordSets.listResourceRecordSets) + * + * @param string $project + * Identifies the project addressed by this request. + * @param string $managedZone + * Identifies the managed zone addressed by this request. Can be the managed zone name or id. + * @param array $optParams Optional parameters. + * + * @opt_param string name + * Restricts the list to return only records with this fully qualified domain name. + * @opt_param int maxResults + * Optional. Maximum number of results to be returned. If unspecified, the server will decide how + * many results to return. + * @opt_param string pageToken + * Optional. A tag returned by a previous list request that was truncated. Use this parameter to + * continue a previous list request. + * @opt_param string type + * Restricts the list to return only records of this type. If present, the "name" parameter must + * also be present. + * @return Google_Service_Dns_ResourceRecordSetsListResponse + */ + public function listResourceRecordSets($project, $managedZone, $optParams = array()) + { + $params = array('project' => $project, 'managedZone' => $managedZone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Dns_ResourceRecordSetsListResponse"); + } +} + + + + +class Google_Service_Dns_Change extends Google_Collection +{ + protected $collection_key = 'deletions'; + protected $internal_gapi_mappings = array( + ); + protected $additionsType = 'Google_Service_Dns_ResourceRecordSet'; + protected $additionsDataType = 'array'; + protected $deletionsType = 'Google_Service_Dns_ResourceRecordSet'; + protected $deletionsDataType = 'array'; + public $id; + public $kind; + public $startTime; + public $status; + + public function setAdditions($additions) + { + $this->additions = $additions; + } + + public function getAdditions() + { + return $this->additions; + } + + public function setDeletions($deletions) + { + $this->deletions = $deletions; + } + + public function getDeletions() + { + return $this->deletions; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Dns_ChangesListResponse extends Google_Collection +{ + protected $collection_key = 'changes'; + protected $internal_gapi_mappings = array( + ); + protected $changesType = 'Google_Service_Dns_Change'; + protected $changesDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setChanges($changes) + { + $this->changes = $changes; + } + + public function getChanges() + { + return $this->changes; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Dns_ManagedZone extends Google_Collection +{ + protected $collection_key = 'nameServers'; + protected $internal_gapi_mappings = array( + ); + public $creationTime; + public $description; + public $dnsName; + public $id; + public $kind; + public $name; + public $nameServers; + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDnsName($dnsName) + { + $this->dnsName = $dnsName; + } + + public function getDnsName() + { + return $this->dnsName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNameServers($nameServers) + { + $this->nameServers = $nameServers; + } + + public function getNameServers() + { + return $this->nameServers; + } +} + +class Google_Service_Dns_ManagedZonesListResponse extends Google_Collection +{ + protected $collection_key = 'managedZones'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $managedZonesType = 'Google_Service_Dns_ManagedZone'; + protected $managedZonesDataType = 'array'; + public $nextPageToken; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setManagedZones($managedZones) + { + $this->managedZones = $managedZones; + } + + public function getManagedZones() + { + return $this->managedZones; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Dns_Project extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $number; + protected $quotaType = 'Google_Service_Dns_Quota'; + protected $quotaDataType = ''; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNumber($number) + { + $this->number = $number; + } + + public function getNumber() + { + return $this->number; + } + + public function setQuota(Google_Service_Dns_Quota $quota) + { + $this->quota = $quota; + } + + public function getQuota() + { + return $this->quota; + } +} + +class Google_Service_Dns_Quota extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $managedZones; + public $resourceRecordsPerRrset; + public $rrsetAdditionsPerChange; + public $rrsetDeletionsPerChange; + public $rrsetsPerManagedZone; + public $totalRrdataSizePerChange; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setManagedZones($managedZones) + { + $this->managedZones = $managedZones; + } + + public function getManagedZones() + { + return $this->managedZones; + } + + public function setResourceRecordsPerRrset($resourceRecordsPerRrset) + { + $this->resourceRecordsPerRrset = $resourceRecordsPerRrset; + } + + public function getResourceRecordsPerRrset() + { + return $this->resourceRecordsPerRrset; + } + + public function setRrsetAdditionsPerChange($rrsetAdditionsPerChange) + { + $this->rrsetAdditionsPerChange = $rrsetAdditionsPerChange; + } + + public function getRrsetAdditionsPerChange() + { + return $this->rrsetAdditionsPerChange; + } + + public function setRrsetDeletionsPerChange($rrsetDeletionsPerChange) + { + $this->rrsetDeletionsPerChange = $rrsetDeletionsPerChange; + } + + public function getRrsetDeletionsPerChange() + { + return $this->rrsetDeletionsPerChange; + } + + public function setRrsetsPerManagedZone($rrsetsPerManagedZone) + { + $this->rrsetsPerManagedZone = $rrsetsPerManagedZone; + } + + public function getRrsetsPerManagedZone() + { + return $this->rrsetsPerManagedZone; + } + + public function setTotalRrdataSizePerChange($totalRrdataSizePerChange) + { + $this->totalRrdataSizePerChange = $totalRrdataSizePerChange; + } + + public function getTotalRrdataSizePerChange() + { + return $this->totalRrdataSizePerChange; + } +} + +class Google_Service_Dns_ResourceRecordSet extends Google_Collection +{ + protected $collection_key = 'rrdatas'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $name; + public $rrdatas; + public $ttl; + public $type; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRrdatas($rrdatas) + { + $this->rrdatas = $rrdatas; + } + + public function getRrdatas() + { + return $this->rrdatas; + } + + public function setTtl($ttl) + { + $this->ttl = $ttl; + } + + public function getTtl() + { + return $this->ttl; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Dns_ResourceRecordSetsListResponse extends Google_Collection +{ + protected $collection_key = 'rrsets'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $rrsetsType = 'Google_Service_Dns_ResourceRecordSet'; + protected $rrsetsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setRrsets($rrsets) + { + $this->rrsets = $rrsets; + } + + public function getRrsets() + { + return $this->rrsets; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/DoubleClickBidManager.php b/vendor/google/apiclient/src/Google/Service/DoubleClickBidManager.php new file mode 100644 index 0000000..20bafea --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/DoubleClickBidManager.php @@ -0,0 +1,1162 @@ + + * API for viewing and managing your reports in DoubleClick Bid Manager. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_DoubleClickBidManager extends Google_Service +{ + + + public $lineitems; + public $queries; + public $reports; + + + /** + * Constructs the internal representation of the DoubleClickBidManager + * service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'doubleclickbidmanager/v1/'; + $this->version = 'v1'; + $this->serviceName = 'doubleclickbidmanager'; + + $this->lineitems = new Google_Service_DoubleClickBidManager_Lineitems_Resource( + $this, + $this->serviceName, + 'lineitems', + array( + 'methods' => array( + 'downloadlineitems' => array( + 'path' => 'lineitems/downloadlineitems', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'uploadlineitems' => array( + 'path' => 'lineitems/uploadlineitems', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->queries = new Google_Service_DoubleClickBidManager_Queries_Resource( + $this, + $this->serviceName, + 'queries', + array( + 'methods' => array( + 'createquery' => array( + 'path' => 'query', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'deletequery' => array( + 'path' => 'query/{queryId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'queryId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getquery' => array( + 'path' => 'query/{queryId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'queryId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'listqueries' => array( + 'path' => 'queries', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'runquery' => array( + 'path' => 'query/{queryId}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'queryId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->reports = new Google_Service_DoubleClickBidManager_Reports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'listreports' => array( + 'path' => 'queries/{queryId}/reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'queryId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "lineitems" collection of methods. + * Typical usage is: + * + * $doubleclickbidmanagerService = new Google_Service_DoubleClickBidManager(...); + * $lineitems = $doubleclickbidmanagerService->lineitems; + * + */ +class Google_Service_DoubleClickBidManager_Lineitems_Resource extends Google_Service_Resource +{ + + /** + * Retrieves line items in CSV format. (lineitems.downloadlineitems) + * + * @param Google_DownloadLineItemsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_DoubleClickBidManager_DownloadLineItemsResponse + */ + public function downloadlineitems(Google_Service_DoubleClickBidManager_DownloadLineItemsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('downloadlineitems', array($params), "Google_Service_DoubleClickBidManager_DownloadLineItemsResponse"); + } + /** + * Uploads line items in CSV format. (lineitems.uploadlineitems) + * + * @param Google_UploadLineItemsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_DoubleClickBidManager_UploadLineItemsResponse + */ + public function uploadlineitems(Google_Service_DoubleClickBidManager_UploadLineItemsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('uploadlineitems', array($params), "Google_Service_DoubleClickBidManager_UploadLineItemsResponse"); + } +} + +/** + * The "queries" collection of methods. + * Typical usage is: + * + * $doubleclickbidmanagerService = new Google_Service_DoubleClickBidManager(...); + * $queries = $doubleclickbidmanagerService->queries; + * + */ +class Google_Service_DoubleClickBidManager_Queries_Resource extends Google_Service_Resource +{ + + /** + * Creates a query. (queries.createquery) + * + * @param Google_Query $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_DoubleClickBidManager_Query + */ + public function createquery(Google_Service_DoubleClickBidManager_Query $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('createquery', array($params), "Google_Service_DoubleClickBidManager_Query"); + } + /** + * Deletes a stored query as well as the associated stored reports. + * (queries.deletequery) + * + * @param string $queryId + * Query ID to delete. + * @param array $optParams Optional parameters. + */ + public function deletequery($queryId, $optParams = array()) + { + $params = array('queryId' => $queryId); + $params = array_merge($params, $optParams); + return $this->call('deletequery', array($params)); + } + /** + * Retrieves a stored query. (queries.getquery) + * + * @param string $queryId + * Query ID to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_DoubleClickBidManager_Query + */ + public function getquery($queryId, $optParams = array()) + { + $params = array('queryId' => $queryId); + $params = array_merge($params, $optParams); + return $this->call('getquery', array($params), "Google_Service_DoubleClickBidManager_Query"); + } + /** + * Retrieves stored queries. (queries.listqueries) + * + * @param array $optParams Optional parameters. + * @return Google_Service_DoubleClickBidManager_ListQueriesResponse + */ + public function listqueries($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('listqueries', array($params), "Google_Service_DoubleClickBidManager_ListQueriesResponse"); + } + /** + * Runs a stored query to generate a report. (queries.runquery) + * + * @param string $queryId + * Query ID to run. + * @param Google_RunQueryRequest $postBody + * @param array $optParams Optional parameters. + */ + public function runquery($queryId, Google_Service_DoubleClickBidManager_RunQueryRequest $postBody, $optParams = array()) + { + $params = array('queryId' => $queryId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('runquery', array($params)); + } +} + +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $doubleclickbidmanagerService = new Google_Service_DoubleClickBidManager(...); + * $reports = $doubleclickbidmanagerService->reports; + * + */ +class Google_Service_DoubleClickBidManager_Reports_Resource extends Google_Service_Resource +{ + + /** + * Retrieves stored reports. (reports.listreports) + * + * @param string $queryId + * Query ID with which the reports are associated. + * @param array $optParams Optional parameters. + * @return Google_Service_DoubleClickBidManager_ListReportsResponse + */ + public function listreports($queryId, $optParams = array()) + { + $params = array('queryId' => $queryId); + $params = array_merge($params, $optParams); + return $this->call('listreports', array($params), "Google_Service_DoubleClickBidManager_ListReportsResponse"); + } +} + + + + +class Google_Service_DoubleClickBidManager_DownloadLineItemsRequest extends Google_Collection +{ + protected $collection_key = 'filterIds'; + protected $internal_gapi_mappings = array( + ); + public $filterIds; + public $filterType; + public $format; + + public function setFilterIds($filterIds) + { + $this->filterIds = $filterIds; + } + + public function getFilterIds() + { + return $this->filterIds; + } + + public function setFilterType($filterType) + { + $this->filterType = $filterType; + } + + public function getFilterType() + { + return $this->filterType; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } +} + +class Google_Service_DoubleClickBidManager_DownloadLineItemsResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $lineItems; + + public function setLineItems($lineItems) + { + $this->lineItems = $lineItems; + } + + public function getLineItems() + { + return $this->lineItems; + } +} + +class Google_Service_DoubleClickBidManager_FilterPair extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_DoubleClickBidManager_ListQueriesResponse extends Google_Collection +{ + protected $collection_key = 'queries'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $queriesType = 'Google_Service_DoubleClickBidManager_Query'; + protected $queriesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setQueries($queries) + { + $this->queries = $queries; + } + + public function getQueries() + { + return $this->queries; + } +} + +class Google_Service_DoubleClickBidManager_ListReportsResponse extends Google_Collection +{ + protected $collection_key = 'reports'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $reportsType = 'Google_Service_DoubleClickBidManager_Report'; + protected $reportsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setReports($reports) + { + $this->reports = $reports; + } + + public function getReports() + { + return $this->reports; + } +} + +class Google_Service_DoubleClickBidManager_Parameters extends Google_Collection +{ + protected $collection_key = 'metrics'; + protected $internal_gapi_mappings = array( + ); + protected $filtersType = 'Google_Service_DoubleClickBidManager_FilterPair'; + protected $filtersDataType = 'array'; + public $groupBys; + public $includeInviteData; + public $metrics; + public $type; + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setGroupBys($groupBys) + { + $this->groupBys = $groupBys; + } + + public function getGroupBys() + { + return $this->groupBys; + } + + public function setIncludeInviteData($includeInviteData) + { + $this->includeInviteData = $includeInviteData; + } + + public function getIncludeInviteData() + { + return $this->includeInviteData; + } + + public function setMetrics($metrics) + { + $this->metrics = $metrics; + } + + public function getMetrics() + { + return $this->metrics; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_DoubleClickBidManager_Query extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $metadataType = 'Google_Service_DoubleClickBidManager_QueryMetadata'; + protected $metadataDataType = ''; + protected $paramsType = 'Google_Service_DoubleClickBidManager_Parameters'; + protected $paramsDataType = ''; + public $queryId; + public $reportDataEndTimeMs; + public $reportDataStartTimeMs; + protected $scheduleType = 'Google_Service_DoubleClickBidManager_QuerySchedule'; + protected $scheduleDataType = ''; + public $timezoneCode; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMetadata(Google_Service_DoubleClickBidManager_QueryMetadata $metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setParams(Google_Service_DoubleClickBidManager_Parameters $params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setQueryId($queryId) + { + $this->queryId = $queryId; + } + + public function getQueryId() + { + return $this->queryId; + } + + public function setReportDataEndTimeMs($reportDataEndTimeMs) + { + $this->reportDataEndTimeMs = $reportDataEndTimeMs; + } + + public function getReportDataEndTimeMs() + { + return $this->reportDataEndTimeMs; + } + + public function setReportDataStartTimeMs($reportDataStartTimeMs) + { + $this->reportDataStartTimeMs = $reportDataStartTimeMs; + } + + public function getReportDataStartTimeMs() + { + return $this->reportDataStartTimeMs; + } + + public function setSchedule(Google_Service_DoubleClickBidManager_QuerySchedule $schedule) + { + $this->schedule = $schedule; + } + + public function getSchedule() + { + return $this->schedule; + } + + public function setTimezoneCode($timezoneCode) + { + $this->timezoneCode = $timezoneCode; + } + + public function getTimezoneCode() + { + return $this->timezoneCode; + } +} + +class Google_Service_DoubleClickBidManager_QueryMetadata extends Google_Collection +{ + protected $collection_key = 'shareEmailAddress'; + protected $internal_gapi_mappings = array( + ); + public $dataRange; + public $format; + public $googleCloudStoragePathForLatestReport; + public $googleDrivePathForLatestReport; + public $latestReportRunTimeMs; + public $reportCount; + public $running; + public $sendNotification; + public $shareEmailAddress; + public $title; + + public function setDataRange($dataRange) + { + $this->dataRange = $dataRange; + } + + public function getDataRange() + { + return $this->dataRange; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setGoogleCloudStoragePathForLatestReport($googleCloudStoragePathForLatestReport) + { + $this->googleCloudStoragePathForLatestReport = $googleCloudStoragePathForLatestReport; + } + + public function getGoogleCloudStoragePathForLatestReport() + { + return $this->googleCloudStoragePathForLatestReport; + } + + public function setGoogleDrivePathForLatestReport($googleDrivePathForLatestReport) + { + $this->googleDrivePathForLatestReport = $googleDrivePathForLatestReport; + } + + public function getGoogleDrivePathForLatestReport() + { + return $this->googleDrivePathForLatestReport; + } + + public function setLatestReportRunTimeMs($latestReportRunTimeMs) + { + $this->latestReportRunTimeMs = $latestReportRunTimeMs; + } + + public function getLatestReportRunTimeMs() + { + return $this->latestReportRunTimeMs; + } + + public function setReportCount($reportCount) + { + $this->reportCount = $reportCount; + } + + public function getReportCount() + { + return $this->reportCount; + } + + public function setRunning($running) + { + $this->running = $running; + } + + public function getRunning() + { + return $this->running; + } + + public function setSendNotification($sendNotification) + { + $this->sendNotification = $sendNotification; + } + + public function getSendNotification() + { + return $this->sendNotification; + } + + public function setShareEmailAddress($shareEmailAddress) + { + $this->shareEmailAddress = $shareEmailAddress; + } + + public function getShareEmailAddress() + { + return $this->shareEmailAddress; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_DoubleClickBidManager_QuerySchedule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endTimeMs; + public $frequency; + public $nextRunMinuteOfDay; + public $nextRunTimezoneCode; + + public function setEndTimeMs($endTimeMs) + { + $this->endTimeMs = $endTimeMs; + } + + public function getEndTimeMs() + { + return $this->endTimeMs; + } + + public function setFrequency($frequency) + { + $this->frequency = $frequency; + } + + public function getFrequency() + { + return $this->frequency; + } + + public function setNextRunMinuteOfDay($nextRunMinuteOfDay) + { + $this->nextRunMinuteOfDay = $nextRunMinuteOfDay; + } + + public function getNextRunMinuteOfDay() + { + return $this->nextRunMinuteOfDay; + } + + public function setNextRunTimezoneCode($nextRunTimezoneCode) + { + $this->nextRunTimezoneCode = $nextRunTimezoneCode; + } + + public function getNextRunTimezoneCode() + { + return $this->nextRunTimezoneCode; + } +} + +class Google_Service_DoubleClickBidManager_Report extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $keyType = 'Google_Service_DoubleClickBidManager_ReportKey'; + protected $keyDataType = ''; + protected $metadataType = 'Google_Service_DoubleClickBidManager_ReportMetadata'; + protected $metadataDataType = ''; + protected $paramsType = 'Google_Service_DoubleClickBidManager_Parameters'; + protected $paramsDataType = ''; + + public function setKey(Google_Service_DoubleClickBidManager_ReportKey $key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setMetadata(Google_Service_DoubleClickBidManager_ReportMetadata $metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setParams(Google_Service_DoubleClickBidManager_Parameters $params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } +} + +class Google_Service_DoubleClickBidManager_ReportFailure extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $errorCode; + + public function setErrorCode($errorCode) + { + $this->errorCode = $errorCode; + } + + public function getErrorCode() + { + return $this->errorCode; + } +} + +class Google_Service_DoubleClickBidManager_ReportKey extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $queryId; + public $reportId; + + public function setQueryId($queryId) + { + $this->queryId = $queryId; + } + + public function getQueryId() + { + return $this->queryId; + } + + public function setReportId($reportId) + { + $this->reportId = $reportId; + } + + public function getReportId() + { + return $this->reportId; + } +} + +class Google_Service_DoubleClickBidManager_ReportMetadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $googleCloudStoragePath; + public $reportDataEndTimeMs; + public $reportDataStartTimeMs; + protected $statusType = 'Google_Service_DoubleClickBidManager_ReportStatus'; + protected $statusDataType = ''; + + public function setGoogleCloudStoragePath($googleCloudStoragePath) + { + $this->googleCloudStoragePath = $googleCloudStoragePath; + } + + public function getGoogleCloudStoragePath() + { + return $this->googleCloudStoragePath; + } + + public function setReportDataEndTimeMs($reportDataEndTimeMs) + { + $this->reportDataEndTimeMs = $reportDataEndTimeMs; + } + + public function getReportDataEndTimeMs() + { + return $this->reportDataEndTimeMs; + } + + public function setReportDataStartTimeMs($reportDataStartTimeMs) + { + $this->reportDataStartTimeMs = $reportDataStartTimeMs; + } + + public function getReportDataStartTimeMs() + { + return $this->reportDataStartTimeMs; + } + + public function setStatus(Google_Service_DoubleClickBidManager_ReportStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_DoubleClickBidManager_ReportStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $failureType = 'Google_Service_DoubleClickBidManager_ReportFailure'; + protected $failureDataType = ''; + public $finishTimeMs; + public $format; + public $state; + + public function setFailure(Google_Service_DoubleClickBidManager_ReportFailure $failure) + { + $this->failure = $failure; + } + + public function getFailure() + { + return $this->failure; + } + + public function setFinishTimeMs($finishTimeMs) + { + $this->finishTimeMs = $finishTimeMs; + } + + public function getFinishTimeMs() + { + return $this->finishTimeMs; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_DoubleClickBidManager_RowStatus extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + public $changed; + public $entityId; + public $entityName; + public $errors; + public $persisted; + public $rowNumber; + + public function setChanged($changed) + { + $this->changed = $changed; + } + + public function getChanged() + { + return $this->changed; + } + + public function setEntityId($entityId) + { + $this->entityId = $entityId; + } + + public function getEntityId() + { + return $this->entityId; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setPersisted($persisted) + { + $this->persisted = $persisted; + } + + public function getPersisted() + { + return $this->persisted; + } + + public function setRowNumber($rowNumber) + { + $this->rowNumber = $rowNumber; + } + + public function getRowNumber() + { + return $this->rowNumber; + } +} + +class Google_Service_DoubleClickBidManager_RunQueryRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $dataRange; + public $reportDataEndTimeMs; + public $reportDataStartTimeMs; + public $timezoneCode; + + public function setDataRange($dataRange) + { + $this->dataRange = $dataRange; + } + + public function getDataRange() + { + return $this->dataRange; + } + + public function setReportDataEndTimeMs($reportDataEndTimeMs) + { + $this->reportDataEndTimeMs = $reportDataEndTimeMs; + } + + public function getReportDataEndTimeMs() + { + return $this->reportDataEndTimeMs; + } + + public function setReportDataStartTimeMs($reportDataStartTimeMs) + { + $this->reportDataStartTimeMs = $reportDataStartTimeMs; + } + + public function getReportDataStartTimeMs() + { + return $this->reportDataStartTimeMs; + } + + public function setTimezoneCode($timezoneCode) + { + $this->timezoneCode = $timezoneCode; + } + + public function getTimezoneCode() + { + return $this->timezoneCode; + } +} + +class Google_Service_DoubleClickBidManager_UploadLineItemsRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $dryRun; + public $format; + public $lineItems; + + public function setDryRun($dryRun) + { + $this->dryRun = $dryRun; + } + + public function getDryRun() + { + return $this->dryRun; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setLineItems($lineItems) + { + $this->lineItems = $lineItems; + } + + public function getLineItems() + { + return $this->lineItems; + } +} + +class Google_Service_DoubleClickBidManager_UploadLineItemsResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $uploadStatusType = 'Google_Service_DoubleClickBidManager_UploadStatus'; + protected $uploadStatusDataType = ''; + + public function setUploadStatus(Google_Service_DoubleClickBidManager_UploadStatus $uploadStatus) + { + $this->uploadStatus = $uploadStatus; + } + + public function getUploadStatus() + { + return $this->uploadStatus; + } +} + +class Google_Service_DoubleClickBidManager_UploadStatus extends Google_Collection +{ + protected $collection_key = 'rowStatus'; + protected $internal_gapi_mappings = array( + ); + public $errors; + protected $rowStatusType = 'Google_Service_DoubleClickBidManager_RowStatus'; + protected $rowStatusDataType = 'array'; + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setRowStatus($rowStatus) + { + $this->rowStatus = $rowStatus; + } + + public function getRowStatus() + { + return $this->rowStatus; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Doubleclicksearch.php b/vendor/google/apiclient/src/Google/Service/Doubleclicksearch.php new file mode 100644 index 0000000..67a31c2 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Doubleclicksearch.php @@ -0,0 +1,1593 @@ + + * Report and modify your advertising data in DoubleClick Search (for example, campaigns, ad groups, keywords, and conversions). + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Doubleclicksearch extends Google_Service +{ + /** View and manage your advertising data in DoubleClick Search. */ + const DOUBLECLICKSEARCH = "https://www.googleapis.com/auth/doubleclicksearch"; + + public $conversion; + public $reports; + public $savedColumns; + + + /** + * Constructs the internal representation of the Doubleclicksearch service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'doubleclicksearch/v2/'; + $this->version = 'v2'; + $this->serviceName = 'doubleclicksearch'; + + $this->conversion = new Google_Service_Doubleclicksearch_Conversion_Resource( + $this, + $this->serviceName, + 'conversion', + array( + 'methods' => array( + 'get' => array( + 'path' => 'agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion', + 'httpMethod' => 'GET', + 'parameters' => array( + 'agencyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'advertiserId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'engineAccountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'rowCount' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'startRow' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'adGroupId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'campaignId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'adId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'criterionId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'conversion', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'patch' => array( + 'path' => 'conversion', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'advertiserId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'agencyId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'endDate' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'engineAccountId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'rowCount' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'startDate' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'startRow' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'conversion', + 'httpMethod' => 'PUT', + 'parameters' => array(), + ),'updateAvailability' => array( + 'path' => 'conversion/updateAvailability', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->reports = new Google_Service_Doubleclicksearch_Reports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'generate' => array( + 'path' => 'reports/generate', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'get' => array( + 'path' => 'reports/{reportId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getFile' => array( + 'path' => 'reports/{reportId}/files/{reportFragment}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'reportId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'reportFragment' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'request' => array( + 'path' => 'reports', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->savedColumns = new Google_Service_Doubleclicksearch_SavedColumns_Resource( + $this, + $this->serviceName, + 'savedColumns', + array( + 'methods' => array( + 'list' => array( + 'path' => 'agency/{agencyId}/advertiser/{advertiserId}/savedcolumns', + 'httpMethod' => 'GET', + 'parameters' => array( + 'agencyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'advertiserId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "conversion" collection of methods. + * Typical usage is: + * + * $doubleclicksearchService = new Google_Service_Doubleclicksearch(...); + * $conversion = $doubleclicksearchService->conversion; + * + */ +class Google_Service_Doubleclicksearch_Conversion_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of conversions from a DoubleClick Search engine account. + * (conversion.get) + * + * @param string $agencyId + * Numeric ID of the agency. + * @param string $advertiserId + * Numeric ID of the advertiser. + * @param string $engineAccountId + * Numeric ID of the engine account. + * @param int $endDate + * Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd. + * @param int $rowCount + * The number of conversions to return per call. + * @param int $startDate + * First date (inclusive) on which to retrieve conversions. Format is yyyymmdd. + * @param string $startRow + * The 0-based starting index for retrieving conversions results. + * @param array $optParams Optional parameters. + * + * @opt_param string adGroupId + * Numeric ID of the ad group. + * @opt_param string campaignId + * Numeric ID of the campaign. + * @opt_param string adId + * Numeric ID of the ad. + * @opt_param string criterionId + * Numeric ID of the criterion. + * @return Google_Service_Doubleclicksearch_ConversionList + */ + public function get($agencyId, $advertiserId, $engineAccountId, $endDate, $rowCount, $startDate, $startRow, $optParams = array()) + { + $params = array('agencyId' => $agencyId, 'advertiserId' => $advertiserId, 'engineAccountId' => $engineAccountId, 'endDate' => $endDate, 'rowCount' => $rowCount, 'startDate' => $startDate, 'startRow' => $startRow); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Doubleclicksearch_ConversionList"); + } + /** + * Inserts a batch of new conversions into DoubleClick Search. + * (conversion.insert) + * + * @param Google_ConversionList $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_ConversionList + */ + public function insert(Google_Service_Doubleclicksearch_ConversionList $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Doubleclicksearch_ConversionList"); + } + /** + * Updates a batch of conversions in DoubleClick Search. This method supports + * patch semantics. (conversion.patch) + * + * @param string $advertiserId + * Numeric ID of the advertiser. + * @param string $agencyId + * Numeric ID of the agency. + * @param int $endDate + * Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd. + * @param string $engineAccountId + * Numeric ID of the engine account. + * @param int $rowCount + * The number of conversions to return per call. + * @param int $startDate + * First date (inclusive) on which to retrieve conversions. Format is yyyymmdd. + * @param string $startRow + * The 0-based starting index for retrieving conversions results. + * @param Google_ConversionList $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_ConversionList + */ + public function patch($advertiserId, $agencyId, $endDate, $engineAccountId, $rowCount, $startDate, $startRow, Google_Service_Doubleclicksearch_ConversionList $postBody, $optParams = array()) + { + $params = array('advertiserId' => $advertiserId, 'agencyId' => $agencyId, 'endDate' => $endDate, 'engineAccountId' => $engineAccountId, 'rowCount' => $rowCount, 'startDate' => $startDate, 'startRow' => $startRow, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Doubleclicksearch_ConversionList"); + } + /** + * Updates a batch of conversions in DoubleClick Search. (conversion.update) + * + * @param Google_ConversionList $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_ConversionList + */ + public function update(Google_Service_Doubleclicksearch_ConversionList $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Doubleclicksearch_ConversionList"); + } + /** + * Updates the availabilities of a batch of floodlight activities in DoubleClick + * Search. (conversion.updateAvailability) + * + * @param Google_UpdateAvailabilityRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_UpdateAvailabilityResponse + */ + public function updateAvailability(Google_Service_Doubleclicksearch_UpdateAvailabilityRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('updateAvailability', array($params), "Google_Service_Doubleclicksearch_UpdateAvailabilityResponse"); + } +} + +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $doubleclicksearchService = new Google_Service_Doubleclicksearch(...); + * $reports = $doubleclicksearchService->reports; + * + */ +class Google_Service_Doubleclicksearch_Reports_Resource extends Google_Service_Resource +{ + + /** + * Generates and returns a report immediately. (reports.generate) + * + * @param Google_ReportRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_Report + */ + public function generate(Google_Service_Doubleclicksearch_ReportRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('generate', array($params), "Google_Service_Doubleclicksearch_Report"); + } + /** + * Polls for the status of a report request. (reports.get) + * + * @param string $reportId + * ID of the report request being polled. + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_Report + */ + public function get($reportId, $optParams = array()) + { + $params = array('reportId' => $reportId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Doubleclicksearch_Report"); + } + /** + * Downloads a report file. (reports.getFile) + * + * @param string $reportId + * ID of the report. + * @param int $reportFragment + * The index of the report fragment to download. + * @param array $optParams Optional parameters. + */ + public function getFile($reportId, $reportFragment, $optParams = array()) + { + $params = array('reportId' => $reportId, 'reportFragment' => $reportFragment); + $params = array_merge($params, $optParams); + return $this->call('getFile', array($params)); + } + /** + * Inserts a report request into the reporting system. (reports.request) + * + * @param Google_ReportRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_Report + */ + public function request(Google_Service_Doubleclicksearch_ReportRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('request', array($params), "Google_Service_Doubleclicksearch_Report"); + } +} + +/** + * The "savedColumns" collection of methods. + * Typical usage is: + * + * $doubleclicksearchService = new Google_Service_Doubleclicksearch(...); + * $savedColumns = $doubleclicksearchService->savedColumns; + * + */ +class Google_Service_Doubleclicksearch_SavedColumns_Resource extends Google_Service_Resource +{ + + /** + * Retrieve the list of saved columns for a specified advertiser. + * (savedColumns.listSavedColumns) + * + * @param string $agencyId + * DS ID of the agency. + * @param string $advertiserId + * DS ID of the advertiser. + * @param array $optParams Optional parameters. + * @return Google_Service_Doubleclicksearch_SavedColumnList + */ + public function listSavedColumns($agencyId, $advertiserId, $optParams = array()) + { + $params = array('agencyId' => $agencyId, 'advertiserId' => $advertiserId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Doubleclicksearch_SavedColumnList"); + } +} + + + + +class Google_Service_Doubleclicksearch_Availability extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $advertiserId; + public $agencyId; + public $availabilityTimestamp; + public $segmentationId; + public $segmentationName; + public $segmentationType; + + public function setAdvertiserId($advertiserId) + { + $this->advertiserId = $advertiserId; + } + + public function getAdvertiserId() + { + return $this->advertiserId; + } + + public function setAgencyId($agencyId) + { + $this->agencyId = $agencyId; + } + + public function getAgencyId() + { + return $this->agencyId; + } + + public function setAvailabilityTimestamp($availabilityTimestamp) + { + $this->availabilityTimestamp = $availabilityTimestamp; + } + + public function getAvailabilityTimestamp() + { + return $this->availabilityTimestamp; + } + + public function setSegmentationId($segmentationId) + { + $this->segmentationId = $segmentationId; + } + + public function getSegmentationId() + { + return $this->segmentationId; + } + + public function setSegmentationName($segmentationName) + { + $this->segmentationName = $segmentationName; + } + + public function getSegmentationName() + { + return $this->segmentationName; + } + + public function setSegmentationType($segmentationType) + { + $this->segmentationType = $segmentationType; + } + + public function getSegmentationType() + { + return $this->segmentationType; + } +} + +class Google_Service_Doubleclicksearch_Conversion extends Google_Collection +{ + protected $collection_key = 'customMetric'; + protected $internal_gapi_mappings = array( + ); + public $adGroupId; + public $adId; + public $advertiserId; + public $agencyId; + public $campaignId; + public $clickId; + public $conversionId; + public $conversionModifiedTimestamp; + public $conversionTimestamp; + public $criterionId; + public $currencyCode; + protected $customDimensionType = 'Google_Service_Doubleclicksearch_CustomDimension'; + protected $customDimensionDataType = 'array'; + protected $customMetricType = 'Google_Service_Doubleclicksearch_CustomMetric'; + protected $customMetricDataType = 'array'; + public $dsConversionId; + public $engineAccountId; + public $floodlightOrderId; + public $quantityMillis; + public $revenueMicros; + public $segmentationId; + public $segmentationName; + public $segmentationType; + public $state; + public $type; + + public function setAdGroupId($adGroupId) + { + $this->adGroupId = $adGroupId; + } + + public function getAdGroupId() + { + return $this->adGroupId; + } + + public function setAdId($adId) + { + $this->adId = $adId; + } + + public function getAdId() + { + return $this->adId; + } + + public function setAdvertiserId($advertiserId) + { + $this->advertiserId = $advertiserId; + } + + public function getAdvertiserId() + { + return $this->advertiserId; + } + + public function setAgencyId($agencyId) + { + $this->agencyId = $agencyId; + } + + public function getAgencyId() + { + return $this->agencyId; + } + + public function setCampaignId($campaignId) + { + $this->campaignId = $campaignId; + } + + public function getCampaignId() + { + return $this->campaignId; + } + + public function setClickId($clickId) + { + $this->clickId = $clickId; + } + + public function getClickId() + { + return $this->clickId; + } + + public function setConversionId($conversionId) + { + $this->conversionId = $conversionId; + } + + public function getConversionId() + { + return $this->conversionId; + } + + public function setConversionModifiedTimestamp($conversionModifiedTimestamp) + { + $this->conversionModifiedTimestamp = $conversionModifiedTimestamp; + } + + public function getConversionModifiedTimestamp() + { + return $this->conversionModifiedTimestamp; + } + + public function setConversionTimestamp($conversionTimestamp) + { + $this->conversionTimestamp = $conversionTimestamp; + } + + public function getConversionTimestamp() + { + return $this->conversionTimestamp; + } + + public function setCriterionId($criterionId) + { + $this->criterionId = $criterionId; + } + + public function getCriterionId() + { + return $this->criterionId; + } + + public function setCurrencyCode($currencyCode) + { + $this->currencyCode = $currencyCode; + } + + public function getCurrencyCode() + { + return $this->currencyCode; + } + + public function setCustomDimension($customDimension) + { + $this->customDimension = $customDimension; + } + + public function getCustomDimension() + { + return $this->customDimension; + } + + public function setCustomMetric($customMetric) + { + $this->customMetric = $customMetric; + } + + public function getCustomMetric() + { + return $this->customMetric; + } + + public function setDsConversionId($dsConversionId) + { + $this->dsConversionId = $dsConversionId; + } + + public function getDsConversionId() + { + return $this->dsConversionId; + } + + public function setEngineAccountId($engineAccountId) + { + $this->engineAccountId = $engineAccountId; + } + + public function getEngineAccountId() + { + return $this->engineAccountId; + } + + public function setFloodlightOrderId($floodlightOrderId) + { + $this->floodlightOrderId = $floodlightOrderId; + } + + public function getFloodlightOrderId() + { + return $this->floodlightOrderId; + } + + public function setQuantityMillis($quantityMillis) + { + $this->quantityMillis = $quantityMillis; + } + + public function getQuantityMillis() + { + return $this->quantityMillis; + } + + public function setRevenueMicros($revenueMicros) + { + $this->revenueMicros = $revenueMicros; + } + + public function getRevenueMicros() + { + return $this->revenueMicros; + } + + public function setSegmentationId($segmentationId) + { + $this->segmentationId = $segmentationId; + } + + public function getSegmentationId() + { + return $this->segmentationId; + } + + public function setSegmentationName($segmentationName) + { + $this->segmentationName = $segmentationName; + } + + public function getSegmentationName() + { + return $this->segmentationName; + } + + public function setSegmentationType($segmentationType) + { + $this->segmentationType = $segmentationType; + } + + public function getSegmentationType() + { + return $this->segmentationType; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Doubleclicksearch_ConversionList extends Google_Collection +{ + protected $collection_key = 'conversion'; + protected $internal_gapi_mappings = array( + ); + protected $conversionType = 'Google_Service_Doubleclicksearch_Conversion'; + protected $conversionDataType = 'array'; + public $kind; + + public function setConversion($conversion) + { + $this->conversion = $conversion; + } + + public function getConversion() + { + return $this->conversion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Doubleclicksearch_CustomDimension extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $value; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Doubleclicksearch_CustomMetric extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $value; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Doubleclicksearch_Report extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + protected $filesType = 'Google_Service_Doubleclicksearch_ReportFiles'; + protected $filesDataType = 'array'; + public $id; + public $isReportReady; + public $kind; + protected $requestType = 'Google_Service_Doubleclicksearch_ReportRequest'; + protected $requestDataType = ''; + public $rowCount; + public $rows; + public $statisticsCurrencyCode; + public $statisticsTimeZone; + + public function setFiles($files) + { + $this->files = $files; + } + + public function getFiles() + { + return $this->files; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsReportReady($isReportReady) + { + $this->isReportReady = $isReportReady; + } + + public function getIsReportReady() + { + return $this->isReportReady; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequest(Google_Service_Doubleclicksearch_ReportRequest $request) + { + $this->request = $request; + } + + public function getRequest() + { + return $this->request; + } + + public function setRowCount($rowCount) + { + $this->rowCount = $rowCount; + } + + public function getRowCount() + { + return $this->rowCount; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } + + public function setStatisticsCurrencyCode($statisticsCurrencyCode) + { + $this->statisticsCurrencyCode = $statisticsCurrencyCode; + } + + public function getStatisticsCurrencyCode() + { + return $this->statisticsCurrencyCode; + } + + public function setStatisticsTimeZone($statisticsTimeZone) + { + $this->statisticsTimeZone = $statisticsTimeZone; + } + + public function getStatisticsTimeZone() + { + return $this->statisticsTimeZone; + } +} + +class Google_Service_Doubleclicksearch_ReportApiColumnSpec extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnName; + public $customDimensionName; + public $endDate; + public $groupByColumn; + public $headerText; + public $platformSource; + public $savedColumnName; + public $startDate; + + public function setColumnName($columnName) + { + $this->columnName = $columnName; + } + + public function getColumnName() + { + return $this->columnName; + } + + public function setCustomDimensionName($customDimensionName) + { + $this->customDimensionName = $customDimensionName; + } + + public function getCustomDimensionName() + { + return $this->customDimensionName; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setGroupByColumn($groupByColumn) + { + $this->groupByColumn = $groupByColumn; + } + + public function getGroupByColumn() + { + return $this->groupByColumn; + } + + public function setHeaderText($headerText) + { + $this->headerText = $headerText; + } + + public function getHeaderText() + { + return $this->headerText; + } + + public function setPlatformSource($platformSource) + { + $this->platformSource = $platformSource; + } + + public function getPlatformSource() + { + return $this->platformSource; + } + + public function setSavedColumnName($savedColumnName) + { + $this->savedColumnName = $savedColumnName; + } + + public function getSavedColumnName() + { + return $this->savedColumnName; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } +} + +class Google_Service_Doubleclicksearch_ReportFiles extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $byteCount; + public $url; + + public function setByteCount($byteCount) + { + $this->byteCount = $byteCount; + } + + public function getByteCount() + { + return $this->byteCount; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Doubleclicksearch_ReportRequest extends Google_Collection +{ + protected $collection_key = 'orderBy'; + protected $internal_gapi_mappings = array( + ); + protected $columnsType = 'Google_Service_Doubleclicksearch_ReportApiColumnSpec'; + protected $columnsDataType = 'array'; + public $downloadFormat; + protected $filtersType = 'Google_Service_Doubleclicksearch_ReportRequestFilters'; + protected $filtersDataType = 'array'; + public $includeDeletedEntities; + public $includeRemovedEntities; + public $maxRowsPerFile; + protected $orderByType = 'Google_Service_Doubleclicksearch_ReportRequestOrderBy'; + protected $orderByDataType = 'array'; + protected $reportScopeType = 'Google_Service_Doubleclicksearch_ReportRequestReportScope'; + protected $reportScopeDataType = ''; + public $reportType; + public $rowCount; + public $startRow; + public $statisticsCurrency; + protected $timeRangeType = 'Google_Service_Doubleclicksearch_ReportRequestTimeRange'; + protected $timeRangeDataType = ''; + public $verifySingleTimeZone; + + public function setColumns($columns) + { + $this->columns = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setDownloadFormat($downloadFormat) + { + $this->downloadFormat = $downloadFormat; + } + + public function getDownloadFormat() + { + return $this->downloadFormat; + } + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setIncludeDeletedEntities($includeDeletedEntities) + { + $this->includeDeletedEntities = $includeDeletedEntities; + } + + public function getIncludeDeletedEntities() + { + return $this->includeDeletedEntities; + } + + public function setIncludeRemovedEntities($includeRemovedEntities) + { + $this->includeRemovedEntities = $includeRemovedEntities; + } + + public function getIncludeRemovedEntities() + { + return $this->includeRemovedEntities; + } + + public function setMaxRowsPerFile($maxRowsPerFile) + { + $this->maxRowsPerFile = $maxRowsPerFile; + } + + public function getMaxRowsPerFile() + { + return $this->maxRowsPerFile; + } + + public function setOrderBy($orderBy) + { + $this->orderBy = $orderBy; + } + + public function getOrderBy() + { + return $this->orderBy; + } + + public function setReportScope(Google_Service_Doubleclicksearch_ReportRequestReportScope $reportScope) + { + $this->reportScope = $reportScope; + } + + public function getReportScope() + { + return $this->reportScope; + } + + public function setReportType($reportType) + { + $this->reportType = $reportType; + } + + public function getReportType() + { + return $this->reportType; + } + + public function setRowCount($rowCount) + { + $this->rowCount = $rowCount; + } + + public function getRowCount() + { + return $this->rowCount; + } + + public function setStartRow($startRow) + { + $this->startRow = $startRow; + } + + public function getStartRow() + { + return $this->startRow; + } + + public function setStatisticsCurrency($statisticsCurrency) + { + $this->statisticsCurrency = $statisticsCurrency; + } + + public function getStatisticsCurrency() + { + return $this->statisticsCurrency; + } + + public function setTimeRange(Google_Service_Doubleclicksearch_ReportRequestTimeRange $timeRange) + { + $this->timeRange = $timeRange; + } + + public function getTimeRange() + { + return $this->timeRange; + } + + public function setVerifySingleTimeZone($verifySingleTimeZone) + { + $this->verifySingleTimeZone = $verifySingleTimeZone; + } + + public function getVerifySingleTimeZone() + { + return $this->verifySingleTimeZone; + } +} + +class Google_Service_Doubleclicksearch_ReportRequestFilters extends Google_Collection +{ + protected $collection_key = 'values'; + protected $internal_gapi_mappings = array( + ); + protected $columnType = 'Google_Service_Doubleclicksearch_ReportApiColumnSpec'; + protected $columnDataType = ''; + public $operator; + public $values; + + public function setColumn(Google_Service_Doubleclicksearch_ReportApiColumnSpec $column) + { + $this->column = $column; + } + + public function getColumn() + { + return $this->column; + } + + public function setOperator($operator) + { + $this->operator = $operator; + } + + public function getOperator() + { + return $this->operator; + } + + public function setValues($values) + { + $this->values = $values; + } + + public function getValues() + { + return $this->values; + } +} + +class Google_Service_Doubleclicksearch_ReportRequestOrderBy extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $columnType = 'Google_Service_Doubleclicksearch_ReportApiColumnSpec'; + protected $columnDataType = ''; + public $sortOrder; + + public function setColumn(Google_Service_Doubleclicksearch_ReportApiColumnSpec $column) + { + $this->column = $column; + } + + public function getColumn() + { + return $this->column; + } + + public function setSortOrder($sortOrder) + { + $this->sortOrder = $sortOrder; + } + + public function getSortOrder() + { + return $this->sortOrder; + } +} + +class Google_Service_Doubleclicksearch_ReportRequestReportScope extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $adGroupId; + public $adId; + public $advertiserId; + public $agencyId; + public $campaignId; + public $engineAccountId; + public $keywordId; + + public function setAdGroupId($adGroupId) + { + $this->adGroupId = $adGroupId; + } + + public function getAdGroupId() + { + return $this->adGroupId; + } + + public function setAdId($adId) + { + $this->adId = $adId; + } + + public function getAdId() + { + return $this->adId; + } + + public function setAdvertiserId($advertiserId) + { + $this->advertiserId = $advertiserId; + } + + public function getAdvertiserId() + { + return $this->advertiserId; + } + + public function setAgencyId($agencyId) + { + $this->agencyId = $agencyId; + } + + public function getAgencyId() + { + return $this->agencyId; + } + + public function setCampaignId($campaignId) + { + $this->campaignId = $campaignId; + } + + public function getCampaignId() + { + return $this->campaignId; + } + + public function setEngineAccountId($engineAccountId) + { + $this->engineAccountId = $engineAccountId; + } + + public function getEngineAccountId() + { + return $this->engineAccountId; + } + + public function setKeywordId($keywordId) + { + $this->keywordId = $keywordId; + } + + public function getKeywordId() + { + return $this->keywordId; + } +} + +class Google_Service_Doubleclicksearch_ReportRequestTimeRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $changedAttributesSinceTimestamp; + public $changedMetricsSinceTimestamp; + public $endDate; + public $startDate; + + public function setChangedAttributesSinceTimestamp($changedAttributesSinceTimestamp) + { + $this->changedAttributesSinceTimestamp = $changedAttributesSinceTimestamp; + } + + public function getChangedAttributesSinceTimestamp() + { + return $this->changedAttributesSinceTimestamp; + } + + public function setChangedMetricsSinceTimestamp($changedMetricsSinceTimestamp) + { + $this->changedMetricsSinceTimestamp = $changedMetricsSinceTimestamp; + } + + public function getChangedMetricsSinceTimestamp() + { + return $this->changedMetricsSinceTimestamp; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } +} + +class Google_Service_Doubleclicksearch_ReportRow extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Doubleclicksearch_SavedColumn extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $savedColumnName; + public $type; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSavedColumnName($savedColumnName) + { + $this->savedColumnName = $savedColumnName; + } + + public function getSavedColumnName() + { + return $this->savedColumnName; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Doubleclicksearch_SavedColumnList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Doubleclicksearch_SavedColumn'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Doubleclicksearch_UpdateAvailabilityRequest extends Google_Collection +{ + protected $collection_key = 'availabilities'; + protected $internal_gapi_mappings = array( + ); + protected $availabilitiesType = 'Google_Service_Doubleclicksearch_Availability'; + protected $availabilitiesDataType = 'array'; + + public function setAvailabilities($availabilities) + { + $this->availabilities = $availabilities; + } + + public function getAvailabilities() + { + return $this->availabilities; + } +} + +class Google_Service_Doubleclicksearch_UpdateAvailabilityResponse extends Google_Collection +{ + protected $collection_key = 'availabilities'; + protected $internal_gapi_mappings = array( + ); + protected $availabilitiesType = 'Google_Service_Doubleclicksearch_Availability'; + protected $availabilitiesDataType = 'array'; + + public function setAvailabilities($availabilities) + { + $this->availabilities = $availabilities; + } + + public function getAvailabilities() + { + return $this->availabilities; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Drive.php b/vendor/google/apiclient/src/Google/Service/Drive.php new file mode 100644 index 0000000..291a609 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Drive.php @@ -0,0 +1,6136 @@ + + * The API to interact with Drive. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Drive extends Google_Service +{ + /** View and manage the files and documents in your Google Drive. */ + const DRIVE = "https://www.googleapis.com/auth/drive"; + /** View and manage its own configuration data in your Google Drive. */ + const DRIVE_APPDATA = "https://www.googleapis.com/auth/drive.appdata"; + /** View your Google Drive apps. */ + const DRIVE_APPS_READONLY = "https://www.googleapis.com/auth/drive.apps.readonly"; + /** View and manage Google Drive files that you have opened or created with this app. */ + const DRIVE_FILE = "https://www.googleapis.com/auth/drive.file"; + /** View metadata for files and documents in your Google Drive. */ + const DRIVE_METADATA_READONLY = "https://www.googleapis.com/auth/drive.metadata.readonly"; + /** View the files and documents in your Google Drive. */ + const DRIVE_READONLY = "https://www.googleapis.com/auth/drive.readonly"; + /** Modify your Google Apps Script scripts' behavior. */ + const DRIVE_SCRIPTS = "https://www.googleapis.com/auth/drive.scripts"; + + public $about; + public $apps; + public $changes; + public $channels; + public $children; + public $comments; + public $files; + public $parents; + public $permissions; + public $properties; + public $realtime; + public $replies; + public $revisions; + + + /** + * Constructs the internal representation of the Drive service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'drive/v2/'; + $this->version = 'v2'; + $this->serviceName = 'drive'; + + $this->about = new Google_Service_Drive_About_Resource( + $this, + $this->serviceName, + 'about', + array( + 'methods' => array( + 'get' => array( + 'path' => 'about', + 'httpMethod' => 'GET', + 'parameters' => array( + 'includeSubscribed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxChangeIdCount' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->apps = new Google_Service_Drive_Apps_Resource( + $this, + $this->serviceName, + 'apps', + array( + 'methods' => array( + 'get' => array( + 'path' => 'apps/{appId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'appId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'apps', + 'httpMethod' => 'GET', + 'parameters' => array( + 'languageCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'appFilterExtensions' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'appFilterMimeTypes' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->changes = new Google_Service_Drive_Changes_Resource( + $this, + $this->serviceName, + 'changes', + array( + 'methods' => array( + 'get' => array( + 'path' => 'changes/{changeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'changeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'changes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'includeSubscribed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'changes/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'includeSubscribed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_Drive_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'stop' => array( + 'path' => 'channels/stop', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->children = new Google_Service_Drive_Children_Resource( + $this, + $this->serviceName, + 'children', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{folderId}/children/{childId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'childId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{folderId}/children/{childId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'childId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'files/{folderId}/children', + 'httpMethod' => 'POST', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{folderId}/children', + 'httpMethod' => 'GET', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->comments = new Google_Service_Drive_Comments_Resource( + $this, + $this->serviceName, + 'comments', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/comments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->files = new Google_Service_Drive_Files_Resource( + $this, + $this->serviceName, + 'files', + array( + 'methods' => array( + 'copy' => array( + 'path' => 'files/{fileId}/copy', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'delete' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'emptyTrash' => array( + 'path' => 'files/trash', + 'httpMethod' => 'DELETE', + 'parameters' => array(), + ),'get' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'files', + 'httpMethod' => 'POST', + 'parameters' => array( + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'useContentAsIndexableText' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'files', + 'httpMethod' => 'GET', + 'parameters' => array( + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'corpus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'addParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'removeParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'setModifiedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'useContentAsIndexableText' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'newRevision' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'touch' => array( + 'path' => 'files/{fileId}/touch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'trash' => array( + 'path' => 'files/{fileId}/trash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'untrash' => array( + 'path' => 'files/{fileId}/untrash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'addParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'removeParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'setModifiedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'useContentAsIndexableText' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'newRevision' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'files/{fileId}/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->parents = new Google_Service_Drive_Parents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/parents/{parentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/parents/{parentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/parents', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->permissions = new Google_Service_Drive_Permissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getIdForEmail' => array( + 'path' => 'permissionIds/{email}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'email' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/permissions', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'emailMessage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sendNotificationEmails' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'transferOwnership' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'transferOwnership' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->properties = new Google_Service_Drive_Properties_Resource( + $this, + $this->serviceName, + 'properties', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/properties', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/properties', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->realtime = new Google_Service_Drive_Realtime_Resource( + $this, + $this->serviceName, + 'realtime', + array( + 'methods' => array( + 'get' => array( + 'path' => 'files/{fileId}/realtime', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revision' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/realtime', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'baseRevision' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->replies = new Google_Service_Drive_Replies_Resource( + $this, + $this->serviceName, + 'replies', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->revisions = new Google_Service_Drive_Revisions_Resource( + $this, + $this->serviceName, + 'revisions', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/revisions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "about" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $about = $driveService->about; + * + */ +class Google_Service_Drive_About_Resource extends Google_Service_Resource +{ + + /** + * Gets the information about the current user along with Drive API settings + * (about.get) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool includeSubscribed + * When calculating the number of remaining change IDs, whether to include public files the user + * has opened and shared files. When set to false, this counts only change IDs for owned files and + * any shared or public files that the user has explicitly added to a folder they own. + * @opt_param string maxChangeIdCount + * Maximum number of remaining change IDs to count + * @opt_param string startChangeId + * Change ID to start counting from when calculating number of remaining change IDs + * @return Google_Service_Drive_About + */ + public function get($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_About"); + } +} + +/** + * The "apps" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $apps = $driveService->apps; + * + */ +class Google_Service_Drive_Apps_Resource extends Google_Service_Resource +{ + + /** + * Gets a specific app. (apps.get) + * + * @param string $appId + * The ID of the app. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_App + */ + public function get($appId, $optParams = array()) + { + $params = array('appId' => $appId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_App"); + } + /** + * Lists a user's installed apps. (apps.listApps) + * + * @param array $optParams Optional parameters. + * + * @opt_param string languageCode + * A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format + * (http://www.unicode.org/reports/tr35/). + * @opt_param string appFilterExtensions + * A comma-separated list of file extensions for open with filtering. All apps within the given app + * query scope which can open any of the given file extensions will be included in the response. If + * appFilterMimeTypes are provided as well, the result is a union of the two resulting app lists. + * @opt_param string appFilterMimeTypes + * A comma-separated list of MIME types for open with filtering. All apps within the given app + * query scope which can open any of the given MIME types will be included in the response. If + * appFilterExtensions are provided as well, the result is a union of the two resulting app lists. + * @return Google_Service_Drive_AppList + */ + public function listApps($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_AppList"); + } +} + +/** + * The "changes" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $changes = $driveService->changes; + * + */ +class Google_Service_Drive_Changes_Resource extends Google_Service_Resource +{ + + /** + * Gets a specific change. (changes.get) + * + * @param string $changeId + * The ID of the change. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Change + */ + public function get($changeId, $optParams = array()) + { + $params = array('changeId' => $changeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Change"); + } + /** + * Lists the changes for a user. (changes.listChanges) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool includeSubscribed + * Whether to include public files the user has opened and shared files. When set to false, the + * list only includes owned files plus any shared or public files the user has explicitly added to + * a folder they own. + * @opt_param string startChangeId + * Change ID to start listing changes from. + * @opt_param bool includeDeleted + * Whether to include deleted items. + * @opt_param int maxResults + * Maximum number of changes to return. + * @opt_param string pageToken + * Page token for changes. + * @return Google_Service_Drive_ChangeList + */ + public function listChanges($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_ChangeList"); + } + /** + * Subscribe to changes for a user. (changes.watch) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool includeSubscribed + * Whether to include public files the user has opened and shared files. When set to false, the + * list only includes owned files plus any shared or public files the user has explicitly added to + * a folder they own. + * @opt_param string startChangeId + * Change ID to start listing changes from. + * @opt_param bool includeDeleted + * Whether to include deleted items. + * @opt_param int maxResults + * Maximum number of changes to return. + * @opt_param string pageToken + * Page token for changes. + * @return Google_Service_Drive_Channel + */ + public function watch(Google_Service_Drive_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Drive_Channel"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $channels = $driveService->channels; + * + */ +class Google_Service_Drive_Channels_Resource extends Google_Service_Resource +{ + + /** + * Stop watching resources through this channel (channels.stop) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + */ + public function stop(Google_Service_Drive_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('stop', array($params)); + } +} + +/** + * The "children" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $children = $driveService->children; + * + */ +class Google_Service_Drive_Children_Resource extends Google_Service_Resource +{ + + /** + * Removes a child from a folder. (children.delete) + * + * @param string $folderId + * The ID of the folder. + * @param string $childId + * The ID of the child. + * @param array $optParams Optional parameters. + */ + public function delete($folderId, $childId, $optParams = array()) + { + $params = array('folderId' => $folderId, 'childId' => $childId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific child reference. (children.get) + * + * @param string $folderId + * The ID of the folder. + * @param string $childId + * The ID of the child. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ChildReference + */ + public function get($folderId, $childId, $optParams = array()) + { + $params = array('folderId' => $folderId, 'childId' => $childId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_ChildReference"); + } + /** + * Inserts a file into a folder. (children.insert) + * + * @param string $folderId + * The ID of the folder. + * @param Google_ChildReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ChildReference + */ + public function insert($folderId, Google_Service_Drive_ChildReference $postBody, $optParams = array()) + { + $params = array('folderId' => $folderId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_ChildReference"); + } + /** + * Lists a folder's children. (children.listChildren) + * + * @param string $folderId + * The ID of the folder. + * @param array $optParams Optional parameters. + * + * @opt_param string q + * Query string for searching children. + * @opt_param string pageToken + * Page token for children. + * @opt_param int maxResults + * Maximum number of children to return. + * @return Google_Service_Drive_ChildList + */ + public function listChildren($folderId, $optParams = array()) + { + $params = array('folderId' => $folderId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_ChildList"); + } +} + +/** + * The "comments" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $comments = $driveService->comments; + * + */ +class Google_Service_Drive_Comments_Resource extends Google_Service_Resource +{ + + /** + * Deletes a comment. (comments.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $commentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a comment by ID. (comments.get) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeDeleted + * If set, this will succeed when retrieving a deleted comment, and will include any deleted + * replies. + * @return Google_Service_Drive_Comment + */ + public function get($fileId, $commentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Comment"); + } + /** + * Creates a new comment on the given file. (comments.insert) + * + * @param string $fileId + * The ID of the file. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Comment + */ + public function insert($fileId, Google_Service_Drive_Comment $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_Comment"); + } + /** + * Lists a file's comments. (comments.listComments) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string updatedMin + * Only discussions that were updated after this timestamp will be returned. Formatted as an RFC + * 3339 timestamp. + * @opt_param bool includeDeleted + * If set, all comments and replies, including deleted comments and replies (with content stripped) + * will be returned. + * @opt_param int maxResults + * The maximum number of discussions to include in the response, used for paging. + * @return Google_Service_Drive_CommentList + */ + public function listComments($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_CommentList"); + } + /** + * Updates an existing comment. This method supports patch semantics. + * (comments.patch) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Comment + */ + public function patch($fileId, $commentId, Google_Service_Drive_Comment $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Comment"); + } + /** + * Updates an existing comment. (comments.update) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Comment + */ + public function update($fileId, $commentId, Google_Service_Drive_Comment $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Comment"); + } +} + +/** + * The "files" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $files = $driveService->files; + * + */ +class Google_Service_Drive_Files_Resource extends Google_Service_Resource +{ + + /** + * Creates a copy of the specified file. (files.copy) + * + * @param string $fileId + * The ID of the file to copy. + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param string visibility + * The visibility of the new file. This parameter is only relevant when the source is not a native + * Google Doc and convert=false. + * @opt_param bool pinned + * Whether to pin the head revision of the new copy. A file can have a maximum of 200 pinned + * revisions. + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextTrackName + * The timed text track name. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @return Google_Service_Drive_DriveFile + */ + public function copy($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('copy', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Permanently deletes a file by ID. Skips the trash. (files.delete) + * + * @param string $fileId + * The ID of the file to delete. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Permanently deletes all of the user's trashed files. (files.emptyTrash) + * + * @param array $optParams Optional parameters. + */ + public function emptyTrash($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('emptyTrash', array($params)); + } + /** + * Gets a file's metadata by ID. (files.get) + * + * @param string $fileId + * The ID for the file in question. + * @param array $optParams Optional parameters. + * + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully retrieving the file. + * @opt_param string projection + * This parameter is deprecated and has no function. + * @return Google_Service_Drive_DriveFile + */ + public function get($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Insert a new file. (files.insert) + * + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param bool useContentAsIndexableText + * Whether to use the content as indexable text. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param string visibility + * The visibility of the new file. This parameter is only relevant when convert=false. + * @opt_param bool pinned + * Whether to pin the head revision of the uploaded file. A file can have a maximum of 200 pinned + * revisions. + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextTrackName + * The timed text track name. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @return Google_Service_Drive_DriveFile + */ + public function insert(Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Lists the user's files. (files.listFiles) + * + * @param array $optParams Optional parameters. + * + * @opt_param string q + * Query string for searching files. + * @opt_param string pageToken + * Page token for files. + * @opt_param string corpus + * The body of items (files/documents) to which the query applies. + * @opt_param string projection + * This parameter is deprecated and has no function. + * @opt_param int maxResults + * Maximum number of files to return. + * @return Google_Service_Drive_FileList + */ + public function listFiles($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_FileList"); + } + /** + * Updates file metadata and/or content. This method supports patch semantics. + * (files.patch) + * + * @param string $fileId + * The ID of the file to update. + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string addParents + * Comma-separated list of parent IDs to add. + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully updating the file. + * @opt_param string removeParents + * Comma-separated list of parent IDs to remove. + * @opt_param bool setModifiedDate + * Whether to set the modified date with the supplied modified date. + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param bool useContentAsIndexableText + * Whether to use the content as indexable text. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param bool pinned + * Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. + * @opt_param bool newRevision + * Whether a blob upload should create a new revision. If false, the blob data in the current head + * revision is replaced. If true or not set, a new blob is created as head revision, and previous + * revisions are preserved (causing increased use of the user's data storage quota). + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @opt_param string timedTextTrackName + * The timed text track name. + * @return Google_Service_Drive_DriveFile + */ + public function patch($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Set the file's updated time to the current server time. (files.touch) + * + * @param string $fileId + * The ID of the file to update. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_DriveFile + */ + public function touch($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('touch', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Moves a file to the trash. (files.trash) + * + * @param string $fileId + * The ID of the file to trash. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_DriveFile + */ + public function trash($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('trash', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Restores a file from the trash. (files.untrash) + * + * @param string $fileId + * The ID of the file to untrash. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_DriveFile + */ + public function untrash($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('untrash', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Updates file metadata and/or content. (files.update) + * + * @param string $fileId + * The ID of the file to update. + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string addParents + * Comma-separated list of parent IDs to add. + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully updating the file. + * @opt_param string removeParents + * Comma-separated list of parent IDs to remove. + * @opt_param bool setModifiedDate + * Whether to set the modified date with the supplied modified date. + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param bool useContentAsIndexableText + * Whether to use the content as indexable text. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param bool pinned + * Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. + * @opt_param bool newRevision + * Whether a blob upload should create a new revision. If false, the blob data in the current head + * revision is replaced. If true or not set, a new blob is created as head revision, and previous + * revisions are preserved (causing increased use of the user's data storage quota). + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @opt_param string timedTextTrackName + * The timed text track name. + * @return Google_Service_Drive_DriveFile + */ + public function update($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Subscribe to changes on a file (files.watch) + * + * @param string $fileId + * The ID for the file in question. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully retrieving the file. + * @opt_param string projection + * This parameter is deprecated and has no function. + * @return Google_Service_Drive_Channel + */ + public function watch($fileId, Google_Service_Drive_Channel $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Drive_Channel"); + } +} + +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $parents = $driveService->parents; + * + */ +class Google_Service_Drive_Parents_Resource extends Google_Service_Resource +{ + + /** + * Removes a parent from a file. (parents.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $parentId + * The ID of the parent. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $parentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'parentId' => $parentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific parent reference. (parents.get) + * + * @param string $fileId + * The ID of the file. + * @param string $parentId + * The ID of the parent. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ParentReference + */ + public function get($fileId, $parentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'parentId' => $parentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_ParentReference"); + } + /** + * Adds a parent folder for a file. (parents.insert) + * + * @param string $fileId + * The ID of the file. + * @param Google_ParentReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ParentReference + */ + public function insert($fileId, Google_Service_Drive_ParentReference $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_ParentReference"); + } + /** + * Lists a file's parents. (parents.listParents) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ParentList + */ + public function listParents($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_ParentList"); + } +} + +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $permissions = $driveService->permissions; + * + */ +class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource +{ + + /** + * Deletes a permission from a file. (permissions.delete) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $permissionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a permission by ID. (permissions.get) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Permission + */ + public function get($fileId, $permissionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Permission"); + } + /** + * Returns the permission ID for an email address. (permissions.getIdForEmail) + * + * @param string $email + * The email address for which to return a permission ID + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_PermissionId + */ + public function getIdForEmail($email, $optParams = array()) + { + $params = array('email' => $email); + $params = array_merge($params, $optParams); + return $this->call('getIdForEmail', array($params), "Google_Service_Drive_PermissionId"); + } + /** + * Inserts a permission for a file. (permissions.insert) + * + * @param string $fileId + * The ID for the file. + * @param Google_Permission $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string emailMessage + * A custom message to include in notification emails. + * @opt_param bool sendNotificationEmails + * Whether to send notification emails when sharing to users or groups. This parameter is ignored + * and an email is sent if the role is owner. + * @return Google_Service_Drive_Permission + */ + public function insert($fileId, Google_Service_Drive_Permission $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_Permission"); + } + /** + * Lists a file's permissions. (permissions.listPermissions) + * + * @param string $fileId + * The ID for the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_PermissionList + */ + public function listPermissions($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_PermissionList"); + } + /** + * Updates a permission. This method supports patch semantics. + * (permissions.patch) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param Google_Permission $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool transferOwnership + * Whether changing a role to 'owner' should also downgrade the current owners to writers. + * @return Google_Service_Drive_Permission + */ + public function patch($fileId, $permissionId, Google_Service_Drive_Permission $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Permission"); + } + /** + * Updates a permission. (permissions.update) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param Google_Permission $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool transferOwnership + * Whether changing a role to 'owner' should also downgrade the current owners to writers. + * @return Google_Service_Drive_Permission + */ + public function update($fileId, $permissionId, Google_Service_Drive_Permission $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Permission"); + } +} + +/** + * The "properties" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $properties = $driveService->properties; + * + */ +class Google_Service_Drive_Properties_Resource extends Google_Service_Resource +{ + + /** + * Deletes a property. (properties.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + */ + public function delete($fileId, $propertyKey, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a property by its key. (properties.get) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + * @return Google_Service_Drive_Property + */ + public function get($fileId, $propertyKey, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Property"); + } + /** + * Adds a property to a file. (properties.insert) + * + * @param string $fileId + * The ID of the file. + * @param Google_Property $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Property + */ + public function insert($fileId, Google_Service_Drive_Property $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_Property"); + } + /** + * Lists a file's properties. (properties.listProperties) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_PropertyList + */ + public function listProperties($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_PropertyList"); + } + /** + * Updates a property. This method supports patch semantics. (properties.patch) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param Google_Property $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + * @return Google_Service_Drive_Property + */ + public function patch($fileId, $propertyKey, Google_Service_Drive_Property $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Property"); + } + /** + * Updates a property. (properties.update) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param Google_Property $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + * @return Google_Service_Drive_Property + */ + public function update($fileId, $propertyKey, Google_Service_Drive_Property $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Property"); + } +} + +/** + * The "realtime" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $realtime = $driveService->realtime; + * + */ +class Google_Service_Drive_Realtime_Resource extends Google_Service_Resource +{ + + /** + * Exports the contents of the Realtime API data model associated with this file + * as JSON. (realtime.get) + * + * @param string $fileId + * The ID of the file that the Realtime API data model is associated with. + * @param array $optParams Optional parameters. + * + * @opt_param int revision + * The revision of the Realtime API data model to export. Revisions start at 1 (the initial empty + * data model) and are incremented with each change. If this parameter is excluded, the most recent + * data model will be returned. + */ + public function get($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params)); + } + /** + * Overwrites the Realtime API data model associated with this file with the + * provided JSON data model. (realtime.update) + * + * @param string $fileId + * The ID of the file that the Realtime API data model is associated with. + * @param array $optParams Optional parameters. + * + * @opt_param string baseRevision + * The revision of the model to diff the uploaded model against. If set, the uploaded model is + * diffed against the provided revision and those differences are merged with any changes made to + * the model after the provided revision. If not set, the uploaded model replaces the current model + * on the server. + */ + public function update($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('update', array($params)); + } +} + +/** + * The "replies" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $replies = $driveService->replies; + * + */ +class Google_Service_Drive_Replies_Resource extends Google_Service_Resource +{ + + /** + * Deletes a reply. (replies.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $commentId, $replyId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a reply. (replies.get) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeDeleted + * If set, this will succeed when retrieving a deleted reply. + * @return Google_Service_Drive_CommentReply + */ + public function get($fileId, $commentId, $replyId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_CommentReply"); + } + /** + * Creates a new reply to the given comment. (replies.insert) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param Google_CommentReply $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_CommentReply + */ + public function insert($fileId, $commentId, Google_Service_Drive_CommentReply $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_CommentReply"); + } + /** + * Lists all of the replies to a comment. (replies.listReplies) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param bool includeDeleted + * If set, all replies, including deleted replies (with content stripped) will be returned. + * @opt_param int maxResults + * The maximum number of replies to include in the response, used for paging. + * @return Google_Service_Drive_CommentReplyList + */ + public function listReplies($fileId, $commentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_CommentReplyList"); + } + /** + * Updates an existing reply. This method supports patch semantics. + * (replies.patch) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param Google_CommentReply $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_CommentReply + */ + public function patch($fileId, $commentId, $replyId, Google_Service_Drive_CommentReply $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_CommentReply"); + } + /** + * Updates an existing reply. (replies.update) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param Google_CommentReply $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_CommentReply + */ + public function update($fileId, $commentId, $replyId, Google_Service_Drive_CommentReply $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_CommentReply"); + } +} + +/** + * The "revisions" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $revisions = $driveService->revisions; + * + */ +class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource +{ + + /** + * Removes a revision. (revisions.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $revisionId + * The ID of the revision. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $revisionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific revision. (revisions.get) + * + * @param string $fileId + * The ID of the file. + * @param string $revisionId + * The ID of the revision. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Revision + */ + public function get($fileId, $revisionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Revision"); + } + /** + * Lists a file's revisions. (revisions.listRevisions) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_RevisionList + */ + public function listRevisions($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_RevisionList"); + } + /** + * Updates a revision. This method supports patch semantics. (revisions.patch) + * + * @param string $fileId + * The ID for the file. + * @param string $revisionId + * The ID for the revision. + * @param Google_Revision $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Revision + */ + public function patch($fileId, $revisionId, Google_Service_Drive_Revision $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Revision"); + } + /** + * Updates a revision. (revisions.update) + * + * @param string $fileId + * The ID for the file. + * @param string $revisionId + * The ID for the revision. + * @param Google_Revision $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Revision + */ + public function update($fileId, $revisionId, Google_Service_Drive_Revision $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Revision"); + } +} + + + + +class Google_Service_Drive_About extends Google_Collection +{ + protected $collection_key = 'quotaBytesByService'; + protected $internal_gapi_mappings = array( + ); + protected $additionalRoleInfoType = 'Google_Service_Drive_AboutAdditionalRoleInfo'; + protected $additionalRoleInfoDataType = 'array'; + public $domainSharingPolicy; + public $etag; + protected $exportFormatsType = 'Google_Service_Drive_AboutExportFormats'; + protected $exportFormatsDataType = 'array'; + protected $featuresType = 'Google_Service_Drive_AboutFeatures'; + protected $featuresDataType = 'array'; + protected $importFormatsType = 'Google_Service_Drive_AboutImportFormats'; + protected $importFormatsDataType = 'array'; + public $isCurrentAppInstalled; + public $kind; + public $languageCode; + public $largestChangeId; + protected $maxUploadSizesType = 'Google_Service_Drive_AboutMaxUploadSizes'; + protected $maxUploadSizesDataType = 'array'; + public $name; + public $permissionId; + protected $quotaBytesByServiceType = 'Google_Service_Drive_AboutQuotaBytesByService'; + protected $quotaBytesByServiceDataType = 'array'; + public $quotaBytesTotal; + public $quotaBytesUsed; + public $quotaBytesUsedAggregate; + public $quotaBytesUsedInTrash; + public $quotaType; + public $remainingChangeIds; + public $rootFolderId; + public $selfLink; + protected $userType = 'Google_Service_Drive_User'; + protected $userDataType = ''; + + public function setAdditionalRoleInfo($additionalRoleInfo) + { + $this->additionalRoleInfo = $additionalRoleInfo; + } + + public function getAdditionalRoleInfo() + { + return $this->additionalRoleInfo; + } + + public function setDomainSharingPolicy($domainSharingPolicy) + { + $this->domainSharingPolicy = $domainSharingPolicy; + } + + public function getDomainSharingPolicy() + { + return $this->domainSharingPolicy; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExportFormats($exportFormats) + { + $this->exportFormats = $exportFormats; + } + + public function getExportFormats() + { + return $this->exportFormats; + } + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setImportFormats($importFormats) + { + $this->importFormats = $importFormats; + } + + public function getImportFormats() + { + return $this->importFormats; + } + + public function setIsCurrentAppInstalled($isCurrentAppInstalled) + { + $this->isCurrentAppInstalled = $isCurrentAppInstalled; + } + + public function getIsCurrentAppInstalled() + { + return $this->isCurrentAppInstalled; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguageCode($languageCode) + { + $this->languageCode = $languageCode; + } + + public function getLanguageCode() + { + return $this->languageCode; + } + + public function setLargestChangeId($largestChangeId) + { + $this->largestChangeId = $largestChangeId; + } + + public function getLargestChangeId() + { + return $this->largestChangeId; + } + + public function setMaxUploadSizes($maxUploadSizes) + { + $this->maxUploadSizes = $maxUploadSizes; + } + + public function getMaxUploadSizes() + { + return $this->maxUploadSizes; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPermissionId($permissionId) + { + $this->permissionId = $permissionId; + } + + public function getPermissionId() + { + return $this->permissionId; + } + + public function setQuotaBytesByService($quotaBytesByService) + { + $this->quotaBytesByService = $quotaBytesByService; + } + + public function getQuotaBytesByService() + { + return $this->quotaBytesByService; + } + + public function setQuotaBytesTotal($quotaBytesTotal) + { + $this->quotaBytesTotal = $quotaBytesTotal; + } + + public function getQuotaBytesTotal() + { + return $this->quotaBytesTotal; + } + + public function setQuotaBytesUsed($quotaBytesUsed) + { + $this->quotaBytesUsed = $quotaBytesUsed; + } + + public function getQuotaBytesUsed() + { + return $this->quotaBytesUsed; + } + + public function setQuotaBytesUsedAggregate($quotaBytesUsedAggregate) + { + $this->quotaBytesUsedAggregate = $quotaBytesUsedAggregate; + } + + public function getQuotaBytesUsedAggregate() + { + return $this->quotaBytesUsedAggregate; + } + + public function setQuotaBytesUsedInTrash($quotaBytesUsedInTrash) + { + $this->quotaBytesUsedInTrash = $quotaBytesUsedInTrash; + } + + public function getQuotaBytesUsedInTrash() + { + return $this->quotaBytesUsedInTrash; + } + + public function setQuotaType($quotaType) + { + $this->quotaType = $quotaType; + } + + public function getQuotaType() + { + return $this->quotaType; + } + + public function setRemainingChangeIds($remainingChangeIds) + { + $this->remainingChangeIds = $remainingChangeIds; + } + + public function getRemainingChangeIds() + { + return $this->remainingChangeIds; + } + + public function setRootFolderId($rootFolderId) + { + $this->rootFolderId = $rootFolderId; + } + + public function getRootFolderId() + { + return $this->rootFolderId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUser(Google_Service_Drive_User $user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } +} + +class Google_Service_Drive_AboutAdditionalRoleInfo extends Google_Collection +{ + protected $collection_key = 'roleSets'; + protected $internal_gapi_mappings = array( + ); + protected $roleSetsType = 'Google_Service_Drive_AboutAdditionalRoleInfoRoleSets'; + protected $roleSetsDataType = 'array'; + public $type; + + public function setRoleSets($roleSets) + { + $this->roleSets = $roleSets; + } + + public function getRoleSets() + { + return $this->roleSets; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Drive_AboutAdditionalRoleInfoRoleSets extends Google_Collection +{ + protected $collection_key = 'additionalRoles'; + protected $internal_gapi_mappings = array( + ); + public $additionalRoles; + public $primaryRole; + + public function setAdditionalRoles($additionalRoles) + { + $this->additionalRoles = $additionalRoles; + } + + public function getAdditionalRoles() + { + return $this->additionalRoles; + } + + public function setPrimaryRole($primaryRole) + { + $this->primaryRole = $primaryRole; + } + + public function getPrimaryRole() + { + return $this->primaryRole; + } +} + +class Google_Service_Drive_AboutExportFormats extends Google_Collection +{ + protected $collection_key = 'targets'; + protected $internal_gapi_mappings = array( + ); + public $source; + public $targets; + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setTargets($targets) + { + $this->targets = $targets; + } + + public function getTargets() + { + return $this->targets; + } +} + +class Google_Service_Drive_AboutFeatures extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $featureName; + public $featureRate; + + public function setFeatureName($featureName) + { + $this->featureName = $featureName; + } + + public function getFeatureName() + { + return $this->featureName; + } + + public function setFeatureRate($featureRate) + { + $this->featureRate = $featureRate; + } + + public function getFeatureRate() + { + return $this->featureRate; + } +} + +class Google_Service_Drive_AboutImportFormats extends Google_Collection +{ + protected $collection_key = 'targets'; + protected $internal_gapi_mappings = array( + ); + public $source; + public $targets; + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setTargets($targets) + { + $this->targets = $targets; + } + + public function getTargets() + { + return $this->targets; + } +} + +class Google_Service_Drive_AboutMaxUploadSizes extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $size; + public $type; + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Drive_AboutQuotaBytesByService extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bytesUsed; + public $serviceName; + + public function setBytesUsed($bytesUsed) + { + $this->bytesUsed = $bytesUsed; + } + + public function getBytesUsed() + { + return $this->bytesUsed; + } + + public function setServiceName($serviceName) + { + $this->serviceName = $serviceName; + } + + public function getServiceName() + { + return $this->serviceName; + } +} + +class Google_Service_Drive_App extends Google_Collection +{ + protected $collection_key = 'secondaryMimeTypes'; + protected $internal_gapi_mappings = array( + ); + public $authorized; + public $createInFolderTemplate; + public $createUrl; + public $hasDriveWideScope; + protected $iconsType = 'Google_Service_Drive_AppIcons'; + protected $iconsDataType = 'array'; + public $id; + public $installed; + public $kind; + public $longDescription; + public $name; + public $objectType; + public $openUrlTemplate; + public $primaryFileExtensions; + public $primaryMimeTypes; + public $productId; + public $productUrl; + public $secondaryFileExtensions; + public $secondaryMimeTypes; + public $shortDescription; + public $supportsCreate; + public $supportsImport; + public $supportsMultiOpen; + public $supportsOfflineCreate; + public $useByDefault; + + public function setAuthorized($authorized) + { + $this->authorized = $authorized; + } + + public function getAuthorized() + { + return $this->authorized; + } + + public function setCreateInFolderTemplate($createInFolderTemplate) + { + $this->createInFolderTemplate = $createInFolderTemplate; + } + + public function getCreateInFolderTemplate() + { + return $this->createInFolderTemplate; + } + + public function setCreateUrl($createUrl) + { + $this->createUrl = $createUrl; + } + + public function getCreateUrl() + { + return $this->createUrl; + } + + public function setHasDriveWideScope($hasDriveWideScope) + { + $this->hasDriveWideScope = $hasDriveWideScope; + } + + public function getHasDriveWideScope() + { + return $this->hasDriveWideScope; + } + + public function setIcons($icons) + { + $this->icons = $icons; + } + + public function getIcons() + { + return $this->icons; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInstalled($installed) + { + $this->installed = $installed; + } + + public function getInstalled() + { + return $this->installed; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLongDescription($longDescription) + { + $this->longDescription = $longDescription; + } + + public function getLongDescription() + { + return $this->longDescription; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOpenUrlTemplate($openUrlTemplate) + { + $this->openUrlTemplate = $openUrlTemplate; + } + + public function getOpenUrlTemplate() + { + return $this->openUrlTemplate; + } + + public function setPrimaryFileExtensions($primaryFileExtensions) + { + $this->primaryFileExtensions = $primaryFileExtensions; + } + + public function getPrimaryFileExtensions() + { + return $this->primaryFileExtensions; + } + + public function setPrimaryMimeTypes($primaryMimeTypes) + { + $this->primaryMimeTypes = $primaryMimeTypes; + } + + public function getPrimaryMimeTypes() + { + return $this->primaryMimeTypes; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } + + public function setProductUrl($productUrl) + { + $this->productUrl = $productUrl; + } + + public function getProductUrl() + { + return $this->productUrl; + } + + public function setSecondaryFileExtensions($secondaryFileExtensions) + { + $this->secondaryFileExtensions = $secondaryFileExtensions; + } + + public function getSecondaryFileExtensions() + { + return $this->secondaryFileExtensions; + } + + public function setSecondaryMimeTypes($secondaryMimeTypes) + { + $this->secondaryMimeTypes = $secondaryMimeTypes; + } + + public function getSecondaryMimeTypes() + { + return $this->secondaryMimeTypes; + } + + public function setShortDescription($shortDescription) + { + $this->shortDescription = $shortDescription; + } + + public function getShortDescription() + { + return $this->shortDescription; + } + + public function setSupportsCreate($supportsCreate) + { + $this->supportsCreate = $supportsCreate; + } + + public function getSupportsCreate() + { + return $this->supportsCreate; + } + + public function setSupportsImport($supportsImport) + { + $this->supportsImport = $supportsImport; + } + + public function getSupportsImport() + { + return $this->supportsImport; + } + + public function setSupportsMultiOpen($supportsMultiOpen) + { + $this->supportsMultiOpen = $supportsMultiOpen; + } + + public function getSupportsMultiOpen() + { + return $this->supportsMultiOpen; + } + + public function setSupportsOfflineCreate($supportsOfflineCreate) + { + $this->supportsOfflineCreate = $supportsOfflineCreate; + } + + public function getSupportsOfflineCreate() + { + return $this->supportsOfflineCreate; + } + + public function setUseByDefault($useByDefault) + { + $this->useByDefault = $useByDefault; + } + + public function getUseByDefault() + { + return $this->useByDefault; + } +} + +class Google_Service_Drive_AppIcons extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $category; + public $iconUrl; + public $size; + + public function setCategory($category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setIconUrl($iconUrl) + { + $this->iconUrl = $iconUrl; + } + + public function getIconUrl() + { + return $this->iconUrl; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_Drive_AppList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $defaultAppIds; + public $etag; + protected $itemsType = 'Google_Service_Drive_App'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setDefaultAppIds($defaultAppIds) + { + $this->defaultAppIds = $defaultAppIds; + } + + public function getDefaultAppIds() + { + return $this->defaultAppIds; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Change extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deleted; + protected $fileType = 'Google_Service_Drive_DriveFile'; + protected $fileDataType = ''; + public $fileId; + public $id; + public $kind; + public $modificationDate; + public $selfLink; + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setFile(Google_Service_Drive_DriveFile $file) + { + $this->file = $file; + } + + public function getFile() + { + return $this->file; + } + + public function setFileId($fileId) + { + $this->fileId = $fileId; + } + + public function getFileId() + { + return $this->fileId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModificationDate($modificationDate) + { + $this->modificationDate = $modificationDate; + } + + public function getModificationDate() + { + return $this->modificationDate; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ChangeList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Change'; + protected $itemsDataType = 'array'; + public $kind; + public $largestChangeId; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLargestChangeId($largestChangeId) + { + $this->largestChangeId = $largestChangeId; + } + + public function getLargestChangeId() + { + return $this->largestChangeId; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $expiration; + public $id; + public $kind; + public $params; + public $payload; + public $resourceId; + public $resourceUri; + public $token; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setExpiration($expiration) + { + $this->expiration = $expiration; + } + + public function getExpiration() + { + return $this->expiration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParams($params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setResourceUri($resourceUri) + { + $this->resourceUri = $resourceUri; + } + + public function getResourceUri() + { + return $this->resourceUri; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Drive_ChannelParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_ChildList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_ChildReference'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ChildReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $childLink; + public $id; + public $kind; + public $selfLink; + + public function setChildLink($childLink) + { + $this->childLink = $childLink; + } + + public function getChildLink() + { + return $this->childLink; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Comment extends Google_Collection +{ + protected $collection_key = 'replies'; + protected $internal_gapi_mappings = array( + ); + public $anchor; + protected $authorType = 'Google_Service_Drive_User'; + protected $authorDataType = ''; + public $commentId; + public $content; + protected $contextType = 'Google_Service_Drive_CommentContext'; + protected $contextDataType = ''; + public $createdDate; + public $deleted; + public $fileId; + public $fileTitle; + public $htmlContent; + public $kind; + public $modifiedDate; + protected $repliesType = 'Google_Service_Drive_CommentReply'; + protected $repliesDataType = 'array'; + public $selfLink; + public $status; + + public function setAnchor($anchor) + { + $this->anchor = $anchor; + } + + public function getAnchor() + { + return $this->anchor; + } + + public function setAuthor(Google_Service_Drive_User $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setCommentId($commentId) + { + $this->commentId = $commentId; + } + + public function getCommentId() + { + return $this->commentId; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setContext(Google_Service_Drive_CommentContext $context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setCreatedDate($createdDate) + { + $this->createdDate = $createdDate; + } + + public function getCreatedDate() + { + return $this->createdDate; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setFileId($fileId) + { + $this->fileId = $fileId; + } + + public function getFileId() + { + return $this->fileId; + } + + public function setFileTitle($fileTitle) + { + $this->fileTitle = $fileTitle; + } + + public function getFileTitle() + { + return $this->fileTitle; + } + + public function setHtmlContent($htmlContent) + { + $this->htmlContent = $htmlContent; + } + + public function getHtmlContent() + { + return $this->htmlContent; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setReplies($replies) + { + $this->replies = $replies; + } + + public function getReplies() + { + return $this->replies; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Drive_CommentContext extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Drive_CommentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Drive_Comment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_CommentReply extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Drive_User'; + protected $authorDataType = ''; + public $content; + public $createdDate; + public $deleted; + public $htmlContent; + public $kind; + public $modifiedDate; + public $replyId; + public $verb; + + public function setAuthor(Google_Service_Drive_User $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setCreatedDate($createdDate) + { + $this->createdDate = $createdDate; + } + + public function getCreatedDate() + { + return $this->createdDate; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setHtmlContent($htmlContent) + { + $this->htmlContent = $htmlContent; + } + + public function getHtmlContent() + { + return $this->htmlContent; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setReplyId($replyId) + { + $this->replyId = $replyId; + } + + public function getReplyId() + { + return $this->replyId; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_Drive_CommentReplyList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Drive_CommentReply'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_DriveFile extends Google_Collection +{ + protected $collection_key = 'properties'; + protected $internal_gapi_mappings = array( + ); + public $alternateLink; + public $appDataContents; + public $copyable; + public $createdDate; + public $defaultOpenWithLink; + public $description; + public $downloadUrl; + public $editable; + public $embedLink; + public $etag; + public $explicitlyTrashed; + public $exportLinks; + public $fileExtension; + public $fileSize; + public $headRevisionId; + public $iconLink; + public $id; + protected $imageMediaMetadataType = 'Google_Service_Drive_DriveFileImageMediaMetadata'; + protected $imageMediaMetadataDataType = ''; + protected $indexableTextType = 'Google_Service_Drive_DriveFileIndexableText'; + protected $indexableTextDataType = ''; + public $kind; + protected $labelsType = 'Google_Service_Drive_DriveFileLabels'; + protected $labelsDataType = ''; + protected $lastModifyingUserType = 'Google_Service_Drive_User'; + protected $lastModifyingUserDataType = ''; + public $lastModifyingUserName; + public $lastViewedByMeDate; + public $markedViewedByMeDate; + public $md5Checksum; + public $mimeType; + public $modifiedByMeDate; + public $modifiedDate; + public $openWithLinks; + public $originalFilename; + public $ownerNames; + protected $ownersType = 'Google_Service_Drive_User'; + protected $ownersDataType = 'array'; + protected $parentsType = 'Google_Service_Drive_ParentReference'; + protected $parentsDataType = 'array'; + protected $permissionsType = 'Google_Service_Drive_Permission'; + protected $permissionsDataType = 'array'; + protected $propertiesType = 'Google_Service_Drive_Property'; + protected $propertiesDataType = 'array'; + public $quotaBytesUsed; + public $selfLink; + public $shared; + public $sharedWithMeDate; + protected $sharingUserType = 'Google_Service_Drive_User'; + protected $sharingUserDataType = ''; + protected $thumbnailType = 'Google_Service_Drive_DriveFileThumbnail'; + protected $thumbnailDataType = ''; + public $thumbnailLink; + public $title; + protected $userPermissionType = 'Google_Service_Drive_Permission'; + protected $userPermissionDataType = ''; + public $version; + protected $videoMediaMetadataType = 'Google_Service_Drive_DriveFileVideoMediaMetadata'; + protected $videoMediaMetadataDataType = ''; + public $webContentLink; + public $webViewLink; + public $writersCanShare; + + public function setAlternateLink($alternateLink) + { + $this->alternateLink = $alternateLink; + } + + public function getAlternateLink() + { + return $this->alternateLink; + } + + public function setAppDataContents($appDataContents) + { + $this->appDataContents = $appDataContents; + } + + public function getAppDataContents() + { + return $this->appDataContents; + } + + public function setCopyable($copyable) + { + $this->copyable = $copyable; + } + + public function getCopyable() + { + return $this->copyable; + } + + public function setCreatedDate($createdDate) + { + $this->createdDate = $createdDate; + } + + public function getCreatedDate() + { + return $this->createdDate; + } + + public function setDefaultOpenWithLink($defaultOpenWithLink) + { + $this->defaultOpenWithLink = $defaultOpenWithLink; + } + + public function getDefaultOpenWithLink() + { + return $this->defaultOpenWithLink; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDownloadUrl($downloadUrl) + { + $this->downloadUrl = $downloadUrl; + } + + public function getDownloadUrl() + { + return $this->downloadUrl; + } + + public function setEditable($editable) + { + $this->editable = $editable; + } + + public function getEditable() + { + return $this->editable; + } + + public function setEmbedLink($embedLink) + { + $this->embedLink = $embedLink; + } + + public function getEmbedLink() + { + return $this->embedLink; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExplicitlyTrashed($explicitlyTrashed) + { + $this->explicitlyTrashed = $explicitlyTrashed; + } + + public function getExplicitlyTrashed() + { + return $this->explicitlyTrashed; + } + + public function setExportLinks($exportLinks) + { + $this->exportLinks = $exportLinks; + } + + public function getExportLinks() + { + return $this->exportLinks; + } + + public function setFileExtension($fileExtension) + { + $this->fileExtension = $fileExtension; + } + + public function getFileExtension() + { + return $this->fileExtension; + } + + public function setFileSize($fileSize) + { + $this->fileSize = $fileSize; + } + + public function getFileSize() + { + return $this->fileSize; + } + + public function setHeadRevisionId($headRevisionId) + { + $this->headRevisionId = $headRevisionId; + } + + public function getHeadRevisionId() + { + return $this->headRevisionId; + } + + public function setIconLink($iconLink) + { + $this->iconLink = $iconLink; + } + + public function getIconLink() + { + return $this->iconLink; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImageMediaMetadata(Google_Service_Drive_DriveFileImageMediaMetadata $imageMediaMetadata) + { + $this->imageMediaMetadata = $imageMediaMetadata; + } + + public function getImageMediaMetadata() + { + return $this->imageMediaMetadata; + } + + public function setIndexableText(Google_Service_Drive_DriveFileIndexableText $indexableText) + { + $this->indexableText = $indexableText; + } + + public function getIndexableText() + { + return $this->indexableText; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLabels(Google_Service_Drive_DriveFileLabels $labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setLastModifyingUser(Google_Service_Drive_User $lastModifyingUser) + { + $this->lastModifyingUser = $lastModifyingUser; + } + + public function getLastModifyingUser() + { + return $this->lastModifyingUser; + } + + public function setLastModifyingUserName($lastModifyingUserName) + { + $this->lastModifyingUserName = $lastModifyingUserName; + } + + public function getLastModifyingUserName() + { + return $this->lastModifyingUserName; + } + + public function setLastViewedByMeDate($lastViewedByMeDate) + { + $this->lastViewedByMeDate = $lastViewedByMeDate; + } + + public function getLastViewedByMeDate() + { + return $this->lastViewedByMeDate; + } + + public function setMarkedViewedByMeDate($markedViewedByMeDate) + { + $this->markedViewedByMeDate = $markedViewedByMeDate; + } + + public function getMarkedViewedByMeDate() + { + return $this->markedViewedByMeDate; + } + + public function setMd5Checksum($md5Checksum) + { + $this->md5Checksum = $md5Checksum; + } + + public function getMd5Checksum() + { + return $this->md5Checksum; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setModifiedByMeDate($modifiedByMeDate) + { + $this->modifiedByMeDate = $modifiedByMeDate; + } + + public function getModifiedByMeDate() + { + return $this->modifiedByMeDate; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setOpenWithLinks($openWithLinks) + { + $this->openWithLinks = $openWithLinks; + } + + public function getOpenWithLinks() + { + return $this->openWithLinks; + } + + public function setOriginalFilename($originalFilename) + { + $this->originalFilename = $originalFilename; + } + + public function getOriginalFilename() + { + return $this->originalFilename; + } + + public function setOwnerNames($ownerNames) + { + $this->ownerNames = $ownerNames; + } + + public function getOwnerNames() + { + return $this->ownerNames; + } + + public function setOwners($owners) + { + $this->owners = $owners; + } + + public function getOwners() + { + return $this->owners; + } + + public function setParents($parents) + { + $this->parents = $parents; + } + + public function getParents() + { + return $this->parents; + } + + public function setPermissions($permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } + + public function setProperties($properties) + { + $this->properties = $properties; + } + + public function getProperties() + { + return $this->properties; + } + + public function setQuotaBytesUsed($quotaBytesUsed) + { + $this->quotaBytesUsed = $quotaBytesUsed; + } + + public function getQuotaBytesUsed() + { + return $this->quotaBytesUsed; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setShared($shared) + { + $this->shared = $shared; + } + + public function getShared() + { + return $this->shared; + } + + public function setSharedWithMeDate($sharedWithMeDate) + { + $this->sharedWithMeDate = $sharedWithMeDate; + } + + public function getSharedWithMeDate() + { + return $this->sharedWithMeDate; + } + + public function setSharingUser(Google_Service_Drive_User $sharingUser) + { + $this->sharingUser = $sharingUser; + } + + public function getSharingUser() + { + return $this->sharingUser; + } + + public function setThumbnail(Google_Service_Drive_DriveFileThumbnail $thumbnail) + { + $this->thumbnail = $thumbnail; + } + + public function getThumbnail() + { + return $this->thumbnail; + } + + public function setThumbnailLink($thumbnailLink) + { + $this->thumbnailLink = $thumbnailLink; + } + + public function getThumbnailLink() + { + return $this->thumbnailLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUserPermission(Google_Service_Drive_Permission $userPermission) + { + $this->userPermission = $userPermission; + } + + public function getUserPermission() + { + return $this->userPermission; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } + + public function setVideoMediaMetadata(Google_Service_Drive_DriveFileVideoMediaMetadata $videoMediaMetadata) + { + $this->videoMediaMetadata = $videoMediaMetadata; + } + + public function getVideoMediaMetadata() + { + return $this->videoMediaMetadata; + } + + public function setWebContentLink($webContentLink) + { + $this->webContentLink = $webContentLink; + } + + public function getWebContentLink() + { + return $this->webContentLink; + } + + public function setWebViewLink($webViewLink) + { + $this->webViewLink = $webViewLink; + } + + public function getWebViewLink() + { + return $this->webViewLink; + } + + public function setWritersCanShare($writersCanShare) + { + $this->writersCanShare = $writersCanShare; + } + + public function getWritersCanShare() + { + return $this->writersCanShare; + } +} + +class Google_Service_Drive_DriveFileExportLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_DriveFileImageMediaMetadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $aperture; + public $cameraMake; + public $cameraModel; + public $colorSpace; + public $date; + public $exposureBias; + public $exposureMode; + public $exposureTime; + public $flashUsed; + public $focalLength; + public $height; + public $isoSpeed; + public $lens; + protected $locationType = 'Google_Service_Drive_DriveFileImageMediaMetadataLocation'; + protected $locationDataType = ''; + public $maxApertureValue; + public $meteringMode; + public $rotation; + public $sensor; + public $subjectDistance; + public $whiteBalance; + public $width; + + public function setAperture($aperture) + { + $this->aperture = $aperture; + } + + public function getAperture() + { + return $this->aperture; + } + + public function setCameraMake($cameraMake) + { + $this->cameraMake = $cameraMake; + } + + public function getCameraMake() + { + return $this->cameraMake; + } + + public function setCameraModel($cameraModel) + { + $this->cameraModel = $cameraModel; + } + + public function getCameraModel() + { + return $this->cameraModel; + } + + public function setColorSpace($colorSpace) + { + $this->colorSpace = $colorSpace; + } + + public function getColorSpace() + { + return $this->colorSpace; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setExposureBias($exposureBias) + { + $this->exposureBias = $exposureBias; + } + + public function getExposureBias() + { + return $this->exposureBias; + } + + public function setExposureMode($exposureMode) + { + $this->exposureMode = $exposureMode; + } + + public function getExposureMode() + { + return $this->exposureMode; + } + + public function setExposureTime($exposureTime) + { + $this->exposureTime = $exposureTime; + } + + public function getExposureTime() + { + return $this->exposureTime; + } + + public function setFlashUsed($flashUsed) + { + $this->flashUsed = $flashUsed; + } + + public function getFlashUsed() + { + return $this->flashUsed; + } + + public function setFocalLength($focalLength) + { + $this->focalLength = $focalLength; + } + + public function getFocalLength() + { + return $this->focalLength; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setIsoSpeed($isoSpeed) + { + $this->isoSpeed = $isoSpeed; + } + + public function getIsoSpeed() + { + return $this->isoSpeed; + } + + public function setLens($lens) + { + $this->lens = $lens; + } + + public function getLens() + { + return $this->lens; + } + + public function setLocation(Google_Service_Drive_DriveFileImageMediaMetadataLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMaxApertureValue($maxApertureValue) + { + $this->maxApertureValue = $maxApertureValue; + } + + public function getMaxApertureValue() + { + return $this->maxApertureValue; + } + + public function setMeteringMode($meteringMode) + { + $this->meteringMode = $meteringMode; + } + + public function getMeteringMode() + { + return $this->meteringMode; + } + + public function setRotation($rotation) + { + $this->rotation = $rotation; + } + + public function getRotation() + { + return $this->rotation; + } + + public function setSensor($sensor) + { + $this->sensor = $sensor; + } + + public function getSensor() + { + return $this->sensor; + } + + public function setSubjectDistance($subjectDistance) + { + $this->subjectDistance = $subjectDistance; + } + + public function getSubjectDistance() + { + return $this->subjectDistance; + } + + public function setWhiteBalance($whiteBalance) + { + $this->whiteBalance = $whiteBalance; + } + + public function getWhiteBalance() + { + return $this->whiteBalance; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Drive_DriveFileImageMediaMetadataLocation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $altitude; + public $latitude; + public $longitude; + + public function setAltitude($altitude) + { + $this->altitude = $altitude; + } + + public function getAltitude() + { + return $this->altitude; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Drive_DriveFileIndexableText extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $text; + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Drive_DriveFileLabels extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hidden; + public $restricted; + public $starred; + public $trashed; + public $viewed; + + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + public function getHidden() + { + return $this->hidden; + } + + public function setRestricted($restricted) + { + $this->restricted = $restricted; + } + + public function getRestricted() + { + return $this->restricted; + } + + public function setStarred($starred) + { + $this->starred = $starred; + } + + public function getStarred() + { + return $this->starred; + } + + public function setTrashed($trashed) + { + $this->trashed = $trashed; + } + + public function getTrashed() + { + return $this->trashed; + } + + public function setViewed($viewed) + { + $this->viewed = $viewed; + } + + public function getViewed() + { + return $this->viewed; + } +} + +class Google_Service_Drive_DriveFileOpenWithLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_DriveFileThumbnail extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $image; + public $mimeType; + + public function setImage($image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } +} + +class Google_Service_Drive_DriveFileVideoMediaMetadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $durationMillis; + public $height; + public $width; + + public function setDurationMillis($durationMillis) + { + $this->durationMillis = $durationMillis; + } + + public function getDurationMillis() + { + return $this->durationMillis; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Drive_FileList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_DriveFile'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ParentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_ParentReference'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ParentReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $isRoot; + public $kind; + public $parentLink; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsRoot($isRoot) + { + $this->isRoot = $isRoot; + } + + public function getIsRoot() + { + return $this->isRoot; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParentLink($parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Permission extends Google_Collection +{ + protected $collection_key = 'additionalRoles'; + protected $internal_gapi_mappings = array( + ); + public $additionalRoles; + public $authKey; + public $domain; + public $emailAddress; + public $etag; + public $id; + public $kind; + public $name; + public $photoLink; + public $role; + public $selfLink; + public $type; + public $value; + public $withLink; + + public function setAdditionalRoles($additionalRoles) + { + $this->additionalRoles = $additionalRoles; + } + + public function getAdditionalRoles() + { + return $this->additionalRoles; + } + + public function setAuthKey($authKey) + { + $this->authKey = $authKey; + } + + public function getAuthKey() + { + return $this->authKey; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setEmailAddress($emailAddress) + { + $this->emailAddress = $emailAddress; + } + + public function getEmailAddress() + { + return $this->emailAddress; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPhotoLink($photoLink) + { + $this->photoLink = $photoLink; + } + + public function getPhotoLink() + { + return $this->photoLink; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } + + public function setWithLink($withLink) + { + $this->withLink = $withLink; + } + + public function getWithLink() + { + return $this->withLink; + } +} + +class Google_Service_Drive_PermissionId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Drive_PermissionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Permission'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Property extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $key; + public $kind; + public $selfLink; + public $value; + public $visibility; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_Drive_PropertyList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Property'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Revision extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $downloadUrl; + public $etag; + public $exportLinks; + public $fileSize; + public $id; + public $kind; + protected $lastModifyingUserType = 'Google_Service_Drive_User'; + protected $lastModifyingUserDataType = ''; + public $lastModifyingUserName; + public $md5Checksum; + public $mimeType; + public $modifiedDate; + public $originalFilename; + public $pinned; + public $publishAuto; + public $published; + public $publishedLink; + public $publishedOutsideDomain; + public $selfLink; + + public function setDownloadUrl($downloadUrl) + { + $this->downloadUrl = $downloadUrl; + } + + public function getDownloadUrl() + { + return $this->downloadUrl; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExportLinks($exportLinks) + { + $this->exportLinks = $exportLinks; + } + + public function getExportLinks() + { + return $this->exportLinks; + } + + public function setFileSize($fileSize) + { + $this->fileSize = $fileSize; + } + + public function getFileSize() + { + return $this->fileSize; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifyingUser(Google_Service_Drive_User $lastModifyingUser) + { + $this->lastModifyingUser = $lastModifyingUser; + } + + public function getLastModifyingUser() + { + return $this->lastModifyingUser; + } + + public function setLastModifyingUserName($lastModifyingUserName) + { + $this->lastModifyingUserName = $lastModifyingUserName; + } + + public function getLastModifyingUserName() + { + return $this->lastModifyingUserName; + } + + public function setMd5Checksum($md5Checksum) + { + $this->md5Checksum = $md5Checksum; + } + + public function getMd5Checksum() + { + return $this->md5Checksum; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setOriginalFilename($originalFilename) + { + $this->originalFilename = $originalFilename; + } + + public function getOriginalFilename() + { + return $this->originalFilename; + } + + public function setPinned($pinned) + { + $this->pinned = $pinned; + } + + public function getPinned() + { + return $this->pinned; + } + + public function setPublishAuto($publishAuto) + { + $this->publishAuto = $publishAuto; + } + + public function getPublishAuto() + { + return $this->publishAuto; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setPublishedLink($publishedLink) + { + $this->publishedLink = $publishedLink; + } + + public function getPublishedLink() + { + return $this->publishedLink; + } + + public function setPublishedOutsideDomain($publishedOutsideDomain) + { + $this->publishedOutsideDomain = $publishedOutsideDomain; + } + + public function getPublishedOutsideDomain() + { + return $this->publishedOutsideDomain; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_RevisionExportLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_RevisionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Revision'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_User extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $emailAddress; + public $isAuthenticatedUser; + public $kind; + public $permissionId; + protected $pictureType = 'Google_Service_Drive_UserPicture'; + protected $pictureDataType = ''; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmailAddress($emailAddress) + { + $this->emailAddress = $emailAddress; + } + + public function getEmailAddress() + { + return $this->emailAddress; + } + + public function setIsAuthenticatedUser($isAuthenticatedUser) + { + $this->isAuthenticatedUser = $isAuthenticatedUser; + } + + public function getIsAuthenticatedUser() + { + return $this->isAuthenticatedUser; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPermissionId($permissionId) + { + $this->permissionId = $permissionId; + } + + public function getPermissionId() + { + return $this->permissionId; + } + + public function setPicture(Google_Service_Drive_UserPicture $picture) + { + $this->picture = $picture; + } + + public function getPicture() + { + return $this->picture; + } +} + +class Google_Service_Drive_UserPicture extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Exception.php b/vendor/google/apiclient/src/Google/Service/Exception.php new file mode 100644 index 0000000..a780ff7 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Exception.php @@ -0,0 +1,53 @@ += 0) { + parent::__construct($message, $code, $previous); + } else { + parent::__construct($message, $code); + } + + $this->errors = $errors; + } + + /** + * An example of the possible errors returned. + * + * { + * "domain": "global", + * "reason": "authError", + * "message": "Invalid Credentials", + * "locationType": "header", + * "location": "Authorization", + * } + * + * @return [{string, string}] List of errors return in an HTTP response or []. + */ + public function getErrors() + { + return $this->errors; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Freebase.php b/vendor/google/apiclient/src/Google/Service/Freebase.php new file mode 100644 index 0000000..d65f574 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Freebase.php @@ -0,0 +1,498 @@ + + * Find Freebase entities using textual queries and other constraints. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Freebase extends Google_Service +{ + + + + private $base_methods; + + /** + * Constructs the internal representation of the Freebase service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'freebase/v1/'; + $this->version = 'v1'; + $this->serviceName = 'freebase'; + + $this->base_methods = new Google_Service_Resource( + $this, + $this->serviceName, + '', + array( + 'methods' => array( + 'reconcile' => array( + 'path' => 'reconcile', + 'httpMethod' => 'GET', + 'parameters' => array( + 'lang' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'confidence' => array( + 'location' => 'query', + 'type' => 'number', + ), + 'name' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'kind' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'prop' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'limit' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'search' => array( + 'path' => 'search', + 'httpMethod' => 'GET', + 'parameters' => array( + 'domain' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'help' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'scoring' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'cursor' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'prefixed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'exact' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'mid' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'encode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'as_of_time' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'stemmed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'spell' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'with' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'lang' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'indent' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'callback' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'without' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'limit' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'output' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mql_output' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } + /** + * Reconcile entities to Freebase open data. (reconcile) + * + * @param array $optParams Optional parameters. + * + * @opt_param string lang + * Languages for names and values. First language is used for display. Default is 'en'. + * @opt_param float confidence + * Required confidence for a candidate to match. Must be between .5 and 1.0 + * @opt_param string name + * Name of entity. + * @opt_param string kind + * Classifications of entity e.g. type, category, title. + * @opt_param string prop + * Property values for entity formatted as + : + * @opt_param int limit + * Maximum number of candidates to return. + * @return Google_Service_Freebase_ReconcileGet + */ + public function reconcile($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->base_methods->call('reconcile', array($params), "Google_Service_Freebase_ReconcileGet"); + } + /** + * Search Freebase open data. (search) + * + * @param array $optParams Optional parameters. + * + * @opt_param string domain + * Restrict to topics with this Freebase domain id. + * @opt_param string help + * The keyword to request help on. + * @opt_param string query + * Query term to search for. + * @opt_param string scoring + * Relevance scoring algorithm to use. + * @opt_param int cursor + * The cursor value to use for the next page of results. + * @opt_param bool prefixed + * Prefix match against names and aliases. + * @opt_param bool exact + * Query on exact name and keys only. + * @opt_param string mid + * A mid to use instead of a query. + * @opt_param string encode + * The encoding of the response. You can use this parameter to enable html encoding. + * @opt_param string type + * Restrict to topics with this Freebase type id. + * @opt_param string as_of_time + * A mql as_of_time value to use with mql_output queries. + * @opt_param bool stemmed + * Query on stemmed names and aliases. May not be used with prefixed. + * @opt_param string format + * Structural format of the json response. + * @opt_param string spell + * Request 'did you mean' suggestions + * @opt_param string with + * A rule to match against. + * @opt_param string lang + * The code of the language to run the query with. Default is 'en'. + * @opt_param bool indent + * Whether to indent the json results or not. + * @opt_param string filter + * A filter to apply to the query. + * @opt_param string callback + * JS method name for JSONP callbacks. + * @opt_param string without + * A rule to not match against. + * @opt_param int limit + * Maximum number of results to return. + * @opt_param string output + * An output expression to request data from matches. + * @opt_param string mql_output + * The MQL query to run againist the results to extract more data. + */ + public function search($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('search', array($params)); + } +} + + + + + +class Google_Service_Freebase_ReconcileCandidate extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $confidence; + public $lang; + public $mid; + public $name; + protected $notableType = 'Google_Service_Freebase_ReconcileCandidateNotable'; + protected $notableDataType = ''; + + public function setConfidence($confidence) + { + $this->confidence = $confidence; + } + + public function getConfidence() + { + return $this->confidence; + } + + public function setLang($lang) + { + $this->lang = $lang; + } + + public function getLang() + { + return $this->lang; + } + + public function setMid($mid) + { + $this->mid = $mid; + } + + public function getMid() + { + return $this->mid; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNotable(Google_Service_Freebase_ReconcileCandidateNotable $notable) + { + $this->notable = $notable; + } + + public function getNotable() + { + return $this->notable; + } +} + +class Google_Service_Freebase_ReconcileCandidateNotable extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Freebase_ReconcileGet extends Google_Collection +{ + protected $collection_key = 'warning'; + protected $internal_gapi_mappings = array( + ); + protected $candidateType = 'Google_Service_Freebase_ReconcileCandidate'; + protected $candidateDataType = 'array'; + protected $costsType = 'Google_Service_Freebase_ReconcileGetCosts'; + protected $costsDataType = ''; + protected $matchType = 'Google_Service_Freebase_ReconcileCandidate'; + protected $matchDataType = ''; + protected $warningType = 'Google_Service_Freebase_ReconcileGetWarning'; + protected $warningDataType = 'array'; + + public function setCandidate($candidate) + { + $this->candidate = $candidate; + } + + public function getCandidate() + { + return $this->candidate; + } + + public function setCosts(Google_Service_Freebase_ReconcileGetCosts $costs) + { + $this->costs = $costs; + } + + public function getCosts() + { + return $this->costs; + } + + public function setMatch(Google_Service_Freebase_ReconcileCandidate $match) + { + $this->match = $match; + } + + public function getMatch() + { + return $this->match; + } + + public function setWarning($warning) + { + $this->warning = $warning; + } + + public function getWarning() + { + return $this->warning; + } +} + +class Google_Service_Freebase_ReconcileGetCosts extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hits; + public $ms; + + public function setHits($hits) + { + $this->hits = $hits; + } + + public function getHits() + { + return $this->hits; + } + + public function setMs($ms) + { + $this->ms = $ms; + } + + public function getMs() + { + return $this->ms; + } +} + +class Google_Service_Freebase_ReconcileGetWarning extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $location; + public $message; + public $reason; + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Fusiontables.php b/vendor/google/apiclient/src/Google/Service/Fusiontables.php new file mode 100644 index 0000000..0b1b13a --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Fusiontables.php @@ -0,0 +1,2521 @@ + + * API for working with Fusion Tables data. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Fusiontables extends Google_Service +{ + /** Manage your Fusion Tables. */ + const FUSIONTABLES = "https://www.googleapis.com/auth/fusiontables"; + /** View your Fusion Tables. */ + const FUSIONTABLES_READONLY = "https://www.googleapis.com/auth/fusiontables.readonly"; + + public $column; + public $query; + public $style; + public $table; + public $task; + public $template; + + + /** + * Constructs the internal representation of the Fusiontables service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'fusiontables/v1/'; + $this->version = 'v1'; + $this->serviceName = 'fusiontables'; + + $this->column = new Google_Service_Fusiontables_Column_Resource( + $this, + $this->serviceName, + 'column', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'tables/{tableId}/columns/{columnId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'columnId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{tableId}/columns/{columnId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'columnId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'tables/{tableId}/columns', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'tables/{tableId}/columns', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'tables/{tableId}/columns/{columnId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'columnId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'tables/{tableId}/columns/{columnId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'columnId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->query = new Google_Service_Fusiontables_Query_Resource( + $this, + $this->serviceName, + 'query', + array( + 'methods' => array( + 'sql' => array( + 'path' => 'query', + 'httpMethod' => 'POST', + 'parameters' => array( + 'sql' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'typed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'hdrs' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'sqlGet' => array( + 'path' => 'query', + 'httpMethod' => 'GET', + 'parameters' => array( + 'sql' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'typed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'hdrs' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->style = new Google_Service_Fusiontables_Style_Resource( + $this, + $this->serviceName, + 'style', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'tables/{tableId}/styles/{styleId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'styleId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{tableId}/styles/{styleId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'styleId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'tables/{tableId}/styles', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'tables/{tableId}/styles', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'tables/{tableId}/styles/{styleId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'styleId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'tables/{tableId}/styles/{styleId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'styleId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->table = new Google_Service_Fusiontables_Table_Resource( + $this, + $this->serviceName, + 'table', + array( + 'methods' => array( + 'copy' => array( + 'path' => 'tables/{tableId}/copy', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'copyPresentation' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'delete' => array( + 'path' => 'tables/{tableId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{tableId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'importRows' => array( + 'path' => 'tables/{tableId}/import', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startLine' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'isStrict' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'encoding' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'delimiter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endLine' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'importTable' => array( + 'path' => 'tables/import', + 'httpMethod' => 'POST', + 'parameters' => array( + 'name' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'delimiter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'encoding' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'tables', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'tables', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'tables/{tableId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replaceViewDefinition' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'tables/{tableId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replaceViewDefinition' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->task = new Google_Service_Fusiontables_Task_Resource( + $this, + $this->serviceName, + 'task', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'tables/{tableId}/tasks/{taskId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{tableId}/tasks/{taskId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'tables/{tableId}/tasks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startIndex' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->template = new Google_Service_Fusiontables_Template_Resource( + $this, + $this->serviceName, + 'template', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'tables/{tableId}/templates/{templateId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'templateId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{tableId}/templates/{templateId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'templateId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'tables/{tableId}/templates', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'tables/{tableId}/templates', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'tables/{tableId}/templates/{templateId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'templateId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'tables/{tableId}/templates/{templateId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'templateId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "column" collection of methods. + * Typical usage is: + * + * $fusiontablesService = new Google_Service_Fusiontables(...); + * $column = $fusiontablesService->column; + * + */ +class Google_Service_Fusiontables_Column_Resource extends Google_Service_Resource +{ + + /** + * Deletes the column. (column.delete) + * + * @param string $tableId + * Table from which the column is being deleted. + * @param string $columnId + * Name or identifier for the column being deleted. + * @param array $optParams Optional parameters. + */ + public function delete($tableId, $columnId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'columnId' => $columnId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a specific column by its id. (column.get) + * + * @param string $tableId + * Table to which the column belongs. + * @param string $columnId + * Name or identifier for the column that is being requested. + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Column + */ + public function get($tableId, $columnId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'columnId' => $columnId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Fusiontables_Column"); + } + /** + * Adds a new column to the table. (column.insert) + * + * @param string $tableId + * Table for which a new column is being added. + * @param Google_Column $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Column + */ + public function insert($tableId, Google_Service_Fusiontables_Column $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Fusiontables_Column"); + } + /** + * Retrieves a list of columns. (column.listColumn) + * + * @param string $tableId + * Table whose columns are being listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Continuation token specifying which result page to return. Optional. + * @opt_param string maxResults + * Maximum number of columns to return. Optional. Default is 5. + * @return Google_Service_Fusiontables_ColumnList + */ + public function listColumn($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Fusiontables_ColumnList"); + } + /** + * Updates the name or type of an existing column. This method supports patch + * semantics. (column.patch) + * + * @param string $tableId + * Table for which the column is being updated. + * @param string $columnId + * Name or identifier for the column that is being updated. + * @param Google_Column $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Column + */ + public function patch($tableId, $columnId, Google_Service_Fusiontables_Column $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'columnId' => $columnId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Fusiontables_Column"); + } + /** + * Updates the name or type of an existing column. (column.update) + * + * @param string $tableId + * Table for which the column is being updated. + * @param string $columnId + * Name or identifier for the column that is being updated. + * @param Google_Column $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Column + */ + public function update($tableId, $columnId, Google_Service_Fusiontables_Column $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'columnId' => $columnId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Fusiontables_Column"); + } +} + +/** + * The "query" collection of methods. + * Typical usage is: + * + * $fusiontablesService = new Google_Service_Fusiontables(...); + * $query = $fusiontablesService->query; + * + */ +class Google_Service_Fusiontables_Query_Resource extends Google_Service_Resource +{ + + /** + * Executes an SQL SELECT/INSERT/UPDATE/DELETE/SHOW/DESCRIBE/CREATE statement. + * (query.sql) + * + * @param string $sql + * An SQL SELECT/SHOW/DESCRIBE/INSERT/UPDATE/DELETE/CREATE statement. + * @param array $optParams Optional parameters. + * + * @opt_param bool typed + * Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed + * geometries for KML values? Default is true. + * @opt_param bool hdrs + * Should column names be included (in the first row)?. Default is true. + * @return Google_Service_Fusiontables_Sqlresponse + */ + public function sql($sql, $optParams = array()) + { + $params = array('sql' => $sql); + $params = array_merge($params, $optParams); + return $this->call('sql', array($params), "Google_Service_Fusiontables_Sqlresponse"); + } + /** + * Executes an SQL SELECT/SHOW/DESCRIBE statement. (query.sqlGet) + * + * @param string $sql + * An SQL SELECT/SHOW/DESCRIBE statement. + * @param array $optParams Optional parameters. + * + * @opt_param bool typed + * Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed + * geometries for KML values? Default is true. + * @opt_param bool hdrs + * Should column names be included (in the first row)?. Default is true. + * @return Google_Service_Fusiontables_Sqlresponse + */ + public function sqlGet($sql, $optParams = array()) + { + $params = array('sql' => $sql); + $params = array_merge($params, $optParams); + return $this->call('sqlGet', array($params), "Google_Service_Fusiontables_Sqlresponse"); + } +} + +/** + * The "style" collection of methods. + * Typical usage is: + * + * $fusiontablesService = new Google_Service_Fusiontables(...); + * $style = $fusiontablesService->style; + * + */ +class Google_Service_Fusiontables_Style_Resource extends Google_Service_Resource +{ + + /** + * Deletes a style. (style.delete) + * + * @param string $tableId + * Table from which the style is being deleted + * @param int $styleId + * Identifier (within a table) for the style being deleted + * @param array $optParams Optional parameters. + */ + public function delete($tableId, $styleId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'styleId' => $styleId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific style. (style.get) + * + * @param string $tableId + * Table to which the requested style belongs + * @param int $styleId + * Identifier (integer) for a specific style in a table + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_StyleSetting + */ + public function get($tableId, $styleId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'styleId' => $styleId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Fusiontables_StyleSetting"); + } + /** + * Adds a new style for the table. (style.insert) + * + * @param string $tableId + * Table for which a new style is being added + * @param Google_StyleSetting $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_StyleSetting + */ + public function insert($tableId, Google_Service_Fusiontables_StyleSetting $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Fusiontables_StyleSetting"); + } + /** + * Retrieves a list of styles. (style.listStyle) + * + * @param string $tableId + * Table whose styles are being listed + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Continuation token specifying which result page to return. Optional. + * @opt_param string maxResults + * Maximum number of styles to return. Optional. Default is 5. + * @return Google_Service_Fusiontables_StyleSettingList + */ + public function listStyle($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Fusiontables_StyleSettingList"); + } + /** + * Updates an existing style. This method supports patch semantics. + * (style.patch) + * + * @param string $tableId + * Table whose style is being updated. + * @param int $styleId + * Identifier (within a table) for the style being updated. + * @param Google_StyleSetting $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_StyleSetting + */ + public function patch($tableId, $styleId, Google_Service_Fusiontables_StyleSetting $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'styleId' => $styleId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Fusiontables_StyleSetting"); + } + /** + * Updates an existing style. (style.update) + * + * @param string $tableId + * Table whose style is being updated. + * @param int $styleId + * Identifier (within a table) for the style being updated. + * @param Google_StyleSetting $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_StyleSetting + */ + public function update($tableId, $styleId, Google_Service_Fusiontables_StyleSetting $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'styleId' => $styleId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Fusiontables_StyleSetting"); + } +} + +/** + * The "table" collection of methods. + * Typical usage is: + * + * $fusiontablesService = new Google_Service_Fusiontables(...); + * $table = $fusiontablesService->table; + * + */ +class Google_Service_Fusiontables_Table_Resource extends Google_Service_Resource +{ + + /** + * Copies a table. (table.copy) + * + * @param string $tableId + * ID of the table that is being copied. + * @param array $optParams Optional parameters. + * + * @opt_param bool copyPresentation + * Whether to also copy tabs, styles, and templates. Default is false. + * @return Google_Service_Fusiontables_Table + */ + public function copy($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('copy', array($params), "Google_Service_Fusiontables_Table"); + } + /** + * Deletes a table. (table.delete) + * + * @param string $tableId + * ID of the table that is being deleted. + * @param array $optParams Optional parameters. + */ + public function delete($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a specific table by its id. (table.get) + * + * @param string $tableId + * Identifier(ID) for the table being requested. + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Table + */ + public function get($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Fusiontables_Table"); + } + /** + * Import more rows into a table. (table.importRows) + * + * @param string $tableId + * The table into which new rows are being imported. + * @param array $optParams Optional parameters. + * + * @opt_param int startLine + * The index of the first line from which to start importing, inclusive. Default is 0. + * @opt_param bool isStrict + * Whether the CSV must have the same number of values for each row. If false, rows with fewer + * values will be padded with empty values. Default is true. + * @opt_param string encoding + * The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the + * encoding. + * @opt_param string delimiter + * The delimiter used to separate cell values. This can only consist of a single character. Default + * is ','. + * @opt_param int endLine + * The index of the last line from which to start importing, exclusive. Thus, the number of + * imported lines is endLine - startLine. If this parameter is not provided, the file will be + * imported until the last line of the file. If endLine is negative, then the imported content will + * exclude the last endLine lines. That is, if endline is negative, no line will be imported whose + * index is greater than N + endLine where N is the number of lines in the file, and the number of + * imported lines will be N + endLine - startLine. + * @return Google_Service_Fusiontables_Import + */ + public function importRows($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('importRows', array($params), "Google_Service_Fusiontables_Import"); + } + /** + * Import a new table. (table.importTable) + * + * @param string $name + * The name to be assigned to the new table. + * @param array $optParams Optional parameters. + * + * @opt_param string delimiter + * The delimiter used to separate cell values. This can only consist of a single character. Default + * is ','. + * @opt_param string encoding + * The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the + * encoding. + * @return Google_Service_Fusiontables_Table + */ + public function importTable($name, $optParams = array()) + { + $params = array('name' => $name); + $params = array_merge($params, $optParams); + return $this->call('importTable', array($params), "Google_Service_Fusiontables_Table"); + } + /** + * Creates a new table. (table.insert) + * + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Table + */ + public function insert(Google_Service_Fusiontables_Table $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Fusiontables_Table"); + } + /** + * Retrieves a list of tables a user owns. (table.listTable) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Continuation token specifying which result page to return. Optional. + * @opt_param string maxResults + * Maximum number of styles to return. Optional. Default is 5. + * @return Google_Service_Fusiontables_TableList + */ + public function listTable($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Fusiontables_TableList"); + } + /** + * Updates an existing table. Unless explicitly requested, only the name, + * description, and attribution will be updated. This method supports patch + * semantics. (table.patch) + * + * @param string $tableId + * ID of the table that is being updated. + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool replaceViewDefinition + * Should the view definition also be updated? The specified view definition replaces the existing + * one. Only a view can be updated with a new definition. + * @return Google_Service_Fusiontables_Table + */ + public function patch($tableId, Google_Service_Fusiontables_Table $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Fusiontables_Table"); + } + /** + * Updates an existing table. Unless explicitly requested, only the name, + * description, and attribution will be updated. (table.update) + * + * @param string $tableId + * ID of the table that is being updated. + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool replaceViewDefinition + * Should the view definition also be updated? The specified view definition replaces the existing + * one. Only a view can be updated with a new definition. + * @return Google_Service_Fusiontables_Table + */ + public function update($tableId, Google_Service_Fusiontables_Table $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Fusiontables_Table"); + } +} + +/** + * The "task" collection of methods. + * Typical usage is: + * + * $fusiontablesService = new Google_Service_Fusiontables(...); + * $task = $fusiontablesService->task; + * + */ +class Google_Service_Fusiontables_Task_Resource extends Google_Service_Resource +{ + + /** + * Deletes the task, unless already started. (task.delete) + * + * @param string $tableId + * Table from which the task is being deleted. + * @param string $taskId + * + * @param array $optParams Optional parameters. + */ + public function delete($tableId, $taskId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'taskId' => $taskId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a specific task by its id. (task.get) + * + * @param string $tableId + * Table to which the task belongs. + * @param string $taskId + * + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Task + */ + public function get($tableId, $taskId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'taskId' => $taskId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Fusiontables_Task"); + } + /** + * Retrieves a list of tasks. (task.listTask) + * + * @param string $tableId + * Table whose tasks are being listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * + * @opt_param string startIndex + * + * @opt_param string maxResults + * Maximum number of columns to return. Optional. Default is 5. + * @return Google_Service_Fusiontables_TaskList + */ + public function listTask($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Fusiontables_TaskList"); + } +} + +/** + * The "template" collection of methods. + * Typical usage is: + * + * $fusiontablesService = new Google_Service_Fusiontables(...); + * $template = $fusiontablesService->template; + * + */ +class Google_Service_Fusiontables_Template_Resource extends Google_Service_Resource +{ + + /** + * Deletes a template (template.delete) + * + * @param string $tableId + * Table from which the template is being deleted + * @param int $templateId + * Identifier for the template which is being deleted + * @param array $optParams Optional parameters. + */ + public function delete($tableId, $templateId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'templateId' => $templateId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a specific template by its id (template.get) + * + * @param string $tableId + * Table to which the template belongs + * @param int $templateId + * Identifier for the template that is being requested + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Template + */ + public function get($tableId, $templateId, $optParams = array()) + { + $params = array('tableId' => $tableId, 'templateId' => $templateId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Fusiontables_Template"); + } + /** + * Creates a new template for the table. (template.insert) + * + * @param string $tableId + * Table for which a new template is being created + * @param Google_Template $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Template + */ + public function insert($tableId, Google_Service_Fusiontables_Template $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Fusiontables_Template"); + } + /** + * Retrieves a list of templates. (template.listTemplate) + * + * @param string $tableId + * Identifier for the table whose templates are being requested + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Continuation token specifying which results page to return. Optional. + * @opt_param string maxResults + * Maximum number of templates to return. Optional. Default is 5. + * @return Google_Service_Fusiontables_TemplateList + */ + public function listTemplate($tableId, $optParams = array()) + { + $params = array('tableId' => $tableId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Fusiontables_TemplateList"); + } + /** + * Updates an existing template. This method supports patch semantics. + * (template.patch) + * + * @param string $tableId + * Table to which the updated template belongs + * @param int $templateId + * Identifier for the template that is being updated + * @param Google_Template $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Template + */ + public function patch($tableId, $templateId, Google_Service_Fusiontables_Template $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'templateId' => $templateId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Fusiontables_Template"); + } + /** + * Updates an existing template (template.update) + * + * @param string $tableId + * Table to which the updated template belongs + * @param int $templateId + * Identifier for the template that is being updated + * @param Google_Template $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Fusiontables_Template + */ + public function update($tableId, $templateId, Google_Service_Fusiontables_Template $postBody, $optParams = array()) + { + $params = array('tableId' => $tableId, 'templateId' => $templateId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Fusiontables_Template"); + } +} + + + + +class Google_Service_Fusiontables_Bucket extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $icon; + public $max; + public $min; + public $opacity; + public $weight; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setIcon($icon) + { + $this->icon = $icon; + } + + public function getIcon() + { + return $this->icon; + } + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } + + public function setOpacity($opacity) + { + $this->opacity = $opacity; + } + + public function getOpacity() + { + return $this->opacity; + } + + public function setWeight($weight) + { + $this->weight = $weight; + } + + public function getWeight() + { + return $this->weight; + } +} + +class Google_Service_Fusiontables_Column extends Google_Model +{ + protected $internal_gapi_mappings = array( + "graphPredicate" => "graph_predicate", + ); + protected $baseColumnType = 'Google_Service_Fusiontables_ColumnBaseColumn'; + protected $baseColumnDataType = ''; + public $columnId; + public $description; + public $graphPredicate; + public $kind; + public $name; + public $type; + + public function setBaseColumn(Google_Service_Fusiontables_ColumnBaseColumn $baseColumn) + { + $this->baseColumn = $baseColumn; + } + + public function getBaseColumn() + { + return $this->baseColumn; + } + + public function setColumnId($columnId) + { + $this->columnId = $columnId; + } + + public function getColumnId() + { + return $this->columnId; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setGraphPredicate($graphPredicate) + { + $this->graphPredicate = $graphPredicate; + } + + public function getGraphPredicate() + { + return $this->graphPredicate; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Fusiontables_ColumnBaseColumn extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnId; + public $tableIndex; + + public function setColumnId($columnId) + { + $this->columnId = $columnId; + } + + public function getColumnId() + { + return $this->columnId; + } + + public function setTableIndex($tableIndex) + { + $this->tableIndex = $tableIndex; + } + + public function getTableIndex() + { + return $this->tableIndex; + } +} + +class Google_Service_Fusiontables_ColumnList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Fusiontables_Column'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Fusiontables_Geometry extends Google_Collection +{ + protected $collection_key = 'geometries'; + protected $internal_gapi_mappings = array( + ); + public $geometries; + public $geometry; + public $type; + + public function setGeometries($geometries) + { + $this->geometries = $geometries; + } + + public function getGeometries() + { + return $this->geometries; + } + + public function setGeometry($geometry) + { + $this->geometry = $geometry; + } + + public function getGeometry() + { + return $this->geometry; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Fusiontables_Import extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $numRowsReceived; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNumRowsReceived($numRowsReceived) + { + $this->numRowsReceived = $numRowsReceived; + } + + public function getNumRowsReceived() + { + return $this->numRowsReceived; + } +} + +class Google_Service_Fusiontables_Line extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + public $type; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Fusiontables_LineStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $strokeColor; + protected $strokeColorStylerType = 'Google_Service_Fusiontables_StyleFunction'; + protected $strokeColorStylerDataType = ''; + public $strokeOpacity; + public $strokeWeight; + protected $strokeWeightStylerType = 'Google_Service_Fusiontables_StyleFunction'; + protected $strokeWeightStylerDataType = ''; + + public function setStrokeColor($strokeColor) + { + $this->strokeColor = $strokeColor; + } + + public function getStrokeColor() + { + return $this->strokeColor; + } + + public function setStrokeColorStyler(Google_Service_Fusiontables_StyleFunction $strokeColorStyler) + { + $this->strokeColorStyler = $strokeColorStyler; + } + + public function getStrokeColorStyler() + { + return $this->strokeColorStyler; + } + + public function setStrokeOpacity($strokeOpacity) + { + $this->strokeOpacity = $strokeOpacity; + } + + public function getStrokeOpacity() + { + return $this->strokeOpacity; + } + + public function setStrokeWeight($strokeWeight) + { + $this->strokeWeight = $strokeWeight; + } + + public function getStrokeWeight() + { + return $this->strokeWeight; + } + + public function setStrokeWeightStyler(Google_Service_Fusiontables_StyleFunction $strokeWeightStyler) + { + $this->strokeWeightStyler = $strokeWeightStyler; + } + + public function getStrokeWeightStyler() + { + return $this->strokeWeightStyler; + } +} + +class Google_Service_Fusiontables_Point extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + public $type; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Fusiontables_PointStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $iconName; + protected $iconStylerType = 'Google_Service_Fusiontables_StyleFunction'; + protected $iconStylerDataType = ''; + + public function setIconName($iconName) + { + $this->iconName = $iconName; + } + + public function getIconName() + { + return $this->iconName; + } + + public function setIconStyler(Google_Service_Fusiontables_StyleFunction $iconStyler) + { + $this->iconStyler = $iconStyler; + } + + public function getIconStyler() + { + return $this->iconStyler; + } +} + +class Google_Service_Fusiontables_Polygon extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + public $type; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Fusiontables_PolygonStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $fillColor; + protected $fillColorStylerType = 'Google_Service_Fusiontables_StyleFunction'; + protected $fillColorStylerDataType = ''; + public $fillOpacity; + public $strokeColor; + protected $strokeColorStylerType = 'Google_Service_Fusiontables_StyleFunction'; + protected $strokeColorStylerDataType = ''; + public $strokeOpacity; + public $strokeWeight; + protected $strokeWeightStylerType = 'Google_Service_Fusiontables_StyleFunction'; + protected $strokeWeightStylerDataType = ''; + + public function setFillColor($fillColor) + { + $this->fillColor = $fillColor; + } + + public function getFillColor() + { + return $this->fillColor; + } + + public function setFillColorStyler(Google_Service_Fusiontables_StyleFunction $fillColorStyler) + { + $this->fillColorStyler = $fillColorStyler; + } + + public function getFillColorStyler() + { + return $this->fillColorStyler; + } + + public function setFillOpacity($fillOpacity) + { + $this->fillOpacity = $fillOpacity; + } + + public function getFillOpacity() + { + return $this->fillOpacity; + } + + public function setStrokeColor($strokeColor) + { + $this->strokeColor = $strokeColor; + } + + public function getStrokeColor() + { + return $this->strokeColor; + } + + public function setStrokeColorStyler(Google_Service_Fusiontables_StyleFunction $strokeColorStyler) + { + $this->strokeColorStyler = $strokeColorStyler; + } + + public function getStrokeColorStyler() + { + return $this->strokeColorStyler; + } + + public function setStrokeOpacity($strokeOpacity) + { + $this->strokeOpacity = $strokeOpacity; + } + + public function getStrokeOpacity() + { + return $this->strokeOpacity; + } + + public function setStrokeWeight($strokeWeight) + { + $this->strokeWeight = $strokeWeight; + } + + public function getStrokeWeight() + { + return $this->strokeWeight; + } + + public function setStrokeWeightStyler(Google_Service_Fusiontables_StyleFunction $strokeWeightStyler) + { + $this->strokeWeightStyler = $strokeWeightStyler; + } + + public function getStrokeWeightStyler() + { + return $this->strokeWeightStyler; + } +} + +class Google_Service_Fusiontables_Sqlresponse extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + public $columns; + public $kind; + public $rows; + + public function setColumns($columns) + { + $this->columns = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } +} + +class Google_Service_Fusiontables_StyleFunction extends Google_Collection +{ + protected $collection_key = 'buckets'; + protected $internal_gapi_mappings = array( + ); + protected $bucketsType = 'Google_Service_Fusiontables_Bucket'; + protected $bucketsDataType = 'array'; + public $columnName; + protected $gradientType = 'Google_Service_Fusiontables_StyleFunctionGradient'; + protected $gradientDataType = ''; + public $kind; + + public function setBuckets($buckets) + { + $this->buckets = $buckets; + } + + public function getBuckets() + { + return $this->buckets; + } + + public function setColumnName($columnName) + { + $this->columnName = $columnName; + } + + public function getColumnName() + { + return $this->columnName; + } + + public function setGradient(Google_Service_Fusiontables_StyleFunctionGradient $gradient) + { + $this->gradient = $gradient; + } + + public function getGradient() + { + return $this->gradient; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Fusiontables_StyleFunctionGradient extends Google_Collection +{ + protected $collection_key = 'colors'; + protected $internal_gapi_mappings = array( + ); + protected $colorsType = 'Google_Service_Fusiontables_StyleFunctionGradientColors'; + protected $colorsDataType = 'array'; + public $max; + public $min; + + public function setColors($colors) + { + $this->colors = $colors; + } + + public function getColors() + { + return $this->colors; + } + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } +} + +class Google_Service_Fusiontables_StyleFunctionGradientColors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $opacity; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setOpacity($opacity) + { + $this->opacity = $opacity; + } + + public function getOpacity() + { + return $this->opacity; + } +} + +class Google_Service_Fusiontables_StyleSetting extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $markerOptionsType = 'Google_Service_Fusiontables_PointStyle'; + protected $markerOptionsDataType = ''; + public $name; + protected $polygonOptionsType = 'Google_Service_Fusiontables_PolygonStyle'; + protected $polygonOptionsDataType = ''; + protected $polylineOptionsType = 'Google_Service_Fusiontables_LineStyle'; + protected $polylineOptionsDataType = ''; + public $styleId; + public $tableId; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMarkerOptions(Google_Service_Fusiontables_PointStyle $markerOptions) + { + $this->markerOptions = $markerOptions; + } + + public function getMarkerOptions() + { + return $this->markerOptions; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPolygonOptions(Google_Service_Fusiontables_PolygonStyle $polygonOptions) + { + $this->polygonOptions = $polygonOptions; + } + + public function getPolygonOptions() + { + return $this->polygonOptions; + } + + public function setPolylineOptions(Google_Service_Fusiontables_LineStyle $polylineOptions) + { + $this->polylineOptions = $polylineOptions; + } + + public function getPolylineOptions() + { + return $this->polylineOptions; + } + + public function setStyleId($styleId) + { + $this->styleId = $styleId; + } + + public function getStyleId() + { + return $this->styleId; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } +} + +class Google_Service_Fusiontables_StyleSettingList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Fusiontables_StyleSetting'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Fusiontables_Table extends Google_Collection +{ + protected $collection_key = 'columns'; + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $attributionLink; + public $baseTableIds; + protected $columnsType = 'Google_Service_Fusiontables_Column'; + protected $columnsDataType = 'array'; + public $description; + public $isExportable; + public $kind; + public $name; + public $sql; + public $tableId; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setAttributionLink($attributionLink) + { + $this->attributionLink = $attributionLink; + } + + public function getAttributionLink() + { + return $this->attributionLink; + } + + public function setBaseTableIds($baseTableIds) + { + $this->baseTableIds = $baseTableIds; + } + + public function getBaseTableIds() + { + return $this->baseTableIds; + } + + public function setColumns($columns) + { + $this->columns = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setIsExportable($isExportable) + { + $this->isExportable = $isExportable; + } + + public function getIsExportable() + { + return $this->isExportable; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSql($sql) + { + $this->sql = $sql; + } + + public function getSql() + { + return $this->sql; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } +} + +class Google_Service_Fusiontables_TableList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Fusiontables_Table'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Fusiontables_Task extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $progress; + public $started; + public $taskId; + public $type; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProgress($progress) + { + $this->progress = $progress; + } + + public function getProgress() + { + return $this->progress; + } + + public function setStarted($started) + { + $this->started = $started; + } + + public function getStarted() + { + return $this->started; + } + + public function setTaskId($taskId) + { + $this->taskId = $taskId; + } + + public function getTaskId() + { + return $this->taskId; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Fusiontables_TaskList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Fusiontables_Task'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Fusiontables_Template extends Google_Collection +{ + protected $collection_key = 'automaticColumnNames'; + protected $internal_gapi_mappings = array( + ); + public $automaticColumnNames; + public $body; + public $kind; + public $name; + public $tableId; + public $templateId; + + public function setAutomaticColumnNames($automaticColumnNames) + { + $this->automaticColumnNames = $automaticColumnNames; + } + + public function getAutomaticColumnNames() + { + return $this->automaticColumnNames; + } + + public function setBody($body) + { + $this->body = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setTableId($tableId) + { + $this->tableId = $tableId; + } + + public function getTableId() + { + return $this->tableId; + } + + public function setTemplateId($templateId) + { + $this->templateId = $templateId; + } + + public function getTemplateId() + { + return $this->templateId; + } +} + +class Google_Service_Fusiontables_TemplateList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Fusiontables_Template'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Games.php b/vendor/google/apiclient/src/Google/Service/Games.php new file mode 100644 index 0000000..900c046 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Games.php @@ -0,0 +1,8167 @@ + + * The API for Google Play Game Services. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Games extends Google_Service +{ + /** View and manage its own configuration data in your Google Drive. */ + const DRIVE_APPDATA = "https://www.googleapis.com/auth/drive.appdata"; + /** Share your Google+ profile information and view and manage your game activity. */ + const GAMES = "https://www.googleapis.com/auth/games"; + /** Know your basic profile info and list of people in your circles.. */ + const PLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; + + public $achievementDefinitions; + public $achievements; + public $applications; + public $events; + public $leaderboards; + public $metagame; + public $players; + public $pushtokens; + public $questMilestones; + public $quests; + public $revisions; + public $rooms; + public $scores; + public $snapshots; + public $turnBasedMatches; + + + /** + * Constructs the internal representation of the Games service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'games/v1/'; + $this->version = 'v1'; + $this->serviceName = 'games'; + + $this->achievementDefinitions = new Google_Service_Games_AchievementDefinitions_Resource( + $this, + $this->serviceName, + 'achievementDefinitions', + array( + 'methods' => array( + 'list' => array( + 'path' => 'achievements', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->achievements = new Google_Service_Games_Achievements_Resource( + $this, + $this->serviceName, + 'achievements', + array( + 'methods' => array( + 'increment' => array( + 'path' => 'achievements/{achievementId}/increment', + 'httpMethod' => 'POST', + 'parameters' => array( + 'achievementId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'stepsToIncrement' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'requestId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'players/{playerId}/achievements', + 'httpMethod' => 'GET', + 'parameters' => array( + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'state' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'reveal' => array( + 'path' => 'achievements/{achievementId}/reveal', + 'httpMethod' => 'POST', + 'parameters' => array( + 'achievementId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setStepsAtLeast' => array( + 'path' => 'achievements/{achievementId}/setStepsAtLeast', + 'httpMethod' => 'POST', + 'parameters' => array( + 'achievementId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'steps' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'unlock' => array( + 'path' => 'achievements/{achievementId}/unlock', + 'httpMethod' => 'POST', + 'parameters' => array( + 'achievementId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'updateMultiple' => array( + 'path' => 'achievements/updateMultiple', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->applications = new Google_Service_Games_Applications_Resource( + $this, + $this->serviceName, + 'applications', + array( + 'methods' => array( + 'get' => array( + 'path' => 'applications/{applicationId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'applicationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'platformType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'played' => array( + 'path' => 'applications/played', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->events = new Google_Service_Games_Events_Resource( + $this, + $this->serviceName, + 'events', + array( + 'methods' => array( + 'listByPlayer' => array( + 'path' => 'events', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'listDefinitions' => array( + 'path' => 'eventDefinitions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'record' => array( + 'path' => 'events', + 'httpMethod' => 'POST', + 'parameters' => array( + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->leaderboards = new Google_Service_Games_Leaderboards_Resource( + $this, + $this->serviceName, + 'leaderboards', + array( + 'methods' => array( + 'get' => array( + 'path' => 'leaderboards/{leaderboardId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'leaderboards', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->metagame = new Google_Service_Games_Metagame_Resource( + $this, + $this->serviceName, + 'metagame', + array( + 'methods' => array( + 'getMetagameConfig' => array( + 'path' => 'metagameConfig', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'listCategoriesByPlayer' => array( + 'path' => 'players/{playerId}/categories/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->players = new Google_Service_Games_Players_Resource( + $this, + $this->serviceName, + 'players', + array( + 'methods' => array( + 'get' => array( + 'path' => 'players/{playerId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'players/me/players/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->pushtokens = new Google_Service_Games_Pushtokens_Resource( + $this, + $this->serviceName, + 'pushtokens', + array( + 'methods' => array( + 'remove' => array( + 'path' => 'pushtokens/remove', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'update' => array( + 'path' => 'pushtokens', + 'httpMethod' => 'PUT', + 'parameters' => array(), + ), + ) + ) + ); + $this->questMilestones = new Google_Service_Games_QuestMilestones_Resource( + $this, + $this->serviceName, + 'questMilestones', + array( + 'methods' => array( + 'claim' => array( + 'path' => 'quests/{questId}/milestones/{milestoneId}/claim', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'questId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'milestoneId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'requestId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->quests = new Google_Service_Games_Quests_Resource( + $this, + $this->serviceName, + 'quests', + array( + 'methods' => array( + 'accept' => array( + 'path' => 'quests/{questId}/accept', + 'httpMethod' => 'POST', + 'parameters' => array( + 'questId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'players/{playerId}/quests', + 'httpMethod' => 'GET', + 'parameters' => array( + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->revisions = new Google_Service_Games_Revisions_Resource( + $this, + $this->serviceName, + 'revisions', + array( + 'methods' => array( + 'check' => array( + 'path' => 'revisions/check', + 'httpMethod' => 'GET', + 'parameters' => array( + 'clientRevision' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->rooms = new Google_Service_Games_Rooms_Resource( + $this, + $this->serviceName, + 'rooms', + array( + 'methods' => array( + 'create' => array( + 'path' => 'rooms/create', + 'httpMethod' => 'POST', + 'parameters' => array( + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'decline' => array( + 'path' => 'rooms/{roomId}/decline', + 'httpMethod' => 'POST', + 'parameters' => array( + 'roomId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'dismiss' => array( + 'path' => 'rooms/{roomId}/dismiss', + 'httpMethod' => 'POST', + 'parameters' => array( + 'roomId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'rooms/{roomId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'roomId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'join' => array( + 'path' => 'rooms/{roomId}/join', + 'httpMethod' => 'POST', + 'parameters' => array( + 'roomId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'leave' => array( + 'path' => 'rooms/{roomId}/leave', + 'httpMethod' => 'POST', + 'parameters' => array( + 'roomId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'rooms', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'reportStatus' => array( + 'path' => 'rooms/{roomId}/reportstatus', + 'httpMethod' => 'POST', + 'parameters' => array( + 'roomId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->scores = new Google_Service_Games_Scores_Resource( + $this, + $this->serviceName, + 'scores', + array( + 'methods' => array( + 'get' => array( + 'path' => 'players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'timeSpan' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeRankType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'leaderboards/{leaderboardId}/scores/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'timeSpan' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'listWindow' => array( + 'path' => 'leaderboards/{leaderboardId}/window/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'timeSpan' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'returnTopIfAbsent' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'resultsAbove' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'submit' => array( + 'path' => 'leaderboards/{leaderboardId}/scores', + 'httpMethod' => 'POST', + 'parameters' => array( + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'score' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'scoreTag' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'submitMultiple' => array( + 'path' => 'leaderboards/scores', + 'httpMethod' => 'POST', + 'parameters' => array( + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->snapshots = new Google_Service_Games_Snapshots_Resource( + $this, + $this->serviceName, + 'snapshots', + array( + 'methods' => array( + 'get' => array( + 'path' => 'snapshots/{snapshotId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'snapshotId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'players/{playerId}/snapshots', + 'httpMethod' => 'GET', + 'parameters' => array( + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->turnBasedMatches = new Google_Service_Games_TurnBasedMatches_Resource( + $this, + $this->serviceName, + 'turnBasedMatches', + array( + 'methods' => array( + 'cancel' => array( + 'path' => 'turnbasedmatches/{matchId}/cancel', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'create' => array( + 'path' => 'turnbasedmatches/create', + 'httpMethod' => 'POST', + 'parameters' => array( + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'decline' => array( + 'path' => 'turnbasedmatches/{matchId}/decline', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'dismiss' => array( + 'path' => 'turnbasedmatches/{matchId}/dismiss', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'finish' => array( + 'path' => 'turnbasedmatches/{matchId}/finish', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'turnbasedmatches/{matchId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeMatchData' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'join' => array( + 'path' => 'turnbasedmatches/{matchId}/join', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'leave' => array( + 'path' => 'turnbasedmatches/{matchId}/leave', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'leaveTurn' => array( + 'path' => 'turnbasedmatches/{matchId}/leaveTurn', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'matchVersion' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pendingParticipantId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'turnbasedmatches', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxCompletedMatches' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeMatchData' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'rematch' => array( + 'path' => 'turnbasedmatches/{matchId}/rematch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'requestId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'sync' => array( + 'path' => 'turnbasedmatches/sync', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxCompletedMatches' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeMatchData' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'takeTurn' => array( + 'path' => 'turnbasedmatches/{matchId}/turn', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'matchId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "achievementDefinitions" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $achievementDefinitions = $gamesService->achievementDefinitions; + * + */ +class Google_Service_Games_AchievementDefinitions_Resource extends Google_Service_Resource +{ + + /** + * Lists all the achievement definitions for your application. + * (achievementDefinitions.listAchievementDefinitions) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of achievement resources to return in the response, used for paging. For any + * response, the actual number of achievement resources returned may be less than the specified + * maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_AchievementDefinitionsListResponse + */ + public function listAchievementDefinitions($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_AchievementDefinitionsListResponse"); + } +} + +/** + * The "achievements" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $achievements = $gamesService->achievements; + * + */ +class Google_Service_Games_Achievements_Resource extends Google_Service_Resource +{ + + /** + * Increments the steps of the achievement with the given ID for the currently + * authenticated player. (achievements.increment) + * + * @param string $achievementId + * The ID of the achievement used by this method. + * @param int $stepsToIncrement + * The number of steps to increment. + * @param array $optParams Optional parameters. + * + * @opt_param string requestId + * A randomly generated numeric ID for each request specified by the caller. This number is used at + * the server to ensure that the request is handled correctly across retries. + * @return Google_Service_Games_AchievementIncrementResponse + */ + public function increment($achievementId, $stepsToIncrement, $optParams = array()) + { + $params = array('achievementId' => $achievementId, 'stepsToIncrement' => $stepsToIncrement); + $params = array_merge($params, $optParams); + return $this->call('increment', array($params), "Google_Service_Games_AchievementIncrementResponse"); + } + /** + * Lists the progress for all your application's achievements for the currently + * authenticated player. (achievements.listAchievements) + * + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param string state + * Tells the server to return only achievements with the specified state. If this parameter isn't + * specified, all achievements are returned. + * @opt_param int maxResults + * The maximum number of achievement resources to return in the response, used for paging. For any + * response, the actual number of achievement resources returned may be less than the specified + * maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_PlayerAchievementListResponse + */ + public function listAchievements($playerId, $optParams = array()) + { + $params = array('playerId' => $playerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_PlayerAchievementListResponse"); + } + /** + * Sets the state of the achievement with the given ID to REVEALED for the + * currently authenticated player. (achievements.reveal) + * + * @param string $achievementId + * The ID of the achievement used by this method. + * @param array $optParams Optional parameters. + * @return Google_Service_Games_AchievementRevealResponse + */ + public function reveal($achievementId, $optParams = array()) + { + $params = array('achievementId' => $achievementId); + $params = array_merge($params, $optParams); + return $this->call('reveal', array($params), "Google_Service_Games_AchievementRevealResponse"); + } + /** + * Sets the steps for the currently authenticated player towards unlocking an + * achievement. If the steps parameter is less than the current number of steps + * that the player already gained for the achievement, the achievement is not + * modified. (achievements.setStepsAtLeast) + * + * @param string $achievementId + * The ID of the achievement used by this method. + * @param int $steps + * The minimum value to set the steps to. + * @param array $optParams Optional parameters. + * @return Google_Service_Games_AchievementSetStepsAtLeastResponse + */ + public function setStepsAtLeast($achievementId, $steps, $optParams = array()) + { + $params = array('achievementId' => $achievementId, 'steps' => $steps); + $params = array_merge($params, $optParams); + return $this->call('setStepsAtLeast', array($params), "Google_Service_Games_AchievementSetStepsAtLeastResponse"); + } + /** + * Unlocks this achievement for the currently authenticated player. + * (achievements.unlock) + * + * @param string $achievementId + * The ID of the achievement used by this method. + * @param array $optParams Optional parameters. + * @return Google_Service_Games_AchievementUnlockResponse + */ + public function unlock($achievementId, $optParams = array()) + { + $params = array('achievementId' => $achievementId); + $params = array_merge($params, $optParams); + return $this->call('unlock', array($params), "Google_Service_Games_AchievementUnlockResponse"); + } + /** + * Updates multiple achievements for the currently authenticated player. + * (achievements.updateMultiple) + * + * @param Google_AchievementUpdateMultipleRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Games_AchievementUpdateMultipleResponse + */ + public function updateMultiple(Google_Service_Games_AchievementUpdateMultipleRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('updateMultiple', array($params), "Google_Service_Games_AchievementUpdateMultipleResponse"); + } +} + +/** + * The "applications" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $applications = $gamesService->applications; + * + */ +class Google_Service_Games_Applications_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the metadata of the application with the given ID. If the requested + * application is not available for the specified platformType, the returned + * response will not include any instance data. (applications.get) + * + * @param string $applicationId + * The application being requested. + * @param array $optParams Optional parameters. + * + * @opt_param string platformType + * Restrict application details returned to the specific platform. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Application + */ + public function get($applicationId, $optParams = array()) + { + $params = array('applicationId' => $applicationId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_Application"); + } + /** + * Indicate that the the currently authenticated user is playing your + * application. (applications.played) + * + * @param array $optParams Optional parameters. + */ + public function played($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('played', array($params)); + } +} + +/** + * The "events" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $events = $gamesService->events; + * + */ +class Google_Service_Games_Events_Resource extends Google_Service_Resource +{ + + /** + * Returns a list showing the current progress on events in this application for + * the currently authenticated user. (events.listByPlayer) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of events to return in the response, used for paging. For any response, the + * actual number of events to return may be less than the specified maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_PlayerEventListResponse + */ + public function listByPlayer($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('listByPlayer', array($params), "Google_Service_Games_PlayerEventListResponse"); + } + /** + * Returns a list of the event definitions in this application. + * (events.listDefinitions) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of event definitions to return in the response, used for paging. For any + * response, the actual number of event definitions to return may be less than the specified + * maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_EventDefinitionListResponse + */ + public function listDefinitions($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('listDefinitions', array($params), "Google_Service_Games_EventDefinitionListResponse"); + } + /** + * Records a batch of changes to the number of times events have occurred for + * the currently authenticated user of this application. (events.record) + * + * @param Google_EventRecordRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_EventUpdateResponse + */ + public function record(Google_Service_Games_EventRecordRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('record', array($params), "Google_Service_Games_EventUpdateResponse"); + } +} + +/** + * The "leaderboards" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $leaderboards = $gamesService->leaderboards; + * + */ +class Google_Service_Games_Leaderboards_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the metadata of the leaderboard with the given ID. + * (leaderboards.get) + * + * @param string $leaderboardId + * The ID of the leaderboard. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Leaderboard + */ + public function get($leaderboardId, $optParams = array()) + { + $params = array('leaderboardId' => $leaderboardId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_Leaderboard"); + } + /** + * Lists all the leaderboard metadata for your application. + * (leaderboards.listLeaderboards) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of leaderboards to return in the response. For any response, the actual + * number of leaderboards returned may be less than the specified maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_LeaderboardListResponse + */ + public function listLeaderboards($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_LeaderboardListResponse"); + } +} + +/** + * The "metagame" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $metagame = $gamesService->metagame; + * + */ +class Google_Service_Games_Metagame_Resource extends Google_Service_Resource +{ + + /** + * Return the metagame configuration data for the calling application. + * (metagame.getMetagameConfig) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Games_MetagameConfig + */ + public function getMetagameConfig($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('getMetagameConfig', array($params), "Google_Service_Games_MetagameConfig"); + } + /** + * List play data aggregated per category for the player corresponding to + * playerId. (metagame.listCategoriesByPlayer) + * + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param string $collection + * The collection of categories for which data will be returned. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of category resources to return in the response, used for paging. For any + * response, the actual number of category resources returned may be less than the specified + * maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_CategoryListResponse + */ + public function listCategoriesByPlayer($playerId, $collection, $optParams = array()) + { + $params = array('playerId' => $playerId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('listCategoriesByPlayer', array($params), "Google_Service_Games_CategoryListResponse"); + } +} + +/** + * The "players" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $players = $gamesService->players; + * + */ +class Google_Service_Games_Players_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the Player resource with the given ID. To retrieve the player for + * the currently authenticated user, set playerId to me. (players.get) + * + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Player + */ + public function get($playerId, $optParams = array()) + { + $params = array('playerId' => $playerId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_Player"); + } + /** + * Get the collection of players for the currently authenticated user. + * (players.listPlayers) + * + * @param string $collection + * Collection of players being retrieved + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of player resources to return in the response, used for paging. For any + * response, the actual number of player resources returned may be less than the specified + * maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_PlayerListResponse + */ + public function listPlayers($collection, $optParams = array()) + { + $params = array('collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_PlayerListResponse"); + } +} + +/** + * The "pushtokens" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $pushtokens = $gamesService->pushtokens; + * + */ +class Google_Service_Games_Pushtokens_Resource extends Google_Service_Resource +{ + + /** + * Removes a push token for the current user and application. Removing a non- + * existent push token will report success. (pushtokens.remove) + * + * @param Google_PushTokenId $postBody + * @param array $optParams Optional parameters. + */ + public function remove(Google_Service_Games_PushTokenId $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('remove', array($params)); + } + /** + * Registers a push token for the current user and application. + * (pushtokens.update) + * + * @param Google_PushToken $postBody + * @param array $optParams Optional parameters. + */ + public function update(Google_Service_Games_PushToken $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params)); + } +} + +/** + * The "questMilestones" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $questMilestones = $gamesService->questMilestones; + * + */ +class Google_Service_Games_QuestMilestones_Resource extends Google_Service_Resource +{ + + /** + * Report that a reward for the milestone corresponding to milestoneId for the + * quest corresponding to questId has been claimed by the currently authorized + * user. (questMilestones.claim) + * + * @param string $questId + * The ID of the quest. + * @param string $milestoneId + * The ID of the milestone. + * @param string $requestId + * A numeric ID to ensure that the request is handled correctly across retries. Your client + * application must generate this ID randomly. + * @param array $optParams Optional parameters. + */ + public function claim($questId, $milestoneId, $requestId, $optParams = array()) + { + $params = array('questId' => $questId, 'milestoneId' => $milestoneId, 'requestId' => $requestId); + $params = array_merge($params, $optParams); + return $this->call('claim', array($params)); + } +} + +/** + * The "quests" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $quests = $gamesService->quests; + * + */ +class Google_Service_Games_Quests_Resource extends Google_Service_Resource +{ + + /** + * Indicates that the currently authorized user will participate in the quest. + * (quests.accept) + * + * @param string $questId + * The ID of the quest. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Quest + */ + public function accept($questId, $optParams = array()) + { + $params = array('questId' => $questId); + $params = array_merge($params, $optParams); + return $this->call('accept', array($params), "Google_Service_Games_Quest"); + } + /** + * Get a list of quests for your application and the currently authenticated + * player. (quests.listQuests) + * + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of quest resources to return in the response, used for paging. For any + * response, the actual number of quest resources returned may be less than the specified + * maxResults. Acceptable values are 1 to 50, inclusive. (Default: 50). + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_QuestListResponse + */ + public function listQuests($playerId, $optParams = array()) + { + $params = array('playerId' => $playerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_QuestListResponse"); + } +} + +/** + * The "revisions" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $revisions = $gamesService->revisions; + * + */ +class Google_Service_Games_Revisions_Resource extends Google_Service_Resource +{ + + /** + * Checks whether the games client is out of date. (revisions.check) + * + * @param string $clientRevision + * The revision of the client SDK used by your application. Format: + * [PLATFORM_TYPE]:[VERSION_NUMBER]. Possible values of PLATFORM_TYPE are: + - "ANDROID" - Client + * is running the Android SDK. + - "IOS" - Client is running the iOS SDK. + - "WEB_APP" - Client is + * running as a Web App. + * @param array $optParams Optional parameters. + * @return Google_Service_Games_RevisionCheckResponse + */ + public function check($clientRevision, $optParams = array()) + { + $params = array('clientRevision' => $clientRevision); + $params = array_merge($params, $optParams); + return $this->call('check', array($params), "Google_Service_Games_RevisionCheckResponse"); + } +} + +/** + * The "rooms" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $rooms = $gamesService->rooms; + * + */ +class Google_Service_Games_Rooms_Resource extends Google_Service_Resource +{ + + /** + * Create a room. For internal use by the Games SDK only. Calling this method + * directly is unsupported. (rooms.create) + * + * @param Google_RoomCreateRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Room + */ + public function create(Google_Service_Games_RoomCreateRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Games_Room"); + } + /** + * Decline an invitation to join a room. For internal use by the Games SDK only. + * Calling this method directly is unsupported. (rooms.decline) + * + * @param string $roomId + * The ID of the room. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Room + */ + public function decline($roomId, $optParams = array()) + { + $params = array('roomId' => $roomId); + $params = array_merge($params, $optParams); + return $this->call('decline', array($params), "Google_Service_Games_Room"); + } + /** + * Dismiss an invitation to join a room. For internal use by the Games SDK only. + * Calling this method directly is unsupported. (rooms.dismiss) + * + * @param string $roomId + * The ID of the room. + * @param array $optParams Optional parameters. + */ + public function dismiss($roomId, $optParams = array()) + { + $params = array('roomId' => $roomId); + $params = array_merge($params, $optParams); + return $this->call('dismiss', array($params)); + } + /** + * Get the data for a room. (rooms.get) + * + * @param string $roomId + * The ID of the room. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Room + */ + public function get($roomId, $optParams = array()) + { + $params = array('roomId' => $roomId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_Room"); + } + /** + * Join a room. For internal use by the Games SDK only. Calling this method + * directly is unsupported. (rooms.join) + * + * @param string $roomId + * The ID of the room. + * @param Google_RoomJoinRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Room + */ + public function join($roomId, Google_Service_Games_RoomJoinRequest $postBody, $optParams = array()) + { + $params = array('roomId' => $roomId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('join', array($params), "Google_Service_Games_Room"); + } + /** + * Leave a room. For internal use by the Games SDK only. Calling this method + * directly is unsupported. (rooms.leave) + * + * @param string $roomId + * The ID of the room. + * @param Google_RoomLeaveRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Room + */ + public function leave($roomId, Google_Service_Games_RoomLeaveRequest $postBody, $optParams = array()) + { + $params = array('roomId' => $roomId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('leave', array($params), "Google_Service_Games_Room"); + } + /** + * Returns invitations to join rooms. (rooms.listRooms) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of rooms to return in the response, used for paging. For any response, the + * actual number of rooms to return may be less than the specified maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_RoomList + */ + public function listRooms($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_RoomList"); + } + /** + * Updates sent by a client reporting the status of peers in a room. For + * internal use by the Games SDK only. Calling this method directly is + * unsupported. (rooms.reportStatus) + * + * @param string $roomId + * The ID of the room. + * @param Google_RoomP2PStatuses $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_RoomStatus + */ + public function reportStatus($roomId, Google_Service_Games_RoomP2PStatuses $postBody, $optParams = array()) + { + $params = array('roomId' => $roomId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('reportStatus', array($params), "Google_Service_Games_RoomStatus"); + } +} + +/** + * The "scores" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $scores = $gamesService->scores; + * + */ +class Google_Service_Games_Scores_Resource extends Google_Service_Resource +{ + + /** + * Get high scores, and optionally ranks, in leaderboards for the currently + * authenticated player. For a specific time span, leaderboardId can be set to + * ALL to retrieve data for all leaderboards in a given time span. NOTE: You + * cannot ask for 'ALL' leaderboards and 'ALL' timeSpans in the same request; + * only one parameter may be set to 'ALL'. (scores.get) + * + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param string $leaderboardId + * The ID of the leaderboard. Can be set to 'ALL' to retrieve data for all leaderboards for this + * application. + * @param string $timeSpan + * The time span for the scores and ranks you're requesting. + * @param array $optParams Optional parameters. + * + * @opt_param string includeRankType + * The types of ranks to return. If the parameter is omitted, no ranks will be returned. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param int maxResults + * The maximum number of leaderboard scores to return in the response. For any response, the actual + * number of leaderboard scores returned may be less than the specified maxResults. + * @opt_param string pageToken + * The token returned by the previous request. + * @return Google_Service_Games_PlayerLeaderboardScoreListResponse + */ + public function get($playerId, $leaderboardId, $timeSpan, $optParams = array()) + { + $params = array('playerId' => $playerId, 'leaderboardId' => $leaderboardId, 'timeSpan' => $timeSpan); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_PlayerLeaderboardScoreListResponse"); + } + /** + * Lists the scores in a leaderboard, starting from the top. (scores.listScores) + * + * @param string $leaderboardId + * The ID of the leaderboard. + * @param string $collection + * The collection of scores you're requesting. + * @param string $timeSpan + * The time span for the scores and ranks you're requesting. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param int maxResults + * The maximum number of leaderboard scores to return in the response. For any response, the actual + * number of leaderboard scores returned may be less than the specified maxResults. + * @opt_param string pageToken + * The token returned by the previous request. + * @return Google_Service_Games_LeaderboardScores + */ + public function listScores($leaderboardId, $collection, $timeSpan, $optParams = array()) + { + $params = array('leaderboardId' => $leaderboardId, 'collection' => $collection, 'timeSpan' => $timeSpan); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_LeaderboardScores"); + } + /** + * Lists the scores in a leaderboard around (and including) a player's score. + * (scores.listWindow) + * + * @param string $leaderboardId + * The ID of the leaderboard. + * @param string $collection + * The collection of scores you're requesting. + * @param string $timeSpan + * The time span for the scores and ranks you're requesting. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param bool returnTopIfAbsent + * True if the top scores should be returned when the player is not in the leaderboard. Defaults to + * true. + * @opt_param int resultsAbove + * The preferred number of scores to return above the player's score. More scores may be returned + * if the player is at the bottom of the leaderboard; fewer may be returned if the player is at the + * top. Must be less than or equal to maxResults. + * @opt_param int maxResults + * The maximum number of leaderboard scores to return in the response. For any response, the actual + * number of leaderboard scores returned may be less than the specified maxResults. + * @opt_param string pageToken + * The token returned by the previous request. + * @return Google_Service_Games_LeaderboardScores + */ + public function listWindow($leaderboardId, $collection, $timeSpan, $optParams = array()) + { + $params = array('leaderboardId' => $leaderboardId, 'collection' => $collection, 'timeSpan' => $timeSpan); + $params = array_merge($params, $optParams); + return $this->call('listWindow', array($params), "Google_Service_Games_LeaderboardScores"); + } + /** + * Submits a score to the specified leaderboard. (scores.submit) + * + * @param string $leaderboardId + * The ID of the leaderboard. + * @param string $score + * The score you're submitting. The submitted score is ignored if it is worse than a previously + * submitted score, where worse depends on the leaderboard sort order. The meaning of the score + * value depends on the leaderboard format type. For fixed-point, the score represents the raw + * value. For time, the score represents elapsed time in milliseconds. For currency, the score + * represents a value in micro units. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param string scoreTag + * Additional information about the score you're submitting. Values must contain no more than 64 + * URI-safe characters as defined by section 2.3 of RFC 3986. + * @return Google_Service_Games_PlayerScoreResponse + */ + public function submit($leaderboardId, $score, $optParams = array()) + { + $params = array('leaderboardId' => $leaderboardId, 'score' => $score); + $params = array_merge($params, $optParams); + return $this->call('submit', array($params), "Google_Service_Games_PlayerScoreResponse"); + } + /** + * Submits multiple scores to leaderboards. (scores.submitMultiple) + * + * @param Google_PlayerScoreSubmissionList $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_PlayerScoreListResponse + */ + public function submitMultiple(Google_Service_Games_PlayerScoreSubmissionList $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('submitMultiple', array($params), "Google_Service_Games_PlayerScoreListResponse"); + } +} + +/** + * The "snapshots" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $snapshots = $gamesService->snapshots; + * + */ +class Google_Service_Games_Snapshots_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the metadata for a given snapshot ID. (snapshots.get) + * + * @param string $snapshotId + * The ID of the snapshot. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_Snapshot + */ + public function get($snapshotId, $optParams = array()) + { + $params = array('snapshotId' => $snapshotId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_Snapshot"); + } + /** + * Retrieves a list of snapshots created by your application for the player + * corresponding to the player ID. (snapshots.listSnapshots) + * + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of snapshot resources to return in the response, used for paging. For any + * response, the actual number of snapshot resources returned may be less than the specified + * maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_SnapshotListResponse + */ + public function listSnapshots($playerId, $optParams = array()) + { + $params = array('playerId' => $playerId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_SnapshotListResponse"); + } +} + +/** + * The "turnBasedMatches" collection of methods. + * Typical usage is: + * + * $gamesService = new Google_Service_Games(...); + * $turnBasedMatches = $gamesService->turnBasedMatches; + * + */ +class Google_Service_Games_TurnBasedMatches_Resource extends Google_Service_Resource +{ + + /** + * Cancel a turn-based match. (turnBasedMatches.cancel) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + */ + public function cancel($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('cancel', array($params)); + } + /** + * Create a turn-based match. (turnBasedMatches.create) + * + * @param Google_TurnBasedMatchCreateRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatch + */ + public function create(Google_Service_Games_TurnBasedMatchCreateRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Decline an invitation to play a turn-based match. (turnBasedMatches.decline) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatch + */ + public function decline($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('decline', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Dismiss a turn-based match from the match list. The match will no longer show + * up in the list and will not generate notifications. + * (turnBasedMatches.dismiss) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + */ + public function dismiss($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('dismiss', array($params)); + } + /** + * Finish a turn-based match. Each player should make this call once, after all + * results are in. Only the player whose turn it is may make the first call to + * Finish, and can pass in the final match state. (turnBasedMatches.finish) + * + * @param string $matchId + * The ID of the match. + * @param Google_TurnBasedMatchResults $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatch + */ + public function finish($matchId, Google_Service_Games_TurnBasedMatchResults $postBody, $optParams = array()) + { + $params = array('matchId' => $matchId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('finish', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Get the data for a turn-based match. (turnBasedMatches.get) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param bool includeMatchData + * Get match data along with metadata. + * @return Google_Service_Games_TurnBasedMatch + */ + public function get($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Join a turn-based match. (turnBasedMatches.join) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatch + */ + public function join($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('join', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Leave a turn-based match when it is not the current player's turn, without + * canceling the match. (turnBasedMatches.leave) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatch + */ + public function leave($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('leave', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Leave a turn-based match during the current player's turn, without canceling + * the match. (turnBasedMatches.leaveTurn) + * + * @param string $matchId + * The ID of the match. + * @param int $matchVersion + * The version of the match being updated. + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param string pendingParticipantId + * The ID of another participant who should take their turn next. If not set, the match will wait + * for other player(s) to join via automatching; this is only valid if automatch criteria is set on + * the match with remaining slots for automatched players. + * @return Google_Service_Games_TurnBasedMatch + */ + public function leaveTurn($matchId, $matchVersion, $optParams = array()) + { + $params = array('matchId' => $matchId, 'matchVersion' => $matchVersion); + $params = array_merge($params, $optParams); + return $this->call('leaveTurn', array($params), "Google_Service_Games_TurnBasedMatch"); + } + /** + * Returns turn-based matches the player is or was involved in. + * (turnBasedMatches.listTurnBasedMatches) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxCompletedMatches + * The maximum number of completed or canceled matches to return in the response. If not set, all + * matches returned could be completed or canceled. + * @opt_param int maxResults + * The maximum number of matches to return in the response, used for paging. For any response, the + * actual number of matches to return may be less than the specified maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param bool includeMatchData + * True if match data should be returned in the response. Note that not all data will necessarily + * be returned if include_match_data is true; the server may decide to only return data for some of + * the matches to limit download size for the client. The remainder of the data for these matches + * will be retrievable on request. + * @return Google_Service_Games_TurnBasedMatchList + */ + public function listTurnBasedMatches($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Games_TurnBasedMatchList"); + } + /** + * Create a rematch of a match that was previously completed, with the same + * participants. This can be called by only one player on a match still in their + * list; the player must have called Finish first. Returns the newly created + * match; it will be the caller's turn. (turnBasedMatches.rematch) + * + * @param string $matchId + * The ID of the match. + * @param array $optParams Optional parameters. + * + * @opt_param string requestId + * A randomly generated numeric ID for each request specified by the caller. This number is used at + * the server to ensure that the request is handled correctly across retries. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatchRematch + */ + public function rematch($matchId, $optParams = array()) + { + $params = array('matchId' => $matchId); + $params = array_merge($params, $optParams); + return $this->call('rematch', array($params), "Google_Service_Games_TurnBasedMatchRematch"); + } + /** + * Returns turn-based matches the player is or was involved in that changed + * since the last sync call, with the least recent changes coming first. Matches + * that should be removed from the local cache will have a status of + * MATCH_DELETED. (turnBasedMatches.sync) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxCompletedMatches + * The maximum number of completed or canceled matches to return in the response. If not set, all + * matches returned could be completed or canceled. + * @opt_param int maxResults + * The maximum number of matches to return in the response, used for paging. For any response, the + * actual number of matches to return may be less than the specified maxResults. + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @opt_param bool includeMatchData + * True if match data should be returned in the response. Note that not all data will necessarily + * be returned if include_match_data is true; the server may decide to only return data for some of + * the matches to limit download size for the client. The remainder of the data for these matches + * will be retrievable on request. + * @return Google_Service_Games_TurnBasedMatchSync + */ + public function sync($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('sync', array($params), "Google_Service_Games_TurnBasedMatchSync"); + } + /** + * Commit the results of a player turn. (turnBasedMatches.takeTurn) + * + * @param string $matchId + * The ID of the match. + * @param Google_TurnBasedMatchTurn $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string language + * The preferred language to use for strings returned by this method. + * @return Google_Service_Games_TurnBasedMatch + */ + public function takeTurn($matchId, Google_Service_Games_TurnBasedMatchTurn $postBody, $optParams = array()) + { + $params = array('matchId' => $matchId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('takeTurn', array($params), "Google_Service_Games_TurnBasedMatch"); + } +} + + + + +class Google_Service_Games_AchievementDefinition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $achievementType; + public $description; + public $experiencePoints; + public $formattedTotalSteps; + public $id; + public $initialState; + public $isRevealedIconUrlDefault; + public $isUnlockedIconUrlDefault; + public $kind; + public $name; + public $revealedIconUrl; + public $totalSteps; + public $unlockedIconUrl; + + public function setAchievementType($achievementType) + { + $this->achievementType = $achievementType; + } + + public function getAchievementType() + { + return $this->achievementType; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setExperiencePoints($experiencePoints) + { + $this->experiencePoints = $experiencePoints; + } + + public function getExperiencePoints() + { + return $this->experiencePoints; + } + + public function setFormattedTotalSteps($formattedTotalSteps) + { + $this->formattedTotalSteps = $formattedTotalSteps; + } + + public function getFormattedTotalSteps() + { + return $this->formattedTotalSteps; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInitialState($initialState) + { + $this->initialState = $initialState; + } + + public function getInitialState() + { + return $this->initialState; + } + + public function setIsRevealedIconUrlDefault($isRevealedIconUrlDefault) + { + $this->isRevealedIconUrlDefault = $isRevealedIconUrlDefault; + } + + public function getIsRevealedIconUrlDefault() + { + return $this->isRevealedIconUrlDefault; + } + + public function setIsUnlockedIconUrlDefault($isUnlockedIconUrlDefault) + { + $this->isUnlockedIconUrlDefault = $isUnlockedIconUrlDefault; + } + + public function getIsUnlockedIconUrlDefault() + { + return $this->isUnlockedIconUrlDefault; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setRevealedIconUrl($revealedIconUrl) + { + $this->revealedIconUrl = $revealedIconUrl; + } + + public function getRevealedIconUrl() + { + return $this->revealedIconUrl; + } + + public function setTotalSteps($totalSteps) + { + $this->totalSteps = $totalSteps; + } + + public function getTotalSteps() + { + return $this->totalSteps; + } + + public function setUnlockedIconUrl($unlockedIconUrl) + { + $this->unlockedIconUrl = $unlockedIconUrl; + } + + public function getUnlockedIconUrl() + { + return $this->unlockedIconUrl; + } +} + +class Google_Service_Games_AchievementDefinitionsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_AchievementDefinition'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_AchievementIncrementResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentSteps; + public $kind; + public $newlyUnlocked; + + public function setCurrentSteps($currentSteps) + { + $this->currentSteps = $currentSteps; + } + + public function getCurrentSteps() + { + return $this->currentSteps; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNewlyUnlocked($newlyUnlocked) + { + $this->newlyUnlocked = $newlyUnlocked; + } + + public function getNewlyUnlocked() + { + return $this->newlyUnlocked; + } +} + +class Google_Service_Games_AchievementRevealResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentState; + public $kind; + + public function setCurrentState($currentState) + { + $this->currentState = $currentState; + } + + public function getCurrentState() + { + return $this->currentState; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_AchievementSetStepsAtLeastResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentSteps; + public $kind; + public $newlyUnlocked; + + public function setCurrentSteps($currentSteps) + { + $this->currentSteps = $currentSteps; + } + + public function getCurrentSteps() + { + return $this->currentSteps; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNewlyUnlocked($newlyUnlocked) + { + $this->newlyUnlocked = $newlyUnlocked; + } + + public function getNewlyUnlocked() + { + return $this->newlyUnlocked; + } +} + +class Google_Service_Games_AchievementUnlockResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $newlyUnlocked; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNewlyUnlocked($newlyUnlocked) + { + $this->newlyUnlocked = $newlyUnlocked; + } + + public function getNewlyUnlocked() + { + return $this->newlyUnlocked; + } +} + +class Google_Service_Games_AchievementUpdateMultipleRequest extends Google_Collection +{ + protected $collection_key = 'updates'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $updatesType = 'Google_Service_Games_AchievementUpdateRequest'; + protected $updatesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUpdates($updates) + { + $this->updates = $updates; + } + + public function getUpdates() + { + return $this->updates; + } +} + +class Google_Service_Games_AchievementUpdateMultipleResponse extends Google_Collection +{ + protected $collection_key = 'updatedAchievements'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $updatedAchievementsType = 'Google_Service_Games_AchievementUpdateResponse'; + protected $updatedAchievementsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUpdatedAchievements($updatedAchievements) + { + $this->updatedAchievements = $updatedAchievements; + } + + public function getUpdatedAchievements() + { + return $this->updatedAchievements; + } +} + +class Google_Service_Games_AchievementUpdateRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $achievementId; + protected $incrementPayloadType = 'Google_Service_Games_GamesAchievementIncrement'; + protected $incrementPayloadDataType = ''; + public $kind; + protected $setStepsAtLeastPayloadType = 'Google_Service_Games_GamesAchievementSetStepsAtLeast'; + protected $setStepsAtLeastPayloadDataType = ''; + public $updateType; + + public function setAchievementId($achievementId) + { + $this->achievementId = $achievementId; + } + + public function getAchievementId() + { + return $this->achievementId; + } + + public function setIncrementPayload(Google_Service_Games_GamesAchievementIncrement $incrementPayload) + { + $this->incrementPayload = $incrementPayload; + } + + public function getIncrementPayload() + { + return $this->incrementPayload; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSetStepsAtLeastPayload(Google_Service_Games_GamesAchievementSetStepsAtLeast $setStepsAtLeastPayload) + { + $this->setStepsAtLeastPayload = $setStepsAtLeastPayload; + } + + public function getSetStepsAtLeastPayload() + { + return $this->setStepsAtLeastPayload; + } + + public function setUpdateType($updateType) + { + $this->updateType = $updateType; + } + + public function getUpdateType() + { + return $this->updateType; + } +} + +class Google_Service_Games_AchievementUpdateResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $achievementId; + public $currentState; + public $currentSteps; + public $kind; + public $newlyUnlocked; + public $updateOccurred; + + public function setAchievementId($achievementId) + { + $this->achievementId = $achievementId; + } + + public function getAchievementId() + { + return $this->achievementId; + } + + public function setCurrentState($currentState) + { + $this->currentState = $currentState; + } + + public function getCurrentState() + { + return $this->currentState; + } + + public function setCurrentSteps($currentSteps) + { + $this->currentSteps = $currentSteps; + } + + public function getCurrentSteps() + { + return $this->currentSteps; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNewlyUnlocked($newlyUnlocked) + { + $this->newlyUnlocked = $newlyUnlocked; + } + + public function getNewlyUnlocked() + { + return $this->newlyUnlocked; + } + + public function setUpdateOccurred($updateOccurred) + { + $this->updateOccurred = $updateOccurred; + } + + public function getUpdateOccurred() + { + return $this->updateOccurred; + } +} + +class Google_Service_Games_AggregateStats extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $kind; + public $max; + public $min; + public $sum; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } + + public function setSum($sum) + { + $this->sum = $sum; + } + + public function getSum() + { + return $this->sum; + } +} + +class Google_Service_Games_AnonymousPlayer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $avatarImageUrl; + public $displayName; + public $kind; + + public function setAvatarImageUrl($avatarImageUrl) + { + $this->avatarImageUrl = $avatarImageUrl; + } + + public function getAvatarImageUrl() + { + return $this->avatarImageUrl; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_Application extends Google_Collection +{ + protected $collection_key = 'instances'; + protected $internal_gapi_mappings = array( + "achievementCount" => "achievement_count", + "leaderboardCount" => "leaderboard_count", + ); + public $achievementCount; + protected $assetsType = 'Google_Service_Games_ImageAsset'; + protected $assetsDataType = 'array'; + public $author; + protected $categoryType = 'Google_Service_Games_ApplicationCategory'; + protected $categoryDataType = ''; + public $description; + public $enabledFeatures; + public $id; + protected $instancesType = 'Google_Service_Games_Instance'; + protected $instancesDataType = 'array'; + public $kind; + public $lastUpdatedTimestamp; + public $leaderboardCount; + public $name; + + public function setAchievementCount($achievementCount) + { + $this->achievementCount = $achievementCount; + } + + public function getAchievementCount() + { + return $this->achievementCount; + } + + public function setAssets($assets) + { + $this->assets = $assets; + } + + public function getAssets() + { + return $this->assets; + } + + public function setAuthor($author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setCategory(Google_Service_Games_ApplicationCategory $category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEnabledFeatures($enabledFeatures) + { + $this->enabledFeatures = $enabledFeatures; + } + + public function getEnabledFeatures() + { + return $this->enabledFeatures; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInstances($instances) + { + $this->instances = $instances; + } + + public function getInstances() + { + return $this->instances; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdatedTimestamp($lastUpdatedTimestamp) + { + $this->lastUpdatedTimestamp = $lastUpdatedTimestamp; + } + + public function getLastUpdatedTimestamp() + { + return $this->lastUpdatedTimestamp; + } + + public function setLeaderboardCount($leaderboardCount) + { + $this->leaderboardCount = $leaderboardCount; + } + + public function getLeaderboardCount() + { + return $this->leaderboardCount; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Games_ApplicationCategory extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $primary; + public $secondary; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setSecondary($secondary) + { + $this->secondary = $secondary; + } + + public function getSecondary() + { + return $this->secondary; + } +} + +class Google_Service_Games_Category extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $category; + public $experiencePoints; + public $kind; + + public function setCategory($category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setExperiencePoints($experiencePoints) + { + $this->experiencePoints = $experiencePoints; + } + + public function getExperiencePoints() + { + return $this->experiencePoints; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_CategoryListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_Category'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_EventBatchRecordFailure extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $failureCause; + public $kind; + protected $rangeType = 'Google_Service_Games_EventPeriodRange'; + protected $rangeDataType = ''; + + public function setFailureCause($failureCause) + { + $this->failureCause = $failureCause; + } + + public function getFailureCause() + { + return $this->failureCause; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRange(Google_Service_Games_EventPeriodRange $range) + { + $this->range = $range; + } + + public function getRange() + { + return $this->range; + } +} + +class Google_Service_Games_EventChild extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $childId; + public $kind; + + public function setChildId($childId) + { + $this->childId = $childId; + } + + public function getChildId() + { + return $this->childId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_EventDefinition extends Google_Collection +{ + protected $collection_key = 'childEvents'; + protected $internal_gapi_mappings = array( + ); + protected $childEventsType = 'Google_Service_Games_EventChild'; + protected $childEventsDataType = 'array'; + public $description; + public $displayName; + public $id; + public $imageUrl; + public $isDefaultImageUrl; + public $kind; + public $visibility; + + public function setChildEvents($childEvents) + { + $this->childEvents = $childEvents; + } + + public function getChildEvents() + { + return $this->childEvents; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImageUrl($imageUrl) + { + $this->imageUrl = $imageUrl; + } + + public function getImageUrl() + { + return $this->imageUrl; + } + + public function setIsDefaultImageUrl($isDefaultImageUrl) + { + $this->isDefaultImageUrl = $isDefaultImageUrl; + } + + public function getIsDefaultImageUrl() + { + return $this->isDefaultImageUrl; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_Games_EventDefinitionListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_EventDefinition'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_EventPeriodRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $periodEndMillis; + public $periodStartMillis; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPeriodEndMillis($periodEndMillis) + { + $this->periodEndMillis = $periodEndMillis; + } + + public function getPeriodEndMillis() + { + return $this->periodEndMillis; + } + + public function setPeriodStartMillis($periodStartMillis) + { + $this->periodStartMillis = $periodStartMillis; + } + + public function getPeriodStartMillis() + { + return $this->periodStartMillis; + } +} + +class Google_Service_Games_EventPeriodUpdate extends Google_Collection +{ + protected $collection_key = 'updates'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $timePeriodType = 'Google_Service_Games_EventPeriodRange'; + protected $timePeriodDataType = ''; + protected $updatesType = 'Google_Service_Games_EventUpdateRequest'; + protected $updatesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTimePeriod(Google_Service_Games_EventPeriodRange $timePeriod) + { + $this->timePeriod = $timePeriod; + } + + public function getTimePeriod() + { + return $this->timePeriod; + } + + public function setUpdates($updates) + { + $this->updates = $updates; + } + + public function getUpdates() + { + return $this->updates; + } +} + +class Google_Service_Games_EventRecordFailure extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $eventId; + public $failureCause; + public $kind; + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setFailureCause($failureCause) + { + $this->failureCause = $failureCause; + } + + public function getFailureCause() + { + return $this->failureCause; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_EventRecordRequest extends Google_Collection +{ + protected $collection_key = 'timePeriods'; + protected $internal_gapi_mappings = array( + ); + public $currentTimeMillis; + public $kind; + public $requestId; + protected $timePeriodsType = 'Google_Service_Games_EventPeriodUpdate'; + protected $timePeriodsDataType = 'array'; + + public function setCurrentTimeMillis($currentTimeMillis) + { + $this->currentTimeMillis = $currentTimeMillis; + } + + public function getCurrentTimeMillis() + { + return $this->currentTimeMillis; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + public function getRequestId() + { + return $this->requestId; + } + + public function setTimePeriods($timePeriods) + { + $this->timePeriods = $timePeriods; + } + + public function getTimePeriods() + { + return $this->timePeriods; + } +} + +class Google_Service_Games_EventUpdateRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $definitionId; + public $kind; + public $updateCount; + + public function setDefinitionId($definitionId) + { + $this->definitionId = $definitionId; + } + + public function getDefinitionId() + { + return $this->definitionId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUpdateCount($updateCount) + { + $this->updateCount = $updateCount; + } + + public function getUpdateCount() + { + return $this->updateCount; + } +} + +class Google_Service_Games_EventUpdateResponse extends Google_Collection +{ + protected $collection_key = 'playerEvents'; + protected $internal_gapi_mappings = array( + ); + protected $batchFailuresType = 'Google_Service_Games_EventBatchRecordFailure'; + protected $batchFailuresDataType = 'array'; + protected $eventFailuresType = 'Google_Service_Games_EventRecordFailure'; + protected $eventFailuresDataType = 'array'; + public $kind; + protected $playerEventsType = 'Google_Service_Games_PlayerEvent'; + protected $playerEventsDataType = 'array'; + + public function setBatchFailures($batchFailures) + { + $this->batchFailures = $batchFailures; + } + + public function getBatchFailures() + { + return $this->batchFailures; + } + + public function setEventFailures($eventFailures) + { + $this->eventFailures = $eventFailures; + } + + public function getEventFailures() + { + return $this->eventFailures; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlayerEvents($playerEvents) + { + $this->playerEvents = $playerEvents; + } + + public function getPlayerEvents() + { + return $this->playerEvents; + } +} + +class Google_Service_Games_GamesAchievementIncrement extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $requestId; + public $steps; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + public function getRequestId() + { + return $this->requestId; + } + + public function setSteps($steps) + { + $this->steps = $steps; + } + + public function getSteps() + { + return $this->steps; + } +} + +class Google_Service_Games_GamesAchievementSetStepsAtLeast extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $steps; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSteps($steps) + { + $this->steps = $steps; + } + + public function getSteps() + { + return $this->steps; + } +} + +class Google_Service_Games_ImageAsset extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $kind; + public $name; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Games_Instance extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $acquisitionUri; + protected $androidInstanceType = 'Google_Service_Games_InstanceAndroidDetails'; + protected $androidInstanceDataType = ''; + protected $iosInstanceType = 'Google_Service_Games_InstanceIosDetails'; + protected $iosInstanceDataType = ''; + public $kind; + public $name; + public $platformType; + public $realtimePlay; + public $turnBasedPlay; + protected $webInstanceType = 'Google_Service_Games_InstanceWebDetails'; + protected $webInstanceDataType = ''; + + public function setAcquisitionUri($acquisitionUri) + { + $this->acquisitionUri = $acquisitionUri; + } + + public function getAcquisitionUri() + { + return $this->acquisitionUri; + } + + public function setAndroidInstance(Google_Service_Games_InstanceAndroidDetails $androidInstance) + { + $this->androidInstance = $androidInstance; + } + + public function getAndroidInstance() + { + return $this->androidInstance; + } + + public function setIosInstance(Google_Service_Games_InstanceIosDetails $iosInstance) + { + $this->iosInstance = $iosInstance; + } + + public function getIosInstance() + { + return $this->iosInstance; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPlatformType($platformType) + { + $this->platformType = $platformType; + } + + public function getPlatformType() + { + return $this->platformType; + } + + public function setRealtimePlay($realtimePlay) + { + $this->realtimePlay = $realtimePlay; + } + + public function getRealtimePlay() + { + return $this->realtimePlay; + } + + public function setTurnBasedPlay($turnBasedPlay) + { + $this->turnBasedPlay = $turnBasedPlay; + } + + public function getTurnBasedPlay() + { + return $this->turnBasedPlay; + } + + public function setWebInstance(Google_Service_Games_InstanceWebDetails $webInstance) + { + $this->webInstance = $webInstance; + } + + public function getWebInstance() + { + return $this->webInstance; + } +} + +class Google_Service_Games_InstanceAndroidDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $enablePiracyCheck; + public $kind; + public $packageName; + public $preferred; + + public function setEnablePiracyCheck($enablePiracyCheck) + { + $this->enablePiracyCheck = $enablePiracyCheck; + } + + public function getEnablePiracyCheck() + { + return $this->enablePiracyCheck; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPackageName($packageName) + { + $this->packageName = $packageName; + } + + public function getPackageName() + { + return $this->packageName; + } + + public function setPreferred($preferred) + { + $this->preferred = $preferred; + } + + public function getPreferred() + { + return $this->preferred; + } +} + +class Google_Service_Games_InstanceIosDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bundleIdentifier; + public $itunesAppId; + public $kind; + public $preferredForIpad; + public $preferredForIphone; + public $supportIpad; + public $supportIphone; + + public function setBundleIdentifier($bundleIdentifier) + { + $this->bundleIdentifier = $bundleIdentifier; + } + + public function getBundleIdentifier() + { + return $this->bundleIdentifier; + } + + public function setItunesAppId($itunesAppId) + { + $this->itunesAppId = $itunesAppId; + } + + public function getItunesAppId() + { + return $this->itunesAppId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPreferredForIpad($preferredForIpad) + { + $this->preferredForIpad = $preferredForIpad; + } + + public function getPreferredForIpad() + { + return $this->preferredForIpad; + } + + public function setPreferredForIphone($preferredForIphone) + { + $this->preferredForIphone = $preferredForIphone; + } + + public function getPreferredForIphone() + { + return $this->preferredForIphone; + } + + public function setSupportIpad($supportIpad) + { + $this->supportIpad = $supportIpad; + } + + public function getSupportIpad() + { + return $this->supportIpad; + } + + public function setSupportIphone($supportIphone) + { + $this->supportIphone = $supportIphone; + } + + public function getSupportIphone() + { + return $this->supportIphone; + } +} + +class Google_Service_Games_InstanceWebDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $launchUrl; + public $preferred; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLaunchUrl($launchUrl) + { + $this->launchUrl = $launchUrl; + } + + public function getLaunchUrl() + { + return $this->launchUrl; + } + + public function setPreferred($preferred) + { + $this->preferred = $preferred; + } + + public function getPreferred() + { + return $this->preferred; + } +} + +class Google_Service_Games_Leaderboard extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $iconUrl; + public $id; + public $isIconUrlDefault; + public $kind; + public $name; + public $order; + + public function setIconUrl($iconUrl) + { + $this->iconUrl = $iconUrl; + } + + public function getIconUrl() + { + return $this->iconUrl; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsIconUrlDefault($isIconUrlDefault) + { + $this->isIconUrlDefault = $isIconUrlDefault; + } + + public function getIsIconUrlDefault() + { + return $this->isIconUrlDefault; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOrder($order) + { + $this->order = $order; + } + + public function getOrder() + { + return $this->order; + } +} + +class Google_Service_Games_LeaderboardEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formattedScore; + public $formattedScoreRank; + public $kind; + protected $playerType = 'Google_Service_Games_Player'; + protected $playerDataType = ''; + public $scoreRank; + public $scoreTag; + public $scoreValue; + public $timeSpan; + public $writeTimestampMillis; + + public function setFormattedScore($formattedScore) + { + $this->formattedScore = $formattedScore; + } + + public function getFormattedScore() + { + return $this->formattedScore; + } + + public function setFormattedScoreRank($formattedScoreRank) + { + $this->formattedScoreRank = $formattedScoreRank; + } + + public function getFormattedScoreRank() + { + return $this->formattedScoreRank; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlayer(Google_Service_Games_Player $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } + + public function setScoreRank($scoreRank) + { + $this->scoreRank = $scoreRank; + } + + public function getScoreRank() + { + return $this->scoreRank; + } + + public function setScoreTag($scoreTag) + { + $this->scoreTag = $scoreTag; + } + + public function getScoreTag() + { + return $this->scoreTag; + } + + public function setScoreValue($scoreValue) + { + $this->scoreValue = $scoreValue; + } + + public function getScoreValue() + { + return $this->scoreValue; + } + + public function setTimeSpan($timeSpan) + { + $this->timeSpan = $timeSpan; + } + + public function getTimeSpan() + { + return $this->timeSpan; + } + + public function setWriteTimestampMillis($writeTimestampMillis) + { + $this->writeTimestampMillis = $writeTimestampMillis; + } + + public function getWriteTimestampMillis() + { + return $this->writeTimestampMillis; + } +} + +class Google_Service_Games_LeaderboardListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_Leaderboard'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_LeaderboardScoreRank extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formattedNumScores; + public $formattedRank; + public $kind; + public $numScores; + public $rank; + + public function setFormattedNumScores($formattedNumScores) + { + $this->formattedNumScores = $formattedNumScores; + } + + public function getFormattedNumScores() + { + return $this->formattedNumScores; + } + + public function setFormattedRank($formattedRank) + { + $this->formattedRank = $formattedRank; + } + + public function getFormattedRank() + { + return $this->formattedRank; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNumScores($numScores) + { + $this->numScores = $numScores; + } + + public function getNumScores() + { + return $this->numScores; + } + + public function setRank($rank) + { + $this->rank = $rank; + } + + public function getRank() + { + return $this->rank; + } +} + +class Google_Service_Games_LeaderboardScores extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_LeaderboardEntry'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $numScores; + protected $playerScoreType = 'Google_Service_Games_LeaderboardEntry'; + protected $playerScoreDataType = ''; + public $prevPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setNumScores($numScores) + { + $this->numScores = $numScores; + } + + public function getNumScores() + { + return $this->numScores; + } + + public function setPlayerScore(Google_Service_Games_LeaderboardEntry $playerScore) + { + $this->playerScore = $playerScore; + } + + public function getPlayerScore() + { + return $this->playerScore; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Games_MetagameConfig extends Google_Collection +{ + protected $collection_key = 'playerLevels'; + protected $internal_gapi_mappings = array( + ); + public $currentVersion; + public $kind; + protected $playerLevelsType = 'Google_Service_Games_PlayerLevel'; + protected $playerLevelsDataType = 'array'; + + public function setCurrentVersion($currentVersion) + { + $this->currentVersion = $currentVersion; + } + + public function getCurrentVersion() + { + return $this->currentVersion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlayerLevels($playerLevels) + { + $this->playerLevels = $playerLevels; + } + + public function getPlayerLevels() + { + return $this->playerLevels; + } +} + +class Google_Service_Games_NetworkDiagnostics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $androidNetworkSubtype; + public $androidNetworkType; + public $iosNetworkType; + public $kind; + public $networkOperatorCode; + public $networkOperatorName; + public $registrationLatencyMillis; + + public function setAndroidNetworkSubtype($androidNetworkSubtype) + { + $this->androidNetworkSubtype = $androidNetworkSubtype; + } + + public function getAndroidNetworkSubtype() + { + return $this->androidNetworkSubtype; + } + + public function setAndroidNetworkType($androidNetworkType) + { + $this->androidNetworkType = $androidNetworkType; + } + + public function getAndroidNetworkType() + { + return $this->androidNetworkType; + } + + public function setIosNetworkType($iosNetworkType) + { + $this->iosNetworkType = $iosNetworkType; + } + + public function getIosNetworkType() + { + return $this->iosNetworkType; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNetworkOperatorCode($networkOperatorCode) + { + $this->networkOperatorCode = $networkOperatorCode; + } + + public function getNetworkOperatorCode() + { + return $this->networkOperatorCode; + } + + public function setNetworkOperatorName($networkOperatorName) + { + $this->networkOperatorName = $networkOperatorName; + } + + public function getNetworkOperatorName() + { + return $this->networkOperatorName; + } + + public function setRegistrationLatencyMillis($registrationLatencyMillis) + { + $this->registrationLatencyMillis = $registrationLatencyMillis; + } + + public function getRegistrationLatencyMillis() + { + return $this->registrationLatencyMillis; + } +} + +class Google_Service_Games_ParticipantResult extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $participantId; + public $placing; + public $result; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParticipantId($participantId) + { + $this->participantId = $participantId; + } + + public function getParticipantId() + { + return $this->participantId; + } + + public function setPlacing($placing) + { + $this->placing = $placing; + } + + public function getPlacing() + { + return $this->placing; + } + + public function setResult($result) + { + $this->result = $result; + } + + public function getResult() + { + return $this->result; + } +} + +class Google_Service_Games_PeerChannelDiagnostics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $bytesReceivedType = 'Google_Service_Games_AggregateStats'; + protected $bytesReceivedDataType = ''; + protected $bytesSentType = 'Google_Service_Games_AggregateStats'; + protected $bytesSentDataType = ''; + public $kind; + public $numMessagesLost; + public $numMessagesReceived; + public $numMessagesSent; + public $numSendFailures; + protected $roundtripLatencyMillisType = 'Google_Service_Games_AggregateStats'; + protected $roundtripLatencyMillisDataType = ''; + + public function setBytesReceived(Google_Service_Games_AggregateStats $bytesReceived) + { + $this->bytesReceived = $bytesReceived; + } + + public function getBytesReceived() + { + return $this->bytesReceived; + } + + public function setBytesSent(Google_Service_Games_AggregateStats $bytesSent) + { + $this->bytesSent = $bytesSent; + } + + public function getBytesSent() + { + return $this->bytesSent; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNumMessagesLost($numMessagesLost) + { + $this->numMessagesLost = $numMessagesLost; + } + + public function getNumMessagesLost() + { + return $this->numMessagesLost; + } + + public function setNumMessagesReceived($numMessagesReceived) + { + $this->numMessagesReceived = $numMessagesReceived; + } + + public function getNumMessagesReceived() + { + return $this->numMessagesReceived; + } + + public function setNumMessagesSent($numMessagesSent) + { + $this->numMessagesSent = $numMessagesSent; + } + + public function getNumMessagesSent() + { + return $this->numMessagesSent; + } + + public function setNumSendFailures($numSendFailures) + { + $this->numSendFailures = $numSendFailures; + } + + public function getNumSendFailures() + { + return $this->numSendFailures; + } + + public function setRoundtripLatencyMillis(Google_Service_Games_AggregateStats $roundtripLatencyMillis) + { + $this->roundtripLatencyMillis = $roundtripLatencyMillis; + } + + public function getRoundtripLatencyMillis() + { + return $this->roundtripLatencyMillis; + } +} + +class Google_Service_Games_PeerSessionDiagnostics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $connectedTimestampMillis; + public $kind; + public $participantId; + protected $reliableChannelType = 'Google_Service_Games_PeerChannelDiagnostics'; + protected $reliableChannelDataType = ''; + protected $unreliableChannelType = 'Google_Service_Games_PeerChannelDiagnostics'; + protected $unreliableChannelDataType = ''; + + public function setConnectedTimestampMillis($connectedTimestampMillis) + { + $this->connectedTimestampMillis = $connectedTimestampMillis; + } + + public function getConnectedTimestampMillis() + { + return $this->connectedTimestampMillis; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParticipantId($participantId) + { + $this->participantId = $participantId; + } + + public function getParticipantId() + { + return $this->participantId; + } + + public function setReliableChannel(Google_Service_Games_PeerChannelDiagnostics $reliableChannel) + { + $this->reliableChannel = $reliableChannel; + } + + public function getReliableChannel() + { + return $this->reliableChannel; + } + + public function setUnreliableChannel(Google_Service_Games_PeerChannelDiagnostics $unreliableChannel) + { + $this->unreliableChannel = $unreliableChannel; + } + + public function getUnreliableChannel() + { + return $this->unreliableChannel; + } +} + +class Google_Service_Games_Played extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $autoMatched; + public $kind; + public $timeMillis; + + public function setAutoMatched($autoMatched) + { + $this->autoMatched = $autoMatched; + } + + public function getAutoMatched() + { + return $this->autoMatched; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTimeMillis($timeMillis) + { + $this->timeMillis = $timeMillis; + } + + public function getTimeMillis() + { + return $this->timeMillis; + } +} + +class Google_Service_Games_Player extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $avatarImageUrl; + public $displayName; + protected $experienceInfoType = 'Google_Service_Games_PlayerExperienceInfo'; + protected $experienceInfoDataType = ''; + public $kind; + protected $lastPlayedWithType = 'Google_Service_Games_Played'; + protected $lastPlayedWithDataType = ''; + protected $nameType = 'Google_Service_Games_PlayerName'; + protected $nameDataType = ''; + public $playerId; + public $title; + + public function setAvatarImageUrl($avatarImageUrl) + { + $this->avatarImageUrl = $avatarImageUrl; + } + + public function getAvatarImageUrl() + { + return $this->avatarImageUrl; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setExperienceInfo(Google_Service_Games_PlayerExperienceInfo $experienceInfo) + { + $this->experienceInfo = $experienceInfo; + } + + public function getExperienceInfo() + { + return $this->experienceInfo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPlayedWith(Google_Service_Games_Played $lastPlayedWith) + { + $this->lastPlayedWith = $lastPlayedWith; + } + + public function getLastPlayedWith() + { + return $this->lastPlayedWith; + } + + public function setName(Google_Service_Games_PlayerName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPlayerId($playerId) + { + $this->playerId = $playerId; + } + + public function getPlayerId() + { + return $this->playerId; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Games_PlayerAchievement extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $achievementState; + public $currentSteps; + public $experiencePoints; + public $formattedCurrentStepsString; + public $id; + public $kind; + public $lastUpdatedTimestamp; + + public function setAchievementState($achievementState) + { + $this->achievementState = $achievementState; + } + + public function getAchievementState() + { + return $this->achievementState; + } + + public function setCurrentSteps($currentSteps) + { + $this->currentSteps = $currentSteps; + } + + public function getCurrentSteps() + { + return $this->currentSteps; + } + + public function setExperiencePoints($experiencePoints) + { + $this->experiencePoints = $experiencePoints; + } + + public function getExperiencePoints() + { + return $this->experiencePoints; + } + + public function setFormattedCurrentStepsString($formattedCurrentStepsString) + { + $this->formattedCurrentStepsString = $formattedCurrentStepsString; + } + + public function getFormattedCurrentStepsString() + { + return $this->formattedCurrentStepsString; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdatedTimestamp($lastUpdatedTimestamp) + { + $this->lastUpdatedTimestamp = $lastUpdatedTimestamp; + } + + public function getLastUpdatedTimestamp() + { + return $this->lastUpdatedTimestamp; + } +} + +class Google_Service_Games_PlayerAchievementListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_PlayerAchievement'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_PlayerEvent extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $definitionId; + public $formattedNumEvents; + public $kind; + public $numEvents; + public $playerId; + + public function setDefinitionId($definitionId) + { + $this->definitionId = $definitionId; + } + + public function getDefinitionId() + { + return $this->definitionId; + } + + public function setFormattedNumEvents($formattedNumEvents) + { + $this->formattedNumEvents = $formattedNumEvents; + } + + public function getFormattedNumEvents() + { + return $this->formattedNumEvents; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNumEvents($numEvents) + { + $this->numEvents = $numEvents; + } + + public function getNumEvents() + { + return $this->numEvents; + } + + public function setPlayerId($playerId) + { + $this->playerId = $playerId; + } + + public function getPlayerId() + { + return $this->playerId; + } +} + +class Google_Service_Games_PlayerEventListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_PlayerEvent'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_PlayerExperienceInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentExperiencePoints; + protected $currentLevelType = 'Google_Service_Games_PlayerLevel'; + protected $currentLevelDataType = ''; + public $kind; + public $lastLevelUpTimestampMillis; + protected $nextLevelType = 'Google_Service_Games_PlayerLevel'; + protected $nextLevelDataType = ''; + + public function setCurrentExperiencePoints($currentExperiencePoints) + { + $this->currentExperiencePoints = $currentExperiencePoints; + } + + public function getCurrentExperiencePoints() + { + return $this->currentExperiencePoints; + } + + public function setCurrentLevel(Google_Service_Games_PlayerLevel $currentLevel) + { + $this->currentLevel = $currentLevel; + } + + public function getCurrentLevel() + { + return $this->currentLevel; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastLevelUpTimestampMillis($lastLevelUpTimestampMillis) + { + $this->lastLevelUpTimestampMillis = $lastLevelUpTimestampMillis; + } + + public function getLastLevelUpTimestampMillis() + { + return $this->lastLevelUpTimestampMillis; + } + + public function setNextLevel(Google_Service_Games_PlayerLevel $nextLevel) + { + $this->nextLevel = $nextLevel; + } + + public function getNextLevel() + { + return $this->nextLevel; + } +} + +class Google_Service_Games_PlayerLeaderboardScore extends Google_Model +{ + protected $internal_gapi_mappings = array( + "leaderboardId" => "leaderboard_id", + ); + public $kind; + public $leaderboardId; + protected $publicRankType = 'Google_Service_Games_LeaderboardScoreRank'; + protected $publicRankDataType = ''; + public $scoreString; + public $scoreTag; + public $scoreValue; + protected $socialRankType = 'Google_Service_Games_LeaderboardScoreRank'; + protected $socialRankDataType = ''; + public $timeSpan; + public $writeTimestamp; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeaderboardId($leaderboardId) + { + $this->leaderboardId = $leaderboardId; + } + + public function getLeaderboardId() + { + return $this->leaderboardId; + } + + public function setPublicRank(Google_Service_Games_LeaderboardScoreRank $publicRank) + { + $this->publicRank = $publicRank; + } + + public function getPublicRank() + { + return $this->publicRank; + } + + public function setScoreString($scoreString) + { + $this->scoreString = $scoreString; + } + + public function getScoreString() + { + return $this->scoreString; + } + + public function setScoreTag($scoreTag) + { + $this->scoreTag = $scoreTag; + } + + public function getScoreTag() + { + return $this->scoreTag; + } + + public function setScoreValue($scoreValue) + { + $this->scoreValue = $scoreValue; + } + + public function getScoreValue() + { + return $this->scoreValue; + } + + public function setSocialRank(Google_Service_Games_LeaderboardScoreRank $socialRank) + { + $this->socialRank = $socialRank; + } + + public function getSocialRank() + { + return $this->socialRank; + } + + public function setTimeSpan($timeSpan) + { + $this->timeSpan = $timeSpan; + } + + public function getTimeSpan() + { + return $this->timeSpan; + } + + public function setWriteTimestamp($writeTimestamp) + { + $this->writeTimestamp = $writeTimestamp; + } + + public function getWriteTimestamp() + { + return $this->writeTimestamp; + } +} + +class Google_Service_Games_PlayerLeaderboardScoreListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_PlayerLeaderboardScore'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $playerType = 'Google_Service_Games_Player'; + protected $playerDataType = ''; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPlayer(Google_Service_Games_Player $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } +} + +class Google_Service_Games_PlayerLevel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $level; + public $maxExperiencePoints; + public $minExperiencePoints; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLevel($level) + { + $this->level = $level; + } + + public function getLevel() + { + return $this->level; + } + + public function setMaxExperiencePoints($maxExperiencePoints) + { + $this->maxExperiencePoints = $maxExperiencePoints; + } + + public function getMaxExperiencePoints() + { + return $this->maxExperiencePoints; + } + + public function setMinExperiencePoints($minExperiencePoints) + { + $this->minExperiencePoints = $minExperiencePoints; + } + + public function getMinExperiencePoints() + { + return $this->minExperiencePoints; + } +} + +class Google_Service_Games_PlayerListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_Player'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_PlayerName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $givenName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } +} + +class Google_Service_Games_PlayerScore extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formattedScore; + public $kind; + public $score; + public $scoreTag; + public $timeSpan; + + public function setFormattedScore($formattedScore) + { + $this->formattedScore = $formattedScore; + } + + public function getFormattedScore() + { + return $this->formattedScore; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setScore($score) + { + $this->score = $score; + } + + public function getScore() + { + return $this->score; + } + + public function setScoreTag($scoreTag) + { + $this->scoreTag = $scoreTag; + } + + public function getScoreTag() + { + return $this->scoreTag; + } + + public function setTimeSpan($timeSpan) + { + $this->timeSpan = $timeSpan; + } + + public function getTimeSpan() + { + return $this->timeSpan; + } +} + +class Google_Service_Games_PlayerScoreListResponse extends Google_Collection +{ + protected $collection_key = 'submittedScores'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $submittedScoresType = 'Google_Service_Games_PlayerScoreResponse'; + protected $submittedScoresDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSubmittedScores($submittedScores) + { + $this->submittedScores = $submittedScores; + } + + public function getSubmittedScores() + { + return $this->submittedScores; + } +} + +class Google_Service_Games_PlayerScoreResponse extends Google_Collection +{ + protected $collection_key = 'unbeatenScores'; + protected $internal_gapi_mappings = array( + ); + public $beatenScoreTimeSpans; + public $formattedScore; + public $kind; + public $leaderboardId; + public $scoreTag; + protected $unbeatenScoresType = 'Google_Service_Games_PlayerScore'; + protected $unbeatenScoresDataType = 'array'; + + public function setBeatenScoreTimeSpans($beatenScoreTimeSpans) + { + $this->beatenScoreTimeSpans = $beatenScoreTimeSpans; + } + + public function getBeatenScoreTimeSpans() + { + return $this->beatenScoreTimeSpans; + } + + public function setFormattedScore($formattedScore) + { + $this->formattedScore = $formattedScore; + } + + public function getFormattedScore() + { + return $this->formattedScore; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeaderboardId($leaderboardId) + { + $this->leaderboardId = $leaderboardId; + } + + public function getLeaderboardId() + { + return $this->leaderboardId; + } + + public function setScoreTag($scoreTag) + { + $this->scoreTag = $scoreTag; + } + + public function getScoreTag() + { + return $this->scoreTag; + } + + public function setUnbeatenScores($unbeatenScores) + { + $this->unbeatenScores = $unbeatenScores; + } + + public function getUnbeatenScores() + { + return $this->unbeatenScores; + } +} + +class Google_Service_Games_PlayerScoreSubmissionList extends Google_Collection +{ + protected $collection_key = 'scores'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $scoresType = 'Google_Service_Games_ScoreSubmission'; + protected $scoresDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setScores($scores) + { + $this->scores = $scores; + } + + public function getScores() + { + return $this->scores; + } +} + +class Google_Service_Games_PushToken extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $clientRevision; + protected $idType = 'Google_Service_Games_PushTokenId'; + protected $idDataType = ''; + public $kind; + public $language; + + public function setClientRevision($clientRevision) + { + $this->clientRevision = $clientRevision; + } + + public function getClientRevision() + { + return $this->clientRevision; + } + + public function setId(Google_Service_Games_PushTokenId $id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } +} + +class Google_Service_Games_PushTokenId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $iosType = 'Google_Service_Games_PushTokenIdIos'; + protected $iosDataType = ''; + public $kind; + + public function setIos(Google_Service_Games_PushTokenIdIos $ios) + { + $this->ios = $ios; + } + + public function getIos() + { + return $this->ios; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_PushTokenIdIos extends Google_Model +{ + protected $internal_gapi_mappings = array( + "apnsDeviceToken" => "apns_device_token", + "apnsEnvironment" => "apns_environment", + ); + public $apnsDeviceToken; + public $apnsEnvironment; + + public function setApnsDeviceToken($apnsDeviceToken) + { + $this->apnsDeviceToken = $apnsDeviceToken; + } + + public function getApnsDeviceToken() + { + return $this->apnsDeviceToken; + } + + public function setApnsEnvironment($apnsEnvironment) + { + $this->apnsEnvironment = $apnsEnvironment; + } + + public function getApnsEnvironment() + { + return $this->apnsEnvironment; + } +} + +class Google_Service_Games_Quest extends Google_Collection +{ + protected $collection_key = 'milestones'; + protected $internal_gapi_mappings = array( + ); + public $acceptedTimestampMillis; + public $applicationId; + public $bannerUrl; + public $description; + public $endTimestampMillis; + public $iconUrl; + public $id; + public $isDefaultBannerUrl; + public $isDefaultIconUrl; + public $kind; + public $lastUpdatedTimestampMillis; + protected $milestonesType = 'Google_Service_Games_QuestMilestone'; + protected $milestonesDataType = 'array'; + public $name; + public $notifyTimestampMillis; + public $startTimestampMillis; + public $state; + + public function setAcceptedTimestampMillis($acceptedTimestampMillis) + { + $this->acceptedTimestampMillis = $acceptedTimestampMillis; + } + + public function getAcceptedTimestampMillis() + { + return $this->acceptedTimestampMillis; + } + + public function setApplicationId($applicationId) + { + $this->applicationId = $applicationId; + } + + public function getApplicationId() + { + return $this->applicationId; + } + + public function setBannerUrl($bannerUrl) + { + $this->bannerUrl = $bannerUrl; + } + + public function getBannerUrl() + { + return $this->bannerUrl; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEndTimestampMillis($endTimestampMillis) + { + $this->endTimestampMillis = $endTimestampMillis; + } + + public function getEndTimestampMillis() + { + return $this->endTimestampMillis; + } + + public function setIconUrl($iconUrl) + { + $this->iconUrl = $iconUrl; + } + + public function getIconUrl() + { + return $this->iconUrl; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsDefaultBannerUrl($isDefaultBannerUrl) + { + $this->isDefaultBannerUrl = $isDefaultBannerUrl; + } + + public function getIsDefaultBannerUrl() + { + return $this->isDefaultBannerUrl; + } + + public function setIsDefaultIconUrl($isDefaultIconUrl) + { + $this->isDefaultIconUrl = $isDefaultIconUrl; + } + + public function getIsDefaultIconUrl() + { + return $this->isDefaultIconUrl; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdatedTimestampMillis($lastUpdatedTimestampMillis) + { + $this->lastUpdatedTimestampMillis = $lastUpdatedTimestampMillis; + } + + public function getLastUpdatedTimestampMillis() + { + return $this->lastUpdatedTimestampMillis; + } + + public function setMilestones($milestones) + { + $this->milestones = $milestones; + } + + public function getMilestones() + { + return $this->milestones; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNotifyTimestampMillis($notifyTimestampMillis) + { + $this->notifyTimestampMillis = $notifyTimestampMillis; + } + + public function getNotifyTimestampMillis() + { + return $this->notifyTimestampMillis; + } + + public function setStartTimestampMillis($startTimestampMillis) + { + $this->startTimestampMillis = $startTimestampMillis; + } + + public function getStartTimestampMillis() + { + return $this->startTimestampMillis; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_Games_QuestContribution extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formattedValue; + public $kind; + public $value; + + public function setFormattedValue($formattedValue) + { + $this->formattedValue = $formattedValue; + } + + public function getFormattedValue() + { + return $this->formattedValue; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Games_QuestCriterion extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $completionContributionType = 'Google_Service_Games_QuestContribution'; + protected $completionContributionDataType = ''; + protected $currentContributionType = 'Google_Service_Games_QuestContribution'; + protected $currentContributionDataType = ''; + public $eventId; + protected $initialPlayerProgressType = 'Google_Service_Games_QuestContribution'; + protected $initialPlayerProgressDataType = ''; + public $kind; + + public function setCompletionContribution(Google_Service_Games_QuestContribution $completionContribution) + { + $this->completionContribution = $completionContribution; + } + + public function getCompletionContribution() + { + return $this->completionContribution; + } + + public function setCurrentContribution(Google_Service_Games_QuestContribution $currentContribution) + { + $this->currentContribution = $currentContribution; + } + + public function getCurrentContribution() + { + return $this->currentContribution; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setInitialPlayerProgress(Google_Service_Games_QuestContribution $initialPlayerProgress) + { + $this->initialPlayerProgress = $initialPlayerProgress; + } + + public function getInitialPlayerProgress() + { + return $this->initialPlayerProgress; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_QuestListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_Quest'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_QuestMilestone extends Google_Collection +{ + protected $collection_key = 'criteria'; + protected $internal_gapi_mappings = array( + ); + public $completionRewardData; + protected $criteriaType = 'Google_Service_Games_QuestCriterion'; + protected $criteriaDataType = 'array'; + public $id; + public $kind; + public $state; + + public function setCompletionRewardData($completionRewardData) + { + $this->completionRewardData = $completionRewardData; + } + + public function getCompletionRewardData() + { + return $this->completionRewardData; + } + + public function setCriteria($criteria) + { + $this->criteria = $criteria; + } + + public function getCriteria() + { + return $this->criteria; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_Games_RevisionCheckResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $apiVersion; + public $kind; + public $revisionStatus; + + public function setApiVersion($apiVersion) + { + $this->apiVersion = $apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRevisionStatus($revisionStatus) + { + $this->revisionStatus = $revisionStatus; + } + + public function getRevisionStatus() + { + return $this->revisionStatus; + } +} + +class Google_Service_Games_Room extends Google_Collection +{ + protected $collection_key = 'participants'; + protected $internal_gapi_mappings = array( + ); + public $applicationId; + protected $autoMatchingCriteriaType = 'Google_Service_Games_RoomAutoMatchingCriteria'; + protected $autoMatchingCriteriaDataType = ''; + protected $autoMatchingStatusType = 'Google_Service_Games_RoomAutoMatchStatus'; + protected $autoMatchingStatusDataType = ''; + protected $creationDetailsType = 'Google_Service_Games_RoomModification'; + protected $creationDetailsDataType = ''; + public $description; + public $inviterId; + public $kind; + protected $lastUpdateDetailsType = 'Google_Service_Games_RoomModification'; + protected $lastUpdateDetailsDataType = ''; + protected $participantsType = 'Google_Service_Games_RoomParticipant'; + protected $participantsDataType = 'array'; + public $roomId; + public $roomStatusVersion; + public $status; + public $variant; + + public function setApplicationId($applicationId) + { + $this->applicationId = $applicationId; + } + + public function getApplicationId() + { + return $this->applicationId; + } + + public function setAutoMatchingCriteria(Google_Service_Games_RoomAutoMatchingCriteria $autoMatchingCriteria) + { + $this->autoMatchingCriteria = $autoMatchingCriteria; + } + + public function getAutoMatchingCriteria() + { + return $this->autoMatchingCriteria; + } + + public function setAutoMatchingStatus(Google_Service_Games_RoomAutoMatchStatus $autoMatchingStatus) + { + $this->autoMatchingStatus = $autoMatchingStatus; + } + + public function getAutoMatchingStatus() + { + return $this->autoMatchingStatus; + } + + public function setCreationDetails(Google_Service_Games_RoomModification $creationDetails) + { + $this->creationDetails = $creationDetails; + } + + public function getCreationDetails() + { + return $this->creationDetails; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setInviterId($inviterId) + { + $this->inviterId = $inviterId; + } + + public function getInviterId() + { + return $this->inviterId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdateDetails(Google_Service_Games_RoomModification $lastUpdateDetails) + { + $this->lastUpdateDetails = $lastUpdateDetails; + } + + public function getLastUpdateDetails() + { + return $this->lastUpdateDetails; + } + + public function setParticipants($participants) + { + $this->participants = $participants; + } + + public function getParticipants() + { + return $this->participants; + } + + public function setRoomId($roomId) + { + $this->roomId = $roomId; + } + + public function getRoomId() + { + return $this->roomId; + } + + public function setRoomStatusVersion($roomStatusVersion) + { + $this->roomStatusVersion = $roomStatusVersion; + } + + public function getRoomStatusVersion() + { + return $this->roomStatusVersion; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setVariant($variant) + { + $this->variant = $variant; + } + + public function getVariant() + { + return $this->variant; + } +} + +class Google_Service_Games_RoomAutoMatchStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $waitEstimateSeconds; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setWaitEstimateSeconds($waitEstimateSeconds) + { + $this->waitEstimateSeconds = $waitEstimateSeconds; + } + + public function getWaitEstimateSeconds() + { + return $this->waitEstimateSeconds; + } +} + +class Google_Service_Games_RoomAutoMatchingCriteria extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $exclusiveBitmask; + public $kind; + public $maxAutoMatchingPlayers; + public $minAutoMatchingPlayers; + + public function setExclusiveBitmask($exclusiveBitmask) + { + $this->exclusiveBitmask = $exclusiveBitmask; + } + + public function getExclusiveBitmask() + { + return $this->exclusiveBitmask; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxAutoMatchingPlayers($maxAutoMatchingPlayers) + { + $this->maxAutoMatchingPlayers = $maxAutoMatchingPlayers; + } + + public function getMaxAutoMatchingPlayers() + { + return $this->maxAutoMatchingPlayers; + } + + public function setMinAutoMatchingPlayers($minAutoMatchingPlayers) + { + $this->minAutoMatchingPlayers = $minAutoMatchingPlayers; + } + + public function getMinAutoMatchingPlayers() + { + return $this->minAutoMatchingPlayers; + } +} + +class Google_Service_Games_RoomClientAddress extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $xmppAddress; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setXmppAddress($xmppAddress) + { + $this->xmppAddress = $xmppAddress; + } + + public function getXmppAddress() + { + return $this->xmppAddress; + } +} + +class Google_Service_Games_RoomCreateRequest extends Google_Collection +{ + protected $collection_key = 'invitedPlayerIds'; + protected $internal_gapi_mappings = array( + ); + protected $autoMatchingCriteriaType = 'Google_Service_Games_RoomAutoMatchingCriteria'; + protected $autoMatchingCriteriaDataType = ''; + public $capabilities; + protected $clientAddressType = 'Google_Service_Games_RoomClientAddress'; + protected $clientAddressDataType = ''; + public $invitedPlayerIds; + public $kind; + protected $networkDiagnosticsType = 'Google_Service_Games_NetworkDiagnostics'; + protected $networkDiagnosticsDataType = ''; + public $requestId; + public $variant; + + public function setAutoMatchingCriteria(Google_Service_Games_RoomAutoMatchingCriteria $autoMatchingCriteria) + { + $this->autoMatchingCriteria = $autoMatchingCriteria; + } + + public function getAutoMatchingCriteria() + { + return $this->autoMatchingCriteria; + } + + public function setCapabilities($capabilities) + { + $this->capabilities = $capabilities; + } + + public function getCapabilities() + { + return $this->capabilities; + } + + public function setClientAddress(Google_Service_Games_RoomClientAddress $clientAddress) + { + $this->clientAddress = $clientAddress; + } + + public function getClientAddress() + { + return $this->clientAddress; + } + + public function setInvitedPlayerIds($invitedPlayerIds) + { + $this->invitedPlayerIds = $invitedPlayerIds; + } + + public function getInvitedPlayerIds() + { + return $this->invitedPlayerIds; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNetworkDiagnostics(Google_Service_Games_NetworkDiagnostics $networkDiagnostics) + { + $this->networkDiagnostics = $networkDiagnostics; + } + + public function getNetworkDiagnostics() + { + return $this->networkDiagnostics; + } + + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + public function getRequestId() + { + return $this->requestId; + } + + public function setVariant($variant) + { + $this->variant = $variant; + } + + public function getVariant() + { + return $this->variant; + } +} + +class Google_Service_Games_RoomJoinRequest extends Google_Collection +{ + protected $collection_key = 'capabilities'; + protected $internal_gapi_mappings = array( + ); + public $capabilities; + protected $clientAddressType = 'Google_Service_Games_RoomClientAddress'; + protected $clientAddressDataType = ''; + public $kind; + protected $networkDiagnosticsType = 'Google_Service_Games_NetworkDiagnostics'; + protected $networkDiagnosticsDataType = ''; + + public function setCapabilities($capabilities) + { + $this->capabilities = $capabilities; + } + + public function getCapabilities() + { + return $this->capabilities; + } + + public function setClientAddress(Google_Service_Games_RoomClientAddress $clientAddress) + { + $this->clientAddress = $clientAddress; + } + + public function getClientAddress() + { + return $this->clientAddress; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNetworkDiagnostics(Google_Service_Games_NetworkDiagnostics $networkDiagnostics) + { + $this->networkDiagnostics = $networkDiagnostics; + } + + public function getNetworkDiagnostics() + { + return $this->networkDiagnostics; + } +} + +class Google_Service_Games_RoomLeaveDiagnostics extends Google_Collection +{ + protected $collection_key = 'peerSession'; + protected $internal_gapi_mappings = array( + ); + public $androidNetworkSubtype; + public $androidNetworkType; + public $iosNetworkType; + public $kind; + public $networkOperatorCode; + public $networkOperatorName; + protected $peerSessionType = 'Google_Service_Games_PeerSessionDiagnostics'; + protected $peerSessionDataType = 'array'; + public $socketsUsed; + + public function setAndroidNetworkSubtype($androidNetworkSubtype) + { + $this->androidNetworkSubtype = $androidNetworkSubtype; + } + + public function getAndroidNetworkSubtype() + { + return $this->androidNetworkSubtype; + } + + public function setAndroidNetworkType($androidNetworkType) + { + $this->androidNetworkType = $androidNetworkType; + } + + public function getAndroidNetworkType() + { + return $this->androidNetworkType; + } + + public function setIosNetworkType($iosNetworkType) + { + $this->iosNetworkType = $iosNetworkType; + } + + public function getIosNetworkType() + { + return $this->iosNetworkType; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNetworkOperatorCode($networkOperatorCode) + { + $this->networkOperatorCode = $networkOperatorCode; + } + + public function getNetworkOperatorCode() + { + return $this->networkOperatorCode; + } + + public function setNetworkOperatorName($networkOperatorName) + { + $this->networkOperatorName = $networkOperatorName; + } + + public function getNetworkOperatorName() + { + return $this->networkOperatorName; + } + + public function setPeerSession($peerSession) + { + $this->peerSession = $peerSession; + } + + public function getPeerSession() + { + return $this->peerSession; + } + + public function setSocketsUsed($socketsUsed) + { + $this->socketsUsed = $socketsUsed; + } + + public function getSocketsUsed() + { + return $this->socketsUsed; + } +} + +class Google_Service_Games_RoomLeaveRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $leaveDiagnosticsType = 'Google_Service_Games_RoomLeaveDiagnostics'; + protected $leaveDiagnosticsDataType = ''; + public $reason; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeaveDiagnostics(Google_Service_Games_RoomLeaveDiagnostics $leaveDiagnostics) + { + $this->leaveDiagnostics = $leaveDiagnostics; + } + + public function getLeaveDiagnostics() + { + return $this->leaveDiagnostics; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_Games_RoomList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_Room'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_RoomModification extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $modifiedTimestampMillis; + public $participantId; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedTimestampMillis($modifiedTimestampMillis) + { + $this->modifiedTimestampMillis = $modifiedTimestampMillis; + } + + public function getModifiedTimestampMillis() + { + return $this->modifiedTimestampMillis; + } + + public function setParticipantId($participantId) + { + $this->participantId = $participantId; + } + + public function getParticipantId() + { + return $this->participantId; + } +} + +class Google_Service_Games_RoomP2PStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + "errorReason" => "error_reason", + ); + public $connectionSetupLatencyMillis; + public $error; + public $errorReason; + public $kind; + public $participantId; + public $status; + public $unreliableRoundtripLatencyMillis; + + public function setConnectionSetupLatencyMillis($connectionSetupLatencyMillis) + { + $this->connectionSetupLatencyMillis = $connectionSetupLatencyMillis; + } + + public function getConnectionSetupLatencyMillis() + { + return $this->connectionSetupLatencyMillis; + } + + public function setError($error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setErrorReason($errorReason) + { + $this->errorReason = $errorReason; + } + + public function getErrorReason() + { + return $this->errorReason; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParticipantId($participantId) + { + $this->participantId = $participantId; + } + + public function getParticipantId() + { + return $this->participantId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUnreliableRoundtripLatencyMillis($unreliableRoundtripLatencyMillis) + { + $this->unreliableRoundtripLatencyMillis = $unreliableRoundtripLatencyMillis; + } + + public function getUnreliableRoundtripLatencyMillis() + { + return $this->unreliableRoundtripLatencyMillis; + } +} + +class Google_Service_Games_RoomP2PStatuses extends Google_Collection +{ + protected $collection_key = 'updates'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $updatesType = 'Google_Service_Games_RoomP2PStatus'; + protected $updatesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUpdates($updates) + { + $this->updates = $updates; + } + + public function getUpdates() + { + return $this->updates; + } +} + +class Google_Service_Games_RoomParticipant extends Google_Collection +{ + protected $collection_key = 'capabilities'; + protected $internal_gapi_mappings = array( + ); + public $autoMatched; + protected $autoMatchedPlayerType = 'Google_Service_Games_AnonymousPlayer'; + protected $autoMatchedPlayerDataType = ''; + public $capabilities; + protected $clientAddressType = 'Google_Service_Games_RoomClientAddress'; + protected $clientAddressDataType = ''; + public $connected; + public $id; + public $kind; + public $leaveReason; + protected $playerType = 'Google_Service_Games_Player'; + protected $playerDataType = ''; + public $status; + + public function setAutoMatched($autoMatched) + { + $this->autoMatched = $autoMatched; + } + + public function getAutoMatched() + { + return $this->autoMatched; + } + + public function setAutoMatchedPlayer(Google_Service_Games_AnonymousPlayer $autoMatchedPlayer) + { + $this->autoMatchedPlayer = $autoMatchedPlayer; + } + + public function getAutoMatchedPlayer() + { + return $this->autoMatchedPlayer; + } + + public function setCapabilities($capabilities) + { + $this->capabilities = $capabilities; + } + + public function getCapabilities() + { + return $this->capabilities; + } + + public function setClientAddress(Google_Service_Games_RoomClientAddress $clientAddress) + { + $this->clientAddress = $clientAddress; + } + + public function getClientAddress() + { + return $this->clientAddress; + } + + public function setConnected($connected) + { + $this->connected = $connected; + } + + public function getConnected() + { + return $this->connected; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeaveReason($leaveReason) + { + $this->leaveReason = $leaveReason; + } + + public function getLeaveReason() + { + return $this->leaveReason; + } + + public function setPlayer(Google_Service_Games_Player $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Games_RoomStatus extends Google_Collection +{ + protected $collection_key = 'participants'; + protected $internal_gapi_mappings = array( + ); + protected $autoMatchingStatusType = 'Google_Service_Games_RoomAutoMatchStatus'; + protected $autoMatchingStatusDataType = ''; + public $kind; + protected $participantsType = 'Google_Service_Games_RoomParticipant'; + protected $participantsDataType = 'array'; + public $roomId; + public $status; + public $statusVersion; + + public function setAutoMatchingStatus(Google_Service_Games_RoomAutoMatchStatus $autoMatchingStatus) + { + $this->autoMatchingStatus = $autoMatchingStatus; + } + + public function getAutoMatchingStatus() + { + return $this->autoMatchingStatus; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParticipants($participants) + { + $this->participants = $participants; + } + + public function getParticipants() + { + return $this->participants; + } + + public function setRoomId($roomId) + { + $this->roomId = $roomId; + } + + public function getRoomId() + { + return $this->roomId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setStatusVersion($statusVersion) + { + $this->statusVersion = $statusVersion; + } + + public function getStatusVersion() + { + return $this->statusVersion; + } +} + +class Google_Service_Games_ScoreSubmission extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $leaderboardId; + public $score; + public $scoreTag; + public $signature; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeaderboardId($leaderboardId) + { + $this->leaderboardId = $leaderboardId; + } + + public function getLeaderboardId() + { + return $this->leaderboardId; + } + + public function setScore($score) + { + $this->score = $score; + } + + public function getScore() + { + return $this->score; + } + + public function setScoreTag($scoreTag) + { + $this->scoreTag = $scoreTag; + } + + public function getScoreTag() + { + return $this->scoreTag; + } + + public function setSignature($signature) + { + $this->signature = $signature; + } + + public function getSignature() + { + return $this->signature; + } +} + +class Google_Service_Games_Snapshot extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $coverImageType = 'Google_Service_Games_SnapshotImage'; + protected $coverImageDataType = ''; + public $description; + public $driveId; + public $durationMillis; + public $id; + public $kind; + public $lastModifiedMillis; + public $title; + public $type; + public $uniqueName; + + public function setCoverImage(Google_Service_Games_SnapshotImage $coverImage) + { + $this->coverImage = $coverImage; + } + + public function getCoverImage() + { + return $this->coverImage; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDriveId($driveId) + { + $this->driveId = $driveId; + } + + public function getDriveId() + { + return $this->driveId; + } + + public function setDurationMillis($durationMillis) + { + $this->durationMillis = $durationMillis; + } + + public function getDurationMillis() + { + return $this->durationMillis; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifiedMillis($lastModifiedMillis) + { + $this->lastModifiedMillis = $lastModifiedMillis; + } + + public function getLastModifiedMillis() + { + return $this->lastModifiedMillis; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUniqueName($uniqueName) + { + $this->uniqueName = $uniqueName; + } + + public function getUniqueName() + { + return $this->uniqueName; + } +} + +class Google_Service_Games_SnapshotImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + "mimeType" => "mime_type", + ); + public $height; + public $kind; + public $mimeType; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Games_SnapshotListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_Snapshot'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_TurnBasedAutoMatchingCriteria extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $exclusiveBitmask; + public $kind; + public $maxAutoMatchingPlayers; + public $minAutoMatchingPlayers; + + public function setExclusiveBitmask($exclusiveBitmask) + { + $this->exclusiveBitmask = $exclusiveBitmask; + } + + public function getExclusiveBitmask() + { + return $this->exclusiveBitmask; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxAutoMatchingPlayers($maxAutoMatchingPlayers) + { + $this->maxAutoMatchingPlayers = $maxAutoMatchingPlayers; + } + + public function getMaxAutoMatchingPlayers() + { + return $this->maxAutoMatchingPlayers; + } + + public function setMinAutoMatchingPlayers($minAutoMatchingPlayers) + { + $this->minAutoMatchingPlayers = $minAutoMatchingPlayers; + } + + public function getMinAutoMatchingPlayers() + { + return $this->minAutoMatchingPlayers; + } +} + +class Google_Service_Games_TurnBasedMatch extends Google_Collection +{ + protected $collection_key = 'results'; + protected $internal_gapi_mappings = array( + ); + public $applicationId; + protected $autoMatchingCriteriaType = 'Google_Service_Games_TurnBasedAutoMatchingCriteria'; + protected $autoMatchingCriteriaDataType = ''; + protected $creationDetailsType = 'Google_Service_Games_TurnBasedMatchModification'; + protected $creationDetailsDataType = ''; + protected $dataType = 'Google_Service_Games_TurnBasedMatchData'; + protected $dataDataType = ''; + public $description; + public $inviterId; + public $kind; + protected $lastUpdateDetailsType = 'Google_Service_Games_TurnBasedMatchModification'; + protected $lastUpdateDetailsDataType = ''; + public $matchId; + public $matchNumber; + public $matchVersion; + protected $participantsType = 'Google_Service_Games_TurnBasedMatchParticipant'; + protected $participantsDataType = 'array'; + public $pendingParticipantId; + protected $previousMatchDataType = 'Google_Service_Games_TurnBasedMatchData'; + protected $previousMatchDataDataType = ''; + public $rematchId; + protected $resultsType = 'Google_Service_Games_ParticipantResult'; + protected $resultsDataType = 'array'; + public $status; + public $userMatchStatus; + public $variant; + public $withParticipantId; + + public function setApplicationId($applicationId) + { + $this->applicationId = $applicationId; + } + + public function getApplicationId() + { + return $this->applicationId; + } + + public function setAutoMatchingCriteria(Google_Service_Games_TurnBasedAutoMatchingCriteria $autoMatchingCriteria) + { + $this->autoMatchingCriteria = $autoMatchingCriteria; + } + + public function getAutoMatchingCriteria() + { + return $this->autoMatchingCriteria; + } + + public function setCreationDetails(Google_Service_Games_TurnBasedMatchModification $creationDetails) + { + $this->creationDetails = $creationDetails; + } + + public function getCreationDetails() + { + return $this->creationDetails; + } + + public function setData(Google_Service_Games_TurnBasedMatchData $data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setInviterId($inviterId) + { + $this->inviterId = $inviterId; + } + + public function getInviterId() + { + return $this->inviterId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdateDetails(Google_Service_Games_TurnBasedMatchModification $lastUpdateDetails) + { + $this->lastUpdateDetails = $lastUpdateDetails; + } + + public function getLastUpdateDetails() + { + return $this->lastUpdateDetails; + } + + public function setMatchId($matchId) + { + $this->matchId = $matchId; + } + + public function getMatchId() + { + return $this->matchId; + } + + public function setMatchNumber($matchNumber) + { + $this->matchNumber = $matchNumber; + } + + public function getMatchNumber() + { + return $this->matchNumber; + } + + public function setMatchVersion($matchVersion) + { + $this->matchVersion = $matchVersion; + } + + public function getMatchVersion() + { + return $this->matchVersion; + } + + public function setParticipants($participants) + { + $this->participants = $participants; + } + + public function getParticipants() + { + return $this->participants; + } + + public function setPendingParticipantId($pendingParticipantId) + { + $this->pendingParticipantId = $pendingParticipantId; + } + + public function getPendingParticipantId() + { + return $this->pendingParticipantId; + } + + public function setPreviousMatchData(Google_Service_Games_TurnBasedMatchData $previousMatchData) + { + $this->previousMatchData = $previousMatchData; + } + + public function getPreviousMatchData() + { + return $this->previousMatchData; + } + + public function setRematchId($rematchId) + { + $this->rematchId = $rematchId; + } + + public function getRematchId() + { + return $this->rematchId; + } + + public function setResults($results) + { + $this->results = $results; + } + + public function getResults() + { + return $this->results; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUserMatchStatus($userMatchStatus) + { + $this->userMatchStatus = $userMatchStatus; + } + + public function getUserMatchStatus() + { + return $this->userMatchStatus; + } + + public function setVariant($variant) + { + $this->variant = $variant; + } + + public function getVariant() + { + return $this->variant; + } + + public function setWithParticipantId($withParticipantId) + { + $this->withParticipantId = $withParticipantId; + } + + public function getWithParticipantId() + { + return $this->withParticipantId; + } +} + +class Google_Service_Games_TurnBasedMatchCreateRequest extends Google_Collection +{ + protected $collection_key = 'invitedPlayerIds'; + protected $internal_gapi_mappings = array( + ); + protected $autoMatchingCriteriaType = 'Google_Service_Games_TurnBasedAutoMatchingCriteria'; + protected $autoMatchingCriteriaDataType = ''; + public $invitedPlayerIds; + public $kind; + public $requestId; + public $variant; + + public function setAutoMatchingCriteria(Google_Service_Games_TurnBasedAutoMatchingCriteria $autoMatchingCriteria) + { + $this->autoMatchingCriteria = $autoMatchingCriteria; + } + + public function getAutoMatchingCriteria() + { + return $this->autoMatchingCriteria; + } + + public function setInvitedPlayerIds($invitedPlayerIds) + { + $this->invitedPlayerIds = $invitedPlayerIds; + } + + public function getInvitedPlayerIds() + { + return $this->invitedPlayerIds; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + public function getRequestId() + { + return $this->requestId; + } + + public function setVariant($variant) + { + $this->variant = $variant; + } + + public function getVariant() + { + return $this->variant; + } +} + +class Google_Service_Games_TurnBasedMatchData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $data; + public $dataAvailable; + public $kind; + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setDataAvailable($dataAvailable) + { + $this->dataAvailable = $dataAvailable; + } + + public function getDataAvailable() + { + return $this->dataAvailable; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_TurnBasedMatchDataRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $data; + public $kind; + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Games_TurnBasedMatchList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_TurnBasedMatch'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_TurnBasedMatchModification extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $modifiedTimestampMillis; + public $participantId; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedTimestampMillis($modifiedTimestampMillis) + { + $this->modifiedTimestampMillis = $modifiedTimestampMillis; + } + + public function getModifiedTimestampMillis() + { + return $this->modifiedTimestampMillis; + } + + public function setParticipantId($participantId) + { + $this->participantId = $participantId; + } + + public function getParticipantId() + { + return $this->participantId; + } +} + +class Google_Service_Games_TurnBasedMatchParticipant extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $autoMatched; + protected $autoMatchedPlayerType = 'Google_Service_Games_AnonymousPlayer'; + protected $autoMatchedPlayerDataType = ''; + public $id; + public $kind; + protected $playerType = 'Google_Service_Games_Player'; + protected $playerDataType = ''; + public $status; + + public function setAutoMatched($autoMatched) + { + $this->autoMatched = $autoMatched; + } + + public function getAutoMatched() + { + return $this->autoMatched; + } + + public function setAutoMatchedPlayer(Google_Service_Games_AnonymousPlayer $autoMatchedPlayer) + { + $this->autoMatchedPlayer = $autoMatchedPlayer; + } + + public function getAutoMatchedPlayer() + { + return $this->autoMatchedPlayer; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlayer(Google_Service_Games_Player $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Games_TurnBasedMatchRematch extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $previousMatchType = 'Google_Service_Games_TurnBasedMatch'; + protected $previousMatchDataType = ''; + protected $rematchType = 'Google_Service_Games_TurnBasedMatch'; + protected $rematchDataType = ''; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPreviousMatch(Google_Service_Games_TurnBasedMatch $previousMatch) + { + $this->previousMatch = $previousMatch; + } + + public function getPreviousMatch() + { + return $this->previousMatch; + } + + public function setRematch(Google_Service_Games_TurnBasedMatch $rematch) + { + $this->rematch = $rematch; + } + + public function getRematch() + { + return $this->rematch; + } +} + +class Google_Service_Games_TurnBasedMatchResults extends Google_Collection +{ + protected $collection_key = 'results'; + protected $internal_gapi_mappings = array( + ); + protected $dataType = 'Google_Service_Games_TurnBasedMatchDataRequest'; + protected $dataDataType = ''; + public $kind; + public $matchVersion; + protected $resultsType = 'Google_Service_Games_ParticipantResult'; + protected $resultsDataType = 'array'; + + public function setData(Google_Service_Games_TurnBasedMatchDataRequest $data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMatchVersion($matchVersion) + { + $this->matchVersion = $matchVersion; + } + + public function getMatchVersion() + { + return $this->matchVersion; + } + + public function setResults($results) + { + $this->results = $results; + } + + public function getResults() + { + return $this->results; + } +} + +class Google_Service_Games_TurnBasedMatchSync extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Games_TurnBasedMatch'; + protected $itemsDataType = 'array'; + public $kind; + public $moreAvailable; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMoreAvailable($moreAvailable) + { + $this->moreAvailable = $moreAvailable; + } + + public function getMoreAvailable() + { + return $this->moreAvailable; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Games_TurnBasedMatchTurn extends Google_Collection +{ + protected $collection_key = 'results'; + protected $internal_gapi_mappings = array( + ); + protected $dataType = 'Google_Service_Games_TurnBasedMatchDataRequest'; + protected $dataDataType = ''; + public $kind; + public $matchVersion; + public $pendingParticipantId; + protected $resultsType = 'Google_Service_Games_ParticipantResult'; + protected $resultsDataType = 'array'; + + public function setData(Google_Service_Games_TurnBasedMatchDataRequest $data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMatchVersion($matchVersion) + { + $this->matchVersion = $matchVersion; + } + + public function getMatchVersion() + { + return $this->matchVersion; + } + + public function setPendingParticipantId($pendingParticipantId) + { + $this->pendingParticipantId = $pendingParticipantId; + } + + public function getPendingParticipantId() + { + return $this->pendingParticipantId; + } + + public function setResults($results) + { + $this->results = $results; + } + + public function getResults() + { + return $this->results; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/GamesManagement.php b/vendor/google/apiclient/src/Google/Service/GamesManagement.php new file mode 100644 index 0000000..39b6a4a --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/GamesManagement.php @@ -0,0 +1,1037 @@ + + * The Management API for Google Play Game Services. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_GamesManagement extends Google_Service +{ + /** Share your Google+ profile information and view and manage your game activity. */ + const GAMES = "https://www.googleapis.com/auth/games"; + /** Know your basic profile info and list of people in your circles.. */ + const PLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; + + public $achievements; + public $applications; + public $events; + public $players; + public $quests; + public $rooms; + public $scores; + public $turnBasedMatches; + + + /** + * Constructs the internal representation of the GamesManagement service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'games/v1management/'; + $this->version = 'v1management'; + $this->serviceName = 'gamesManagement'; + + $this->achievements = new Google_Service_GamesManagement_Achievements_Resource( + $this, + $this->serviceName, + 'achievements', + array( + 'methods' => array( + 'reset' => array( + 'path' => 'achievements/{achievementId}/reset', + 'httpMethod' => 'POST', + 'parameters' => array( + 'achievementId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'resetAll' => array( + 'path' => 'achievements/reset', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'resetForAllPlayers' => array( + 'path' => 'achievements/{achievementId}/resetForAllPlayers', + 'httpMethod' => 'POST', + 'parameters' => array( + 'achievementId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->applications = new Google_Service_GamesManagement_Applications_Resource( + $this, + $this->serviceName, + 'applications', + array( + 'methods' => array( + 'listHidden' => array( + 'path' => 'applications/{applicationId}/players/hidden', + 'httpMethod' => 'GET', + 'parameters' => array( + 'applicationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->events = new Google_Service_GamesManagement_Events_Resource( + $this, + $this->serviceName, + 'events', + array( + 'methods' => array( + 'reset' => array( + 'path' => 'events/{eventId}/reset', + 'httpMethod' => 'POST', + 'parameters' => array( + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'resetAll' => array( + 'path' => 'events/reset', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'resetForAllPlayers' => array( + 'path' => 'events/{eventId}/resetForAllPlayers', + 'httpMethod' => 'POST', + 'parameters' => array( + 'eventId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->players = new Google_Service_GamesManagement_Players_Resource( + $this, + $this->serviceName, + 'players', + array( + 'methods' => array( + 'hide' => array( + 'path' => 'applications/{applicationId}/players/hidden/{playerId}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'applicationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'unhide' => array( + 'path' => 'applications/{applicationId}/players/hidden/{playerId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'applicationId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'playerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->quests = new Google_Service_GamesManagement_Quests_Resource( + $this, + $this->serviceName, + 'quests', + array( + 'methods' => array( + 'reset' => array( + 'path' => 'quests/{questId}/reset', + 'httpMethod' => 'POST', + 'parameters' => array( + 'questId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->rooms = new Google_Service_GamesManagement_Rooms_Resource( + $this, + $this->serviceName, + 'rooms', + array( + 'methods' => array( + 'reset' => array( + 'path' => 'rooms/reset', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->scores = new Google_Service_GamesManagement_Scores_Resource( + $this, + $this->serviceName, + 'scores', + array( + 'methods' => array( + 'reset' => array( + 'path' => 'leaderboards/{leaderboardId}/scores/reset', + 'httpMethod' => 'POST', + 'parameters' => array( + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'resetForAllPlayers' => array( + 'path' => 'leaderboards/{leaderboardId}/scores/resetForAllPlayers', + 'httpMethod' => 'POST', + 'parameters' => array( + 'leaderboardId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->turnBasedMatches = new Google_Service_GamesManagement_TurnBasedMatches_Resource( + $this, + $this->serviceName, + 'turnBasedMatches', + array( + 'methods' => array( + 'reset' => array( + 'path' => 'turnbasedmatches/reset', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "achievements" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $achievements = $gamesManagementService->achievements; + * + */ +class Google_Service_GamesManagement_Achievements_Resource extends Google_Service_Resource +{ + + /** + * Resets the achievement with the given ID for the currently authenticated + * player. This method is only accessible to whitelisted tester accounts for + * your application. (achievements.reset) + * + * @param string $achievementId + * The ID of the achievement used by this method. + * @param array $optParams Optional parameters. + * @return Google_Service_GamesManagement_AchievementResetResponse + */ + public function reset($achievementId, $optParams = array()) + { + $params = array('achievementId' => $achievementId); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params), "Google_Service_GamesManagement_AchievementResetResponse"); + } + /** + * Resets all achievements for the currently authenticated player for your + * application. This method is only accessible to whitelisted tester accounts + * for your application. (achievements.resetAll) + * + * @param array $optParams Optional parameters. + * @return Google_Service_GamesManagement_AchievementResetAllResponse + */ + public function resetAll($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('resetAll', array($params), "Google_Service_GamesManagement_AchievementResetAllResponse"); + } + /** + * Resets the achievement with the given ID for the all players. This method is + * only available to user accounts for your developer console. Only draft + * achievements can be reset. (achievements.resetForAllPlayers) + * + * @param string $achievementId + * The ID of the achievement used by this method. + * @param array $optParams Optional parameters. + */ + public function resetForAllPlayers($achievementId, $optParams = array()) + { + $params = array('achievementId' => $achievementId); + $params = array_merge($params, $optParams); + return $this->call('resetForAllPlayers', array($params)); + } +} + +/** + * The "applications" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $applications = $gamesManagementService->applications; + * + */ +class Google_Service_GamesManagement_Applications_Resource extends Google_Service_Resource +{ + + /** + * Get the list of players hidden from the given application. This method is + * only available to user accounts for your developer console. + * (applications.listHidden) + * + * @param string $applicationId + * The application being requested. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param int maxResults + * The maximum number of player resources to return in the response, used for paging. For any + * response, the actual number of player resources returned may be less than the specified + * maxResults. + * @return Google_Service_GamesManagement_HiddenPlayerList + */ + public function listHidden($applicationId, $optParams = array()) + { + $params = array('applicationId' => $applicationId); + $params = array_merge($params, $optParams); + return $this->call('listHidden', array($params), "Google_Service_GamesManagement_HiddenPlayerList"); + } +} + +/** + * The "events" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $events = $gamesManagementService->events; + * + */ +class Google_Service_GamesManagement_Events_Resource extends Google_Service_Resource +{ + + /** + * Reset all player progress on the event for the currently authenticated + * player. This method is only accessible to whitelisted tester accounts for + * your application. All resources that use the event will also be reset. + * (events.reset) + * + * @param string $eventId + * The ID of the event. + * @param array $optParams Optional parameters. + */ + public function reset($eventId, $optParams = array()) + { + $params = array('eventId' => $eventId); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params)); + } + /** + * Reset all player progress on all unpublished events for the currently + * authenticated player. This method is only accessible to whitelisted tester + * accounts for your application. All resources that use the events will also be + * reset. (events.resetAll) + * + * @param array $optParams Optional parameters. + */ + public function resetAll($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('resetAll', array($params)); + } + /** + * Reset all player progress on the event for all players. This method is only + * available to user accounts for your developer console. Only draft events can + * be reset. All resources that use the event will also be reset. + * (events.resetForAllPlayers) + * + * @param string $eventId + * The ID of the event. + * @param array $optParams Optional parameters. + */ + public function resetForAllPlayers($eventId, $optParams = array()) + { + $params = array('eventId' => $eventId); + $params = array_merge($params, $optParams); + return $this->call('resetForAllPlayers', array($params)); + } +} + +/** + * The "players" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $players = $gamesManagementService->players; + * + */ +class Google_Service_GamesManagement_Players_Resource extends Google_Service_Resource +{ + + /** + * Hide the given player's leaderboard scores from the given application. This + * method is only available to user accounts for your developer console. + * (players.hide) + * + * @param string $applicationId + * The application being requested. + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param array $optParams Optional parameters. + */ + public function hide($applicationId, $playerId, $optParams = array()) + { + $params = array('applicationId' => $applicationId, 'playerId' => $playerId); + $params = array_merge($params, $optParams); + return $this->call('hide', array($params)); + } + /** + * Unhide the given player's leaderboard scores from the given application. This + * method is only available to user accounts for your developer console. + * (players.unhide) + * + * @param string $applicationId + * The application being requested. + * @param string $playerId + * A player ID. A value of me may be used in place of the authenticated player's ID. + * @param array $optParams Optional parameters. + */ + public function unhide($applicationId, $playerId, $optParams = array()) + { + $params = array('applicationId' => $applicationId, 'playerId' => $playerId); + $params = array_merge($params, $optParams); + return $this->call('unhide', array($params)); + } +} + +/** + * The "quests" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $quests = $gamesManagementService->quests; + * + */ +class Google_Service_GamesManagement_Quests_Resource extends Google_Service_Resource +{ + + /** + * Reset all player progress on the quest for the currently authenticated + * player. This method is only accessible to whitelisted tester accounts for + * your application. (quests.reset) + * + * @param string $questId + * The ID of the quest. + * @param array $optParams Optional parameters. + */ + public function reset($questId, $optParams = array()) + { + $params = array('questId' => $questId); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params)); + } +} + +/** + * The "rooms" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $rooms = $gamesManagementService->rooms; + * + */ +class Google_Service_GamesManagement_Rooms_Resource extends Google_Service_Resource +{ + + /** + * Reset all rooms for the currently authenticated player for your application. + * This method is only accessible to whitelisted tester accounts for your + * application. (rooms.reset) + * + * @param array $optParams Optional parameters. + */ + public function reset($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params)); + } +} + +/** + * The "scores" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $scores = $gamesManagementService->scores; + * + */ +class Google_Service_GamesManagement_Scores_Resource extends Google_Service_Resource +{ + + /** + * Reset scores for the specified leaderboard for the currently authenticated + * player. This method is only accessible to whitelisted tester accounts for + * your application. (scores.reset) + * + * @param string $leaderboardId + * The ID of the leaderboard. + * @param array $optParams Optional parameters. + * @return Google_Service_GamesManagement_PlayerScoreResetResponse + */ + public function reset($leaderboardId, $optParams = array()) + { + $params = array('leaderboardId' => $leaderboardId); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params), "Google_Service_GamesManagement_PlayerScoreResetResponse"); + } + /** + * Reset scores for the specified leaderboard for all players. This method is + * only available to user accounts for your developer console. Only draft + * leaderboards can be reset. (scores.resetForAllPlayers) + * + * @param string $leaderboardId + * The ID of the leaderboard. + * @param array $optParams Optional parameters. + */ + public function resetForAllPlayers($leaderboardId, $optParams = array()) + { + $params = array('leaderboardId' => $leaderboardId); + $params = array_merge($params, $optParams); + return $this->call('resetForAllPlayers', array($params)); + } +} + +/** + * The "turnBasedMatches" collection of methods. + * Typical usage is: + * + * $gamesManagementService = new Google_Service_GamesManagement(...); + * $turnBasedMatches = $gamesManagementService->turnBasedMatches; + * + */ +class Google_Service_GamesManagement_TurnBasedMatches_Resource extends Google_Service_Resource +{ + + /** + * Reset all turn-based match data for a user. This method is only accessible to + * whitelisted tester accounts for your application. (turnBasedMatches.reset) + * + * @param array $optParams Optional parameters. + */ + public function reset($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('reset', array($params)); + } +} + + + + +class Google_Service_GamesManagement_AchievementResetAllResponse extends Google_Collection +{ + protected $collection_key = 'results'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $resultsType = 'Google_Service_GamesManagement_AchievementResetResponse'; + protected $resultsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setResults($results) + { + $this->results = $results; + } + + public function getResults() + { + return $this->results; + } +} + +class Google_Service_GamesManagement_AchievementResetResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentState; + public $definitionId; + public $kind; + public $updateOccurred; + + public function setCurrentState($currentState) + { + $this->currentState = $currentState; + } + + public function getCurrentState() + { + return $this->currentState; + } + + public function setDefinitionId($definitionId) + { + $this->definitionId = $definitionId; + } + + public function getDefinitionId() + { + return $this->definitionId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUpdateOccurred($updateOccurred) + { + $this->updateOccurred = $updateOccurred; + } + + public function getUpdateOccurred() + { + return $this->updateOccurred; + } +} + +class Google_Service_GamesManagement_GamesPlayedResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $autoMatched; + public $timeMillis; + + public function setAutoMatched($autoMatched) + { + $this->autoMatched = $autoMatched; + } + + public function getAutoMatched() + { + return $this->autoMatched; + } + + public function setTimeMillis($timeMillis) + { + $this->timeMillis = $timeMillis; + } + + public function getTimeMillis() + { + return $this->timeMillis; + } +} + +class Google_Service_GamesManagement_GamesPlayerExperienceInfoResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currentExperiencePoints; + protected $currentLevelType = 'Google_Service_GamesManagement_GamesPlayerLevelResource'; + protected $currentLevelDataType = ''; + public $lastLevelUpTimestampMillis; + protected $nextLevelType = 'Google_Service_GamesManagement_GamesPlayerLevelResource'; + protected $nextLevelDataType = ''; + + public function setCurrentExperiencePoints($currentExperiencePoints) + { + $this->currentExperiencePoints = $currentExperiencePoints; + } + + public function getCurrentExperiencePoints() + { + return $this->currentExperiencePoints; + } + + public function setCurrentLevel(Google_Service_GamesManagement_GamesPlayerLevelResource $currentLevel) + { + $this->currentLevel = $currentLevel; + } + + public function getCurrentLevel() + { + return $this->currentLevel; + } + + public function setLastLevelUpTimestampMillis($lastLevelUpTimestampMillis) + { + $this->lastLevelUpTimestampMillis = $lastLevelUpTimestampMillis; + } + + public function getLastLevelUpTimestampMillis() + { + return $this->lastLevelUpTimestampMillis; + } + + public function setNextLevel(Google_Service_GamesManagement_GamesPlayerLevelResource $nextLevel) + { + $this->nextLevel = $nextLevel; + } + + public function getNextLevel() + { + return $this->nextLevel; + } +} + +class Google_Service_GamesManagement_GamesPlayerLevelResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $level; + public $maxExperiencePoints; + public $minExperiencePoints; + + public function setLevel($level) + { + $this->level = $level; + } + + public function getLevel() + { + return $this->level; + } + + public function setMaxExperiencePoints($maxExperiencePoints) + { + $this->maxExperiencePoints = $maxExperiencePoints; + } + + public function getMaxExperiencePoints() + { + return $this->maxExperiencePoints; + } + + public function setMinExperiencePoints($minExperiencePoints) + { + $this->minExperiencePoints = $minExperiencePoints; + } + + public function getMinExperiencePoints() + { + return $this->minExperiencePoints; + } +} + +class Google_Service_GamesManagement_HiddenPlayer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hiddenTimeMillis; + public $kind; + protected $playerType = 'Google_Service_GamesManagement_Player'; + protected $playerDataType = ''; + + public function setHiddenTimeMillis($hiddenTimeMillis) + { + $this->hiddenTimeMillis = $hiddenTimeMillis; + } + + public function getHiddenTimeMillis() + { + return $this->hiddenTimeMillis; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlayer(Google_Service_GamesManagement_Player $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } +} + +class Google_Service_GamesManagement_HiddenPlayerList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_GamesManagement_HiddenPlayer'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_GamesManagement_Player extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $avatarImageUrl; + public $displayName; + protected $experienceInfoType = 'Google_Service_GamesManagement_GamesPlayerExperienceInfoResource'; + protected $experienceInfoDataType = ''; + public $kind; + protected $lastPlayedWithType = 'Google_Service_GamesManagement_GamesPlayedResource'; + protected $lastPlayedWithDataType = ''; + protected $nameType = 'Google_Service_GamesManagement_PlayerName'; + protected $nameDataType = ''; + public $playerId; + public $title; + + public function setAvatarImageUrl($avatarImageUrl) + { + $this->avatarImageUrl = $avatarImageUrl; + } + + public function getAvatarImageUrl() + { + return $this->avatarImageUrl; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setExperienceInfo(Google_Service_GamesManagement_GamesPlayerExperienceInfoResource $experienceInfo) + { + $this->experienceInfo = $experienceInfo; + } + + public function getExperienceInfo() + { + return $this->experienceInfo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPlayedWith(Google_Service_GamesManagement_GamesPlayedResource $lastPlayedWith) + { + $this->lastPlayedWith = $lastPlayedWith; + } + + public function getLastPlayedWith() + { + return $this->lastPlayedWith; + } + + public function setName(Google_Service_GamesManagement_PlayerName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPlayerId($playerId) + { + $this->playerId = $playerId; + } + + public function getPlayerId() + { + return $this->playerId; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_GamesManagement_PlayerName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $givenName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } +} + +class Google_Service_GamesManagement_PlayerScoreResetResponse extends Google_Collection +{ + protected $collection_key = 'resetScoreTimeSpans'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $resetScoreTimeSpans; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setResetScoreTimeSpans($resetScoreTimeSpans) + { + $this->resetScoreTimeSpans = $resetScoreTimeSpans; + } + + public function getResetScoreTimeSpans() + { + return $this->resetScoreTimeSpans; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Genomics.php b/vendor/google/apiclient/src/Google/Service/Genomics.php new file mode 100644 index 0000000..34b8d51 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Genomics.php @@ -0,0 +1,3685 @@ + + * Provides access to Genomics data. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Genomics extends Google_Service +{ + /** View and manage your data in Google BigQuery. */ + const BIGQUERY = "https://www.googleapis.com/auth/bigquery"; + /** Manage your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_WRITE = "https://www.googleapis.com/auth/devstorage.read_write"; + /** View and manage Genomics data. */ + const GENOMICS = "https://www.googleapis.com/auth/genomics"; + /** View Genomics data. */ + const GENOMICS_READONLY = "https://www.googleapis.com/auth/genomics.readonly"; + + public $beacons; + public $callsets; + public $datasets; + public $experimental_jobs; + public $jobs; + public $reads; + public $readsets; + public $readsets_coveragebuckets; + public $variants; + public $variantsets; + + + /** + * Constructs the internal representation of the Genomics service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'genomics/v1beta/'; + $this->version = 'v1beta'; + $this->serviceName = 'genomics'; + + $this->beacons = new Google_Service_Genomics_Beacons_Resource( + $this, + $this->serviceName, + 'beacons', + array( + 'methods' => array( + 'get' => array( + 'path' => 'beacons/{variantSetId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'variantSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'allele' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'referenceName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'position' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->callsets = new Google_Service_Genomics_Callsets_Resource( + $this, + $this->serviceName, + 'callsets', + array( + 'methods' => array( + 'create' => array( + 'path' => 'callsets', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'callsets/{callSetId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'callSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'callsets/{callSetId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'callSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'callsets/{callSetId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'callSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'search' => array( + 'path' => 'callsets/search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'update' => array( + 'path' => 'callsets/{callSetId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'callSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->datasets = new Google_Service_Genomics_Datasets_Resource( + $this, + $this->serviceName, + 'datasets', + array( + 'methods' => array( + 'create' => array( + 'path' => 'datasets', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'datasets/{datasetId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'datasets/{datasetId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'datasets', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'datasets/{datasetId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'undelete' => array( + 'path' => 'datasets/{datasetId}/undelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'datasets/{datasetId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'datasetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->experimental_jobs = new Google_Service_Genomics_ExperimentalJobs_Resource( + $this, + $this->serviceName, + 'jobs', + array( + 'methods' => array( + 'create' => array( + 'path' => 'experimental/jobs/create', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->jobs = new Google_Service_Genomics_Jobs_Resource( + $this, + $this->serviceName, + 'jobs', + array( + 'methods' => array( + 'cancel' => array( + 'path' => 'jobs/{jobId}/cancel', + 'httpMethod' => 'POST', + 'parameters' => array( + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'jobs/{jobId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'jobId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'search' => array( + 'path' => 'jobs/search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->reads = new Google_Service_Genomics_Reads_Resource( + $this, + $this->serviceName, + 'reads', + array( + 'methods' => array( + 'search' => array( + 'path' => 'reads/search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->readsets = new Google_Service_Genomics_Readsets_Resource( + $this, + $this->serviceName, + 'readsets', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'readsets/{readsetId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'readsetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'export' => array( + 'path' => 'readsets/export', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'get' => array( + 'path' => 'readsets/{readsetId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'readsetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'import' => array( + 'path' => 'readsets/import', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'patch' => array( + 'path' => 'readsets/{readsetId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'readsetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'search' => array( + 'path' => 'readsets/search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'update' => array( + 'path' => 'readsets/{readsetId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'readsetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->readsets_coveragebuckets = new Google_Service_Genomics_ReadsetsCoveragebuckets_Resource( + $this, + $this->serviceName, + 'coveragebuckets', + array( + 'methods' => array( + 'list' => array( + 'path' => 'readsets/{readsetId}/coveragebuckets', + 'httpMethod' => 'GET', + 'parameters' => array( + 'readsetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'range.sequenceStart' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'range.sequenceName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'targetBucketWidth' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'range.sequenceEnd' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->variants = new Google_Service_Genomics_Variants_Resource( + $this, + $this->serviceName, + 'variants', + array( + 'methods' => array( + 'create' => array( + 'path' => 'variants', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'variants/{variantId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'variantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'export' => array( + 'path' => 'variants/export', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'get' => array( + 'path' => 'variants/{variantId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'variantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'import' => array( + 'path' => 'variants/import', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'search' => array( + 'path' => 'variants/search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'update' => array( + 'path' => 'variants/{variantId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'variantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->variantsets = new Google_Service_Genomics_Variantsets_Resource( + $this, + $this->serviceName, + 'variantsets', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'variantsets/{variantSetId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'variantSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'variantsets/{variantSetId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'variantSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'mergeVariants' => array( + 'path' => 'variantsets/{variantSetId}/mergeVariants', + 'httpMethod' => 'POST', + 'parameters' => array( + 'variantSetId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'search' => array( + 'path' => 'variantsets/search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "beacons" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $beacons = $genomicsService->beacons; + * + */ +class Google_Service_Genomics_Beacons_Resource extends Google_Service_Resource +{ + + /** + * This is an experimental API that provides a Global Alliance for Genomics and + * Health Beacon. It may change at any time. (beacons.get) + * + * @param string $variantSetId + * The ID of the variant set to query over. It must be public. Private variant sets will return an + * unauthorized exception. + * @param array $optParams Optional parameters. + * + * @opt_param string allele + * Required. The allele to look for ('A', 'C', 'G' or 'T'). + * @opt_param string referenceName + * Required. The reference to query over. + * @opt_param string position + * Required. The 0-based position to query. + * @return Google_Service_Genomics_Beacon + */ + public function get($variantSetId, $optParams = array()) + { + $params = array('variantSetId' => $variantSetId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_Beacon"); + } +} + +/** + * The "callsets" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $callsets = $genomicsService->callsets; + * + */ +class Google_Service_Genomics_Callsets_Resource extends Google_Service_Resource +{ + + /** + * Creates a new call set. (callsets.create) + * + * @param Google_CallSet $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_CallSet + */ + public function create(Google_Service_Genomics_CallSet $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Genomics_CallSet"); + } + /** + * Deletes a call set. (callsets.delete) + * + * @param string $callSetId + * The ID of the callset to be deleted. + * @param array $optParams Optional parameters. + */ + public function delete($callSetId, $optParams = array()) + { + $params = array('callSetId' => $callSetId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a call set by ID. (callsets.get) + * + * @param string $callSetId + * The ID of the callset. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_CallSet + */ + public function get($callSetId, $optParams = array()) + { + $params = array('callSetId' => $callSetId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_CallSet"); + } + /** + * Updates a call set. This method supports patch semantics. (callsets.patch) + * + * @param string $callSetId + * The ID of the callset to be updated. + * @param Google_CallSet $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_CallSet + */ + public function patch($callSetId, Google_Service_Genomics_CallSet $postBody, $optParams = array()) + { + $params = array('callSetId' => $callSetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Genomics_CallSet"); + } + /** + * Gets a list of call sets matching the criteria. (callsets.search) + * + * @param Google_SearchCallSetsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_SearchCallSetsResponse + */ + public function search(Google_Service_Genomics_SearchCallSetsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Genomics_SearchCallSetsResponse"); + } + /** + * Updates a call set. (callsets.update) + * + * @param string $callSetId + * The ID of the callset to be updated. + * @param Google_CallSet $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_CallSet + */ + public function update($callSetId, Google_Service_Genomics_CallSet $postBody, $optParams = array()) + { + $params = array('callSetId' => $callSetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Genomics_CallSet"); + } +} + +/** + * The "datasets" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $datasets = $genomicsService->datasets; + * + */ +class Google_Service_Genomics_Datasets_Resource extends Google_Service_Resource +{ + + /** + * Creates a new dataset. (datasets.create) + * + * @param Google_Dataset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Dataset + */ + public function create(Google_Service_Genomics_Dataset $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Genomics_Dataset"); + } + /** + * Deletes a dataset. (datasets.delete) + * + * @param string $datasetId + * The ID of the dataset to be deleted. + * @param array $optParams Optional parameters. + */ + public function delete($datasetId, $optParams = array()) + { + $params = array('datasetId' => $datasetId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a dataset by ID. (datasets.get) + * + * @param string $datasetId + * The ID of the dataset. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Dataset + */ + public function get($datasetId, $optParams = array()) + { + $params = array('datasetId' => $datasetId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_Dataset"); + } + /** + * Lists all datasets. (datasets.listDatasets) + * + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of results returned by this request. + * @opt_param string projectId + * Only return datasets which belong to this Google Developers Console project. Only accepts + * project numbers. + * @return Google_Service_Genomics_ListDatasetsResponse + */ + public function listDatasets($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Genomics_ListDatasetsResponse"); + } + /** + * Updates a dataset. This method supports patch semantics. (datasets.patch) + * + * @param string $datasetId + * The ID of the dataset to be updated. + * @param Google_Dataset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Dataset + */ + public function patch($datasetId, Google_Service_Genomics_Dataset $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Genomics_Dataset"); + } + /** + * Undeletes a dataset by restoring a dataset which was deleted via this API. + * This operation is only possible for a week after the deletion occurred. + * (datasets.undelete) + * + * @param string $datasetId + * The ID of the dataset to be undeleted. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Dataset + */ + public function undelete($datasetId, $optParams = array()) + { + $params = array('datasetId' => $datasetId); + $params = array_merge($params, $optParams); + return $this->call('undelete', array($params), "Google_Service_Genomics_Dataset"); + } + /** + * Updates a dataset. (datasets.update) + * + * @param string $datasetId + * The ID of the dataset to be updated. + * @param Google_Dataset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Dataset + */ + public function update($datasetId, Google_Service_Genomics_Dataset $postBody, $optParams = array()) + { + $params = array('datasetId' => $datasetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Genomics_Dataset"); + } +} + +/** + * The "experimental" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $experimental = $genomicsService->experimental; + * + */ +class Google_Service_Genomics_Experimental_Resource extends Google_Service_Resource +{ + +} + +/** + * The "jobs" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $jobs = $genomicsService->jobs; + * + */ +class Google_Service_Genomics_ExperimentalJobs_Resource extends Google_Service_Resource +{ + + /** + * Creates and asynchronously runs an ad-hoc job. This is an experimental call + * and may be removed or changed at any time. (jobs.create) + * + * @param Google_ExperimentalCreateJobRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_ExperimentalCreateJobResponse + */ + public function create(Google_Service_Genomics_ExperimentalCreateJobRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Genomics_ExperimentalCreateJobResponse"); + } +} + +/** + * The "jobs" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $jobs = $genomicsService->jobs; + * + */ +class Google_Service_Genomics_Jobs_Resource extends Google_Service_Resource +{ + + /** + * Cancels a job by ID. Note that it is possible for partial results to be + * generated and stored for cancelled jobs. (jobs.cancel) + * + * @param string $jobId + * Required. The ID of the job. + * @param array $optParams Optional parameters. + */ + public function cancel($jobId, $optParams = array()) + { + $params = array('jobId' => $jobId); + $params = array_merge($params, $optParams); + return $this->call('cancel', array($params)); + } + /** + * Gets a job by ID. (jobs.get) + * + * @param string $jobId + * Required. The ID of the job. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Job + */ + public function get($jobId, $optParams = array()) + { + $params = array('jobId' => $jobId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_Job"); + } + /** + * Gets a list of jobs matching the criteria. (jobs.search) + * + * @param Google_SearchJobsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_SearchJobsResponse + */ + public function search(Google_Service_Genomics_SearchJobsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Genomics_SearchJobsResponse"); + } +} + +/** + * The "reads" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $reads = $genomicsService->reads; + * + */ +class Google_Service_Genomics_Reads_Resource extends Google_Service_Resource +{ + + /** + * Gets a list of reads for one or more readsets. Reads search operates over a + * genomic coordinate space of reference sequence & position defined over the + * reference sequences to which the requested readsets are aligned. If a target + * positional range is specified, search returns all reads whose alignment to + * the reference genome overlap the range. A query which specifies only readset + * IDs yields all reads in those readsets, including unmapped reads. All reads + * returned (including reads on subsequent pages) are ordered by genomic + * coordinate (reference sequence & position). Reads with equivalent genomic + * coordinates are returned in a deterministic order. (reads.search) + * + * @param Google_SearchReadsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_SearchReadsResponse + */ + public function search(Google_Service_Genomics_SearchReadsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Genomics_SearchReadsResponse"); + } +} + +/** + * The "readsets" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $readsets = $genomicsService->readsets; + * + */ +class Google_Service_Genomics_Readsets_Resource extends Google_Service_Resource +{ + + /** + * Deletes a readset. (readsets.delete) + * + * @param string $readsetId + * The ID of the readset to be deleted. The caller must have WRITE permissions to the dataset + * associated with this readset. + * @param array $optParams Optional parameters. + */ + public function delete($readsetId, $optParams = array()) + { + $params = array('readsetId' => $readsetId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Exports readsets to a BAM file in Google Cloud Storage. Note that currently + * there may be some differences between exported BAM files and the original BAM + * file at the time of import. In particular, comments in the input file header + * will not be preserved, and some custom tags will be converted to strings. + * (readsets.export) + * + * @param Google_ExportReadsetsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_ExportReadsetsResponse + */ + public function export(Google_Service_Genomics_ExportReadsetsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('export', array($params), "Google_Service_Genomics_ExportReadsetsResponse"); + } + /** + * Gets a readset by ID. (readsets.get) + * + * @param string $readsetId + * The ID of the readset. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Readset + */ + public function get($readsetId, $optParams = array()) + { + $params = array('readsetId' => $readsetId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_Readset"); + } + /** + * Creates readsets by asynchronously importing the provided information. Note + * that currently comments in the input file header are not imported and some + * custom tags will be converted to strings, rather than preserving tag types. + * The caller must have WRITE permissions to the dataset. (readsets.import) + * + * @param Google_ImportReadsetsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_ImportReadsetsResponse + */ + public function import(Google_Service_Genomics_ImportReadsetsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('import', array($params), "Google_Service_Genomics_ImportReadsetsResponse"); + } + /** + * Updates a readset. This method supports patch semantics. (readsets.patch) + * + * @param string $readsetId + * The ID of the readset to be updated. The caller must have WRITE permissions to the dataset + * associated with this readset. + * @param Google_Readset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Readset + */ + public function patch($readsetId, Google_Service_Genomics_Readset $postBody, $optParams = array()) + { + $params = array('readsetId' => $readsetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Genomics_Readset"); + } + /** + * Gets a list of readsets matching the criteria. (readsets.search) + * + * @param Google_SearchReadsetsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_SearchReadsetsResponse + */ + public function search(Google_Service_Genomics_SearchReadsetsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Genomics_SearchReadsetsResponse"); + } + /** + * Updates a readset. (readsets.update) + * + * @param string $readsetId + * The ID of the readset to be updated. The caller must have WRITE permissions to the dataset + * associated with this readset. + * @param Google_Readset $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Readset + */ + public function update($readsetId, Google_Service_Genomics_Readset $postBody, $optParams = array()) + { + $params = array('readsetId' => $readsetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Genomics_Readset"); + } +} + +/** + * The "coveragebuckets" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $coveragebuckets = $genomicsService->coveragebuckets; + * + */ +class Google_Service_Genomics_ReadsetsCoveragebuckets_Resource extends Google_Service_Resource +{ + + /** + * Lists fixed width coverage buckets for a readset, each of which correspond to + * a range of a reference sequence. Each bucket summarizes coverage information + * across its corresponding genomic range. Coverage is defined as the number of + * reads which are aligned to a given base in the reference sequence. Coverage + * buckets are available at various bucket widths, enabling various coverage + * "zoom levels". The caller must have READ permissions for the target readset. + * (coveragebuckets.listReadsetsCoveragebuckets) + * + * @param string $readsetId + * Required. The ID of the readset over which coverage is requested. + * @param array $optParams Optional parameters. + * + * @opt_param string range.sequenceStart + * The start position of the range on the reference, 1-based inclusive. If specified, sequenceName + * must also be specified. + * @opt_param string maxResults + * The maximum number of results to return in a single page. If unspecified, defaults to 1024. The + * maximum value is 2048. + * @opt_param string range.sequenceName + * The reference sequence name, for example chr1, 1, or chrX. + * @opt_param string 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. + * @opt_param string targetBucketWidth + * The desired width of each reported coverage bucket in base pairs. This will be rounded down to + * the nearest precomputed bucket width; the value of which is returned as bucketWidth in the + * response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of + * the target range, if specified. The smallest precomputed bucketWidth is currently 2048 base + * pairs; this is subject to change. + * @opt_param string range.sequenceEnd + * The end position of the range on the reference, 1-based exclusive. If specified, sequenceName + * must also be specified. + * @return Google_Service_Genomics_ListCoverageBucketsResponse + */ + public function listReadsetsCoveragebuckets($readsetId, $optParams = array()) + { + $params = array('readsetId' => $readsetId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Genomics_ListCoverageBucketsResponse"); + } +} + +/** + * The "variants" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $variants = $genomicsService->variants; + * + */ +class Google_Service_Genomics_Variants_Resource extends Google_Service_Resource +{ + + /** + * Creates a new variant. (variants.create) + * + * @param Google_Variant $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Variant + */ + public function create(Google_Service_Genomics_Variant $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Genomics_Variant"); + } + /** + * Deletes a variant. (variants.delete) + * + * @param string $variantId + * The ID of the variant to be deleted. + * @param array $optParams Optional parameters. + */ + public function delete($variantId, $optParams = array()) + { + $params = array('variantId' => $variantId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Exports variant data to an external destination. (variants.export) + * + * @param Google_ExportVariantsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_ExportVariantsResponse + */ + public function export(Google_Service_Genomics_ExportVariantsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('export', array($params), "Google_Service_Genomics_ExportVariantsResponse"); + } + /** + * Gets a variant by ID. (variants.get) + * + * @param string $variantId + * The ID of the variant. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Variant + */ + public function get($variantId, $optParams = array()) + { + $params = array('variantId' => $variantId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_Variant"); + } + /** + * Creates variant data by asynchronously importing the provided information. If + * the destination variant set already contains data, new variants will be + * merged according to the behavior of mergeVariants. (variants.import) + * + * @param Google_ImportVariantsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_ImportVariantsResponse + */ + public function import(Google_Service_Genomics_ImportVariantsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('import', array($params), "Google_Service_Genomics_ImportVariantsResponse"); + } + /** + * Gets a list of variants matching the criteria. (variants.search) + * + * @param Google_SearchVariantsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_SearchVariantsResponse + */ + public function search(Google_Service_Genomics_SearchVariantsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Genomics_SearchVariantsResponse"); + } + /** + * Updates a variant's names and info fields. All other modifications are + * silently ignored. Returns the modified variant without its calls. + * (variants.update) + * + * @param string $variantId + * The ID of the variant to be updated. + * @param Google_Variant $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_Variant + */ + public function update($variantId, Google_Service_Genomics_Variant $postBody, $optParams = array()) + { + $params = array('variantId' => $variantId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Genomics_Variant"); + } +} + +/** + * The "variantsets" collection of methods. + * Typical usage is: + * + * $genomicsService = new Google_Service_Genomics(...); + * $variantsets = $genomicsService->variantsets; + * + */ +class Google_Service_Genomics_Variantsets_Resource extends Google_Service_Resource +{ + + /** + * Deletes the contents of a variant set. The variant set object is not deleted. + * (variantsets.delete) + * + * @param string $variantSetId + * The ID of the variant set to be deleted. + * @param array $optParams Optional parameters. + */ + public function delete($variantSetId, $optParams = array()) + { + $params = array('variantSetId' => $variantSetId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a variant set by ID. (variantsets.get) + * + * @param string $variantSetId + * Required. The ID of the variant set. + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_VariantSet + */ + public function get($variantSetId, $optParams = array()) + { + $params = array('variantSetId' => $variantSetId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Genomics_VariantSet"); + } + /** + * Merges the given variants with existing variants. Each variant will be merged + * with an existing variant that matches its reference sequence, start, end, + * reference bases, and alternative bases. If no such variant exists, a new one + * will be created. + * + * When variants are merged, the call information from the new variant is added + * to the existing variant, and other fields (such as key/value pairs) are + * discarded. (variantsets.mergeVariants) + * + * @param string $variantSetId + * The destination variant set. + * @param Google_Variant $postBody + * @param array $optParams Optional parameters. + */ + public function mergeVariants($variantSetId, Google_Service_Genomics_Variant $postBody, $optParams = array()) + { + $params = array('variantSetId' => $variantSetId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('mergeVariants', array($params)); + } + /** + * Returns a list of all variant sets matching search criteria. + * (variantsets.search) + * + * @param Google_SearchVariantSetsRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Genomics_SearchVariantSetsResponse + */ + public function search(Google_Service_Genomics_SearchVariantSetsRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Genomics_SearchVariantSetsResponse"); + } +} + + + + +class Google_Service_Genomics_Beacon extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $exists; + + public function setExists($exists) + { + $this->exists = $exists; + } + + public function getExists() + { + return $this->exists; + } +} + +class Google_Service_Genomics_Call extends Google_Collection +{ + protected $collection_key = 'genotypeLikelihood'; + protected $internal_gapi_mappings = array( + ); + public $callSetId; + public $callSetName; + public $genotype; + public $genotypeLikelihood; + public $info; + public $phaseset; + + public function setCallSetId($callSetId) + { + $this->callSetId = $callSetId; + } + + public function getCallSetId() + { + return $this->callSetId; + } + + public function setCallSetName($callSetName) + { + $this->callSetName = $callSetName; + } + + public function getCallSetName() + { + return $this->callSetName; + } + + public function setGenotype($genotype) + { + $this->genotype = $genotype; + } + + public function getGenotype() + { + return $this->genotype; + } + + public function setGenotypeLikelihood($genotypeLikelihood) + { + $this->genotypeLikelihood = $genotypeLikelihood; + } + + public function getGenotypeLikelihood() + { + return $this->genotypeLikelihood; + } + + public function setInfo($info) + { + $this->info = $info; + } + + public function getInfo() + { + return $this->info; + } + + public function setPhaseset($phaseset) + { + $this->phaseset = $phaseset; + } + + public function getPhaseset() + { + return $this->phaseset; + } +} + +class Google_Service_Genomics_CallInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Genomics_CallSet extends Google_Collection +{ + protected $collection_key = 'variantSetIds'; + protected $internal_gapi_mappings = array( + ); + public $created; + public $id; + public $info; + public $name; + public $sampleId; + public $variantSetIds; + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInfo($info) + { + $this->info = $info; + } + + public function getInfo() + { + return $this->info; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSampleId($sampleId) + { + $this->sampleId = $sampleId; + } + + public function getSampleId() + { + return $this->sampleId; + } + + public function setVariantSetIds($variantSetIds) + { + $this->variantSetIds = $variantSetIds; + } + + public function getVariantSetIds() + { + return $this->variantSetIds; + } +} + +class Google_Service_Genomics_CallSetInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Genomics_CoverageBucket extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $meanCoverage; + protected $rangeType = 'Google_Service_Genomics_GenomicRange'; + protected $rangeDataType = ''; + + public function setMeanCoverage($meanCoverage) + { + $this->meanCoverage = $meanCoverage; + } + + public function getMeanCoverage() + { + return $this->meanCoverage; + } + + public function setRange(Google_Service_Genomics_GenomicRange $range) + { + $this->range = $range; + } + + public function getRange() + { + return $this->range; + } +} + +class Google_Service_Genomics_Dataset extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $isPublic; + public $name; + public $projectId; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsPublic($isPublic) + { + $this->isPublic = $isPublic; + } + + public function getIsPublic() + { + return $this->isPublic; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } +} + +class Google_Service_Genomics_ExperimentalCreateJobRequest extends Google_Collection +{ + protected $collection_key = 'sourceUris'; + protected $internal_gapi_mappings = array( + ); + public $align; + public $callVariants; + public $gcsOutputPath; + public $libraryName; + public $pairedSourceUris; + public $platformName; + public $platformUnit; + public $projectId; + public $readGroupId; + public $sampleName; + public $sourceUris; + + public function setAlign($align) + { + $this->align = $align; + } + + public function getAlign() + { + return $this->align; + } + + public function setCallVariants($callVariants) + { + $this->callVariants = $callVariants; + } + + public function getCallVariants() + { + return $this->callVariants; + } + + public function setGcsOutputPath($gcsOutputPath) + { + $this->gcsOutputPath = $gcsOutputPath; + } + + public function getGcsOutputPath() + { + return $this->gcsOutputPath; + } + + public function setLibraryName($libraryName) + { + $this->libraryName = $libraryName; + } + + public function getLibraryName() + { + return $this->libraryName; + } + + public function setPairedSourceUris($pairedSourceUris) + { + $this->pairedSourceUris = $pairedSourceUris; + } + + public function getPairedSourceUris() + { + return $this->pairedSourceUris; + } + + public function setPlatformName($platformName) + { + $this->platformName = $platformName; + } + + public function getPlatformName() + { + return $this->platformName; + } + + public function setPlatformUnit($platformUnit) + { + $this->platformUnit = $platformUnit; + } + + public function getPlatformUnit() + { + return $this->platformUnit; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setReadGroupId($readGroupId) + { + $this->readGroupId = $readGroupId; + } + + public function getReadGroupId() + { + return $this->readGroupId; + } + + public function setSampleName($sampleName) + { + $this->sampleName = $sampleName; + } + + public function getSampleName() + { + return $this->sampleName; + } + + public function setSourceUris($sourceUris) + { + $this->sourceUris = $sourceUris; + } + + public function getSourceUris() + { + return $this->sourceUris; + } +} + +class Google_Service_Genomics_ExperimentalCreateJobResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $jobId; + + public function setJobId($jobId) + { + $this->jobId = $jobId; + } + + public function getJobId() + { + return $this->jobId; + } +} + +class Google_Service_Genomics_ExportReadsetsRequest extends Google_Collection +{ + protected $collection_key = 'referenceNames'; + protected $internal_gapi_mappings = array( + ); + public $exportUri; + public $projectId; + public $readsetIds; + public $referenceNames; + + public function setExportUri($exportUri) + { + $this->exportUri = $exportUri; + } + + public function getExportUri() + { + return $this->exportUri; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setReadsetIds($readsetIds) + { + $this->readsetIds = $readsetIds; + } + + public function getReadsetIds() + { + return $this->readsetIds; + } + + public function setReferenceNames($referenceNames) + { + $this->referenceNames = $referenceNames; + } + + public function getReferenceNames() + { + return $this->referenceNames; + } +} + +class Google_Service_Genomics_ExportReadsetsResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $jobId; + + public function setJobId($jobId) + { + $this->jobId = $jobId; + } + + public function getJobId() + { + return $this->jobId; + } +} + +class Google_Service_Genomics_ExportVariantsRequest extends Google_Collection +{ + protected $collection_key = 'callSetIds'; + protected $internal_gapi_mappings = array( + ); + public $bigqueryDataset; + public $bigqueryTable; + public $callSetIds; + public $format; + public $projectId; + public $variantSetId; + + public function setBigqueryDataset($bigqueryDataset) + { + $this->bigqueryDataset = $bigqueryDataset; + } + + public function getBigqueryDataset() + { + return $this->bigqueryDataset; + } + + public function setBigqueryTable($bigqueryTable) + { + $this->bigqueryTable = $bigqueryTable; + } + + public function getBigqueryTable() + { + return $this->bigqueryTable; + } + + public function setCallSetIds($callSetIds) + { + $this->callSetIds = $callSetIds; + } + + public function getCallSetIds() + { + return $this->callSetIds; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setVariantSetId($variantSetId) + { + $this->variantSetId = $variantSetId; + } + + public function getVariantSetId() + { + return $this->variantSetId; + } +} + +class Google_Service_Genomics_ExportVariantsResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $jobId; + + public function setJobId($jobId) + { + $this->jobId = $jobId; + } + + public function getJobId() + { + return $this->jobId; + } +} + +class Google_Service_Genomics_GenomicRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $sequenceEnd; + public $sequenceName; + public $sequenceStart; + + public function setSequenceEnd($sequenceEnd) + { + $this->sequenceEnd = $sequenceEnd; + } + + public function getSequenceEnd() + { + return $this->sequenceEnd; + } + + public function setSequenceName($sequenceName) + { + $this->sequenceName = $sequenceName; + } + + public function getSequenceName() + { + return $this->sequenceName; + } + + public function setSequenceStart($sequenceStart) + { + $this->sequenceStart = $sequenceStart; + } + + public function getSequenceStart() + { + return $this->sequenceStart; + } +} + +class Google_Service_Genomics_Header extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $sortingOrder; + public $version; + + public function setSortingOrder($sortingOrder) + { + $this->sortingOrder = $sortingOrder; + } + + public function getSortingOrder() + { + return $this->sortingOrder; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Genomics_HeaderSection extends Google_Collection +{ + protected $collection_key = 'refSequences'; + protected $internal_gapi_mappings = array( + ); + public $comments; + public $fileUri; + public $filename; + protected $headersType = 'Google_Service_Genomics_Header'; + protected $headersDataType = 'array'; + protected $programsType = 'Google_Service_Genomics_Program'; + protected $programsDataType = 'array'; + protected $readGroupsType = 'Google_Service_Genomics_ReadGroup'; + protected $readGroupsDataType = 'array'; + protected $refSequencesType = 'Google_Service_Genomics_ReferenceSequence'; + protected $refSequencesDataType = 'array'; + + public function setComments($comments) + { + $this->comments = $comments; + } + + public function getComments() + { + return $this->comments; + } + + public function setFileUri($fileUri) + { + $this->fileUri = $fileUri; + } + + public function getFileUri() + { + return $this->fileUri; + } + + public function setFilename($filename) + { + $this->filename = $filename; + } + + public function getFilename() + { + return $this->filename; + } + + public function setHeaders($headers) + { + $this->headers = $headers; + } + + public function getHeaders() + { + return $this->headers; + } + + public function setPrograms($programs) + { + $this->programs = $programs; + } + + public function getPrograms() + { + return $this->programs; + } + + public function setReadGroups($readGroups) + { + $this->readGroups = $readGroups; + } + + public function getReadGroups() + { + return $this->readGroups; + } + + public function setRefSequences($refSequences) + { + $this->refSequences = $refSequences; + } + + public function getRefSequences() + { + return $this->refSequences; + } +} + +class Google_Service_Genomics_ImportReadsetsRequest extends Google_Collection +{ + protected $collection_key = 'sourceUris'; + protected $internal_gapi_mappings = array( + ); + public $datasetId; + public $sourceUris; + + public function setDatasetId($datasetId) + { + $this->datasetId = $datasetId; + } + + public function getDatasetId() + { + return $this->datasetId; + } + + public function setSourceUris($sourceUris) + { + $this->sourceUris = $sourceUris; + } + + public function getSourceUris() + { + return $this->sourceUris; + } +} + +class Google_Service_Genomics_ImportReadsetsResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $jobId; + + public function setJobId($jobId) + { + $this->jobId = $jobId; + } + + public function getJobId() + { + return $this->jobId; + } +} + +class Google_Service_Genomics_ImportVariantsRequest extends Google_Collection +{ + protected $collection_key = 'sourceUris'; + protected $internal_gapi_mappings = array( + ); + public $format; + public $sourceUris; + public $variantSetId; + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setSourceUris($sourceUris) + { + $this->sourceUris = $sourceUris; + } + + public function getSourceUris() + { + return $this->sourceUris; + } + + public function setVariantSetId($variantSetId) + { + $this->variantSetId = $variantSetId; + } + + public function getVariantSetId() + { + return $this->variantSetId; + } +} + +class Google_Service_Genomics_ImportVariantsResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $jobId; + + public function setJobId($jobId) + { + $this->jobId = $jobId; + } + + public function getJobId() + { + return $this->jobId; + } +} + +class Google_Service_Genomics_Job extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $created; + public $description; + public $errors; + public $id; + public $importedIds; + public $projectId; + protected $requestType = 'Google_Service_Genomics_JobRequest'; + protected $requestDataType = ''; + public $status; + public $warnings; + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImportedIds($importedIds) + { + $this->importedIds = $importedIds; + } + + public function getImportedIds() + { + return $this->importedIds; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setRequest(Google_Service_Genomics_JobRequest $request) + { + $this->request = $request; + } + + public function getRequest() + { + return $this->request; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_Genomics_JobRequest extends Google_Collection +{ + protected $collection_key = 'source'; + protected $internal_gapi_mappings = array( + ); + public $destination; + public $source; + public $type; + + public function setDestination($destination) + { + $this->destination = $destination; + } + + public function getDestination() + { + return $this->destination; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Genomics_ListCoverageBucketsResponse extends Google_Collection +{ + protected $collection_key = 'coverageBuckets'; + protected $internal_gapi_mappings = array( + ); + public $bucketWidth; + protected $coverageBucketsType = 'Google_Service_Genomics_CoverageBucket'; + protected $coverageBucketsDataType = 'array'; + public $nextPageToken; + + public function setBucketWidth($bucketWidth) + { + $this->bucketWidth = $bucketWidth; + } + + public function getBucketWidth() + { + return $this->bucketWidth; + } + + public function setCoverageBuckets($coverageBuckets) + { + $this->coverageBuckets = $coverageBuckets; + } + + public function getCoverageBuckets() + { + return $this->coverageBuckets; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Genomics_ListDatasetsResponse extends Google_Collection +{ + protected $collection_key = 'datasets'; + protected $internal_gapi_mappings = array( + ); + protected $datasetsType = 'Google_Service_Genomics_Dataset'; + protected $datasetsDataType = 'array'; + public $nextPageToken; + + public function setDatasets($datasets) + { + $this->datasets = $datasets; + } + + public function getDatasets() + { + return $this->datasets; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Genomics_Metadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $id; + public $info; + public $key; + public $number; + public $type; + public $value; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInfo($info) + { + $this->info = $info; + } + + public function getInfo() + { + return $this->info; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setNumber($number) + { + $this->number = $number; + } + + public function getNumber() + { + return $this->number; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Genomics_MetadataInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Genomics_Program extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $commandLine; + public $id; + public $name; + public $prevProgramId; + public $version; + + public function setCommandLine($commandLine) + { + $this->commandLine = $commandLine; + } + + public function getCommandLine() + { + return $this->commandLine; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPrevProgramId($prevProgramId) + { + $this->prevProgramId = $prevProgramId; + } + + public function getPrevProgramId() + { + return $this->prevProgramId; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Genomics_Read extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $alignedBases; + public $baseQuality; + public $cigar; + public $flags; + public $id; + public $mappingQuality; + public $matePosition; + public $mateReferenceSequenceName; + public $name; + public $originalBases; + public $position; + public $readsetId; + public $referenceSequenceName; + public $tags; + public $templateLength; + + public function setAlignedBases($alignedBases) + { + $this->alignedBases = $alignedBases; + } + + public function getAlignedBases() + { + return $this->alignedBases; + } + + public function setBaseQuality($baseQuality) + { + $this->baseQuality = $baseQuality; + } + + public function getBaseQuality() + { + return $this->baseQuality; + } + + public function setCigar($cigar) + { + $this->cigar = $cigar; + } + + public function getCigar() + { + return $this->cigar; + } + + public function setFlags($flags) + { + $this->flags = $flags; + } + + public function getFlags() + { + return $this->flags; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setMappingQuality($mappingQuality) + { + $this->mappingQuality = $mappingQuality; + } + + public function getMappingQuality() + { + return $this->mappingQuality; + } + + public function setMatePosition($matePosition) + { + $this->matePosition = $matePosition; + } + + public function getMatePosition() + { + return $this->matePosition; + } + + public function setMateReferenceSequenceName($mateReferenceSequenceName) + { + $this->mateReferenceSequenceName = $mateReferenceSequenceName; + } + + public function getMateReferenceSequenceName() + { + return $this->mateReferenceSequenceName; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOriginalBases($originalBases) + { + $this->originalBases = $originalBases; + } + + public function getOriginalBases() + { + return $this->originalBases; + } + + public function setPosition($position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } + + public function setReadsetId($readsetId) + { + $this->readsetId = $readsetId; + } + + public function getReadsetId() + { + return $this->readsetId; + } + + public function setReferenceSequenceName($referenceSequenceName) + { + $this->referenceSequenceName = $referenceSequenceName; + } + + public function getReferenceSequenceName() + { + return $this->referenceSequenceName; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setTemplateLength($templateLength) + { + $this->templateLength = $templateLength; + } + + public function getTemplateLength() + { + return $this->templateLength; + } +} + +class Google_Service_Genomics_ReadGroup extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $date; + public $description; + public $flowOrder; + public $id; + public $keySequence; + public $library; + public $platformUnit; + public $predictedInsertSize; + public $processingProgram; + public $sample; + public $sequencingCenterName; + public $sequencingTechnology; + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setFlowOrder($flowOrder) + { + $this->flowOrder = $flowOrder; + } + + public function getFlowOrder() + { + return $this->flowOrder; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKeySequence($keySequence) + { + $this->keySequence = $keySequence; + } + + public function getKeySequence() + { + return $this->keySequence; + } + + public function setLibrary($library) + { + $this->library = $library; + } + + public function getLibrary() + { + return $this->library; + } + + public function setPlatformUnit($platformUnit) + { + $this->platformUnit = $platformUnit; + } + + public function getPlatformUnit() + { + return $this->platformUnit; + } + + public function setPredictedInsertSize($predictedInsertSize) + { + $this->predictedInsertSize = $predictedInsertSize; + } + + public function getPredictedInsertSize() + { + return $this->predictedInsertSize; + } + + public function setProcessingProgram($processingProgram) + { + $this->processingProgram = $processingProgram; + } + + public function getProcessingProgram() + { + return $this->processingProgram; + } + + public function setSample($sample) + { + $this->sample = $sample; + } + + public function getSample() + { + return $this->sample; + } + + public function setSequencingCenterName($sequencingCenterName) + { + $this->sequencingCenterName = $sequencingCenterName; + } + + public function getSequencingCenterName() + { + return $this->sequencingCenterName; + } + + public function setSequencingTechnology($sequencingTechnology) + { + $this->sequencingTechnology = $sequencingTechnology; + } + + public function getSequencingTechnology() + { + return $this->sequencingTechnology; + } +} + +class Google_Service_Genomics_ReadTags extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Genomics_Readset extends Google_Collection +{ + protected $collection_key = 'fileData'; + protected $internal_gapi_mappings = array( + ); + public $datasetId; + protected $fileDataType = 'Google_Service_Genomics_HeaderSection'; + protected $fileDataDataType = 'array'; + public $id; + public $name; + + public function setDatasetId($datasetId) + { + $this->datasetId = $datasetId; + } + + public function getDatasetId() + { + return $this->datasetId; + } + + public function setFileData($fileData) + { + $this->fileData = $fileData; + } + + public function getFileData() + { + return $this->fileData; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Genomics_ReferenceBound extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $referenceName; + public $upperBound; + + public function setReferenceName($referenceName) + { + $this->referenceName = $referenceName; + } + + public function getReferenceName() + { + return $this->referenceName; + } + + public function setUpperBound($upperBound) + { + $this->upperBound = $upperBound; + } + + public function getUpperBound() + { + return $this->upperBound; + } +} + +class Google_Service_Genomics_ReferenceSequence extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $assemblyId; + public $length; + public $md5Checksum; + public $name; + public $species; + public $uri; + + public function setAssemblyId($assemblyId) + { + $this->assemblyId = $assemblyId; + } + + public function getAssemblyId() + { + return $this->assemblyId; + } + + public function setLength($length) + { + $this->length = $length; + } + + public function getLength() + { + return $this->length; + } + + public function setMd5Checksum($md5Checksum) + { + $this->md5Checksum = $md5Checksum; + } + + public function getMd5Checksum() + { + return $this->md5Checksum; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSpecies($species) + { + $this->species = $species; + } + + public function getSpecies() + { + return $this->species; + } + + public function setUri($uri) + { + $this->uri = $uri; + } + + public function getUri() + { + return $this->uri; + } +} + +class Google_Service_Genomics_SearchCallSetsRequest extends Google_Collection +{ + protected $collection_key = 'variantSetIds'; + protected $internal_gapi_mappings = array( + ); + public $name; + public $pageSize; + public $pageToken; + public $variantSetIds; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPageSize($pageSize) + { + $this->pageSize = $pageSize; + } + + public function getPageSize() + { + return $this->pageSize; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setVariantSetIds($variantSetIds) + { + $this->variantSetIds = $variantSetIds; + } + + public function getVariantSetIds() + { + return $this->variantSetIds; + } +} + +class Google_Service_Genomics_SearchCallSetsResponse extends Google_Collection +{ + protected $collection_key = 'callSets'; + protected $internal_gapi_mappings = array( + ); + protected $callSetsType = 'Google_Service_Genomics_CallSet'; + protected $callSetsDataType = 'array'; + public $nextPageToken; + + public function setCallSets($callSets) + { + $this->callSets = $callSets; + } + + public function getCallSets() + { + return $this->callSets; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Genomics_SearchJobsRequest extends Google_Collection +{ + protected $collection_key = 'status'; + protected $internal_gapi_mappings = array( + ); + public $createdAfter; + public $createdBefore; + public $maxResults; + public $pageToken; + public $projectId; + public $status; + + public function setCreatedAfter($createdAfter) + { + $this->createdAfter = $createdAfter; + } + + public function getCreatedAfter() + { + return $this->createdAfter; + } + + public function setCreatedBefore($createdBefore) + { + $this->createdBefore = $createdBefore; + } + + public function getCreatedBefore() + { + return $this->createdBefore; + } + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Genomics_SearchJobsResponse extends Google_Collection +{ + protected $collection_key = 'jobs'; + protected $internal_gapi_mappings = array( + ); + protected $jobsType = 'Google_Service_Genomics_Job'; + protected $jobsDataType = 'array'; + public $nextPageToken; + + public function setJobs($jobs) + { + $this->jobs = $jobs; + } + + public function getJobs() + { + return $this->jobs; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Genomics_SearchReadsRequest extends Google_Collection +{ + protected $collection_key = 'readsetIds'; + protected $internal_gapi_mappings = array( + ); + public $maxResults; + public $pageToken; + public $readsetIds; + public $sequenceEnd; + public $sequenceName; + public $sequenceStart; + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setReadsetIds($readsetIds) + { + $this->readsetIds = $readsetIds; + } + + public function getReadsetIds() + { + return $this->readsetIds; + } + + public function setSequenceEnd($sequenceEnd) + { + $this->sequenceEnd = $sequenceEnd; + } + + public function getSequenceEnd() + { + return $this->sequenceEnd; + } + + public function setSequenceName($sequenceName) + { + $this->sequenceName = $sequenceName; + } + + public function getSequenceName() + { + return $this->sequenceName; + } + + public function setSequenceStart($sequenceStart) + { + $this->sequenceStart = $sequenceStart; + } + + public function getSequenceStart() + { + return $this->sequenceStart; + } +} + +class Google_Service_Genomics_SearchReadsResponse extends Google_Collection +{ + protected $collection_key = 'reads'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $readsType = 'Google_Service_Genomics_Read'; + protected $readsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setReads($reads) + { + $this->reads = $reads; + } + + public function getReads() + { + return $this->reads; + } +} + +class Google_Service_Genomics_SearchReadsetsRequest extends Google_Collection +{ + protected $collection_key = 'datasetIds'; + protected $internal_gapi_mappings = array( + ); + public $datasetIds; + public $maxResults; + public $name; + public $pageToken; + + public function setDatasetIds($datasetIds) + { + $this->datasetIds = $datasetIds; + } + + public function getDatasetIds() + { + return $this->datasetIds; + } + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } +} + +class Google_Service_Genomics_SearchReadsetsResponse extends Google_Collection +{ + protected $collection_key = 'readsets'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $readsetsType = 'Google_Service_Genomics_Readset'; + protected $readsetsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setReadsets($readsets) + { + $this->readsets = $readsets; + } + + public function getReadsets() + { + return $this->readsets; + } +} + +class Google_Service_Genomics_SearchVariantSetsRequest extends Google_Collection +{ + protected $collection_key = 'datasetIds'; + protected $internal_gapi_mappings = array( + ); + public $datasetIds; + public $pageSize; + public $pageToken; + + public function setDatasetIds($datasetIds) + { + $this->datasetIds = $datasetIds; + } + + public function getDatasetIds() + { + return $this->datasetIds; + } + + public function setPageSize($pageSize) + { + $this->pageSize = $pageSize; + } + + public function getPageSize() + { + return $this->pageSize; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } +} + +class Google_Service_Genomics_SearchVariantSetsResponse extends Google_Collection +{ + protected $collection_key = 'variantSets'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $variantSetsType = 'Google_Service_Genomics_VariantSet'; + protected $variantSetsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setVariantSets($variantSets) + { + $this->variantSets = $variantSets; + } + + public function getVariantSets() + { + return $this->variantSets; + } +} + +class Google_Service_Genomics_SearchVariantsRequest extends Google_Collection +{ + protected $collection_key = 'variantSetIds'; + protected $internal_gapi_mappings = array( + ); + public $callSetIds; + public $end; + public $maxCalls; + public $pageSize; + public $pageToken; + public $referenceName; + public $start; + public $variantName; + public $variantSetIds; + + public function setCallSetIds($callSetIds) + { + $this->callSetIds = $callSetIds; + } + + public function getCallSetIds() + { + return $this->callSetIds; + } + + public function setEnd($end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setMaxCalls($maxCalls) + { + $this->maxCalls = $maxCalls; + } + + public function getMaxCalls() + { + return $this->maxCalls; + } + + public function setPageSize($pageSize) + { + $this->pageSize = $pageSize; + } + + public function getPageSize() + { + return $this->pageSize; + } + + public function setPageToken($pageToken) + { + $this->pageToken = $pageToken; + } + + public function getPageToken() + { + return $this->pageToken; + } + + public function setReferenceName($referenceName) + { + $this->referenceName = $referenceName; + } + + public function getReferenceName() + { + return $this->referenceName; + } + + public function setStart($start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } + + public function setVariantName($variantName) + { + $this->variantName = $variantName; + } + + public function getVariantName() + { + return $this->variantName; + } + + public function setVariantSetIds($variantSetIds) + { + $this->variantSetIds = $variantSetIds; + } + + public function getVariantSetIds() + { + return $this->variantSetIds; + } +} + +class Google_Service_Genomics_SearchVariantsResponse extends Google_Collection +{ + protected $collection_key = 'variants'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $variantsType = 'Google_Service_Genomics_Variant'; + protected $variantsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setVariants($variants) + { + $this->variants = $variants; + } + + public function getVariants() + { + return $this->variants; + } +} + +class Google_Service_Genomics_Variant extends Google_Collection +{ + protected $collection_key = 'names'; + protected $internal_gapi_mappings = array( + ); + public $alternateBases; + protected $callsType = 'Google_Service_Genomics_Call'; + protected $callsDataType = 'array'; + public $created; + public $end; + public $filter; + public $id; + public $info; + public $names; + public $quality; + public $referenceBases; + public $referenceName; + public $start; + public $variantSetId; + + public function setAlternateBases($alternateBases) + { + $this->alternateBases = $alternateBases; + } + + public function getAlternateBases() + { + return $this->alternateBases; + } + + public function setCalls($calls) + { + $this->calls = $calls; + } + + public function getCalls() + { + return $this->calls; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setEnd($end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setFilter($filter) + { + $this->filter = $filter; + } + + public function getFilter() + { + return $this->filter; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInfo($info) + { + $this->info = $info; + } + + public function getInfo() + { + return $this->info; + } + + public function setNames($names) + { + $this->names = $names; + } + + public function getNames() + { + return $this->names; + } + + public function setQuality($quality) + { + $this->quality = $quality; + } + + public function getQuality() + { + return $this->quality; + } + + public function setReferenceBases($referenceBases) + { + $this->referenceBases = $referenceBases; + } + + public function getReferenceBases() + { + return $this->referenceBases; + } + + public function setReferenceName($referenceName) + { + $this->referenceName = $referenceName; + } + + public function getReferenceName() + { + return $this->referenceName; + } + + public function setStart($start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } + + public function setVariantSetId($variantSetId) + { + $this->variantSetId = $variantSetId; + } + + public function getVariantSetId() + { + return $this->variantSetId; + } +} + +class Google_Service_Genomics_VariantInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Genomics_VariantSet extends Google_Collection +{ + protected $collection_key = 'referenceBounds'; + protected $internal_gapi_mappings = array( + ); + public $datasetId; + public $id; + protected $metadataType = 'Google_Service_Genomics_Metadata'; + protected $metadataDataType = 'array'; + protected $referenceBoundsType = 'Google_Service_Genomics_ReferenceBound'; + protected $referenceBoundsDataType = 'array'; + + public function setDatasetId($datasetId) + { + $this->datasetId = $datasetId; + } + + public function getDatasetId() + { + return $this->datasetId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setMetadata($metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setReferenceBounds($referenceBounds) + { + $this->referenceBounds = $referenceBounds; + } + + public function getReferenceBounds() + { + return $this->referenceBounds; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Gmail.php b/vendor/google/apiclient/src/Google/Service/Gmail.php new file mode 100644 index 0000000..d56fdf9 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Gmail.php @@ -0,0 +1,1863 @@ + + * The Gmail REST API. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Gmail extends Google_Service +{ + /** View and manage your mail. */ + const MAIL_GOOGLE_COM = "https://mail.google.com"; + /** Manage drafts and send emails. */ + const GMAIL_COMPOSE = "https://www.googleapis.com/auth/gmail.compose"; + /** View and modify but not delete your email. */ + const GMAIL_MODIFY = "https://www.googleapis.com/auth/gmail.modify"; + /** View your emails messages and settings. */ + const GMAIL_READONLY = "https://www.googleapis.com/auth/gmail.readonly"; + + public $users_drafts; + public $users_history; + public $users_labels; + public $users_messages; + public $users_messages_attachments; + public $users_threads; + + + /** + * Constructs the internal representation of the Gmail service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'gmail/v1/users/'; + $this->version = 'v1'; + $this->serviceName = 'gmail'; + + $this->users_drafts = new Google_Service_Gmail_UsersDrafts_Resource( + $this, + $this->serviceName, + 'drafts', + array( + 'methods' => array( + 'create' => array( + 'path' => '{userId}/drafts', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{userId}/drafts/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{userId}/drafts/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => '{userId}/drafts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'send' => array( + 'path' => '{userId}/drafts/send', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{userId}/drafts/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->users_history = new Google_Service_Gmail_UsersHistory_Resource( + $this, + $this->serviceName, + 'history', + array( + 'methods' => array( + 'list' => array( + 'path' => '{userId}/history', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'labelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startHistoryId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->users_labels = new Google_Service_Gmail_UsersLabels_Resource( + $this, + $this->serviceName, + 'labels', + array( + 'methods' => array( + 'create' => array( + 'path' => '{userId}/labels', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{userId}/labels/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{userId}/labels/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{userId}/labels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{userId}/labels/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{userId}/labels/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->users_messages = new Google_Service_Gmail_UsersMessages_Resource( + $this, + $this->serviceName, + 'messages', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{userId}/messages/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{userId}/messages/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'metadataHeaders' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'import' => array( + 'path' => '{userId}/messages/import', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'internalDateSource' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => '{userId}/messages', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'internalDateSource' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => '{userId}/messages', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeSpamTrash' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'labelIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'modify' => array( + 'path' => '{userId}/messages/{id}/modify', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'send' => array( + 'path' => '{userId}/messages/send', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'trash' => array( + 'path' => '{userId}/messages/{id}/trash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'untrash' => array( + 'path' => '{userId}/messages/{id}/untrash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->users_messages_attachments = new Google_Service_Gmail_UsersMessagesAttachments_Resource( + $this, + $this->serviceName, + 'attachments', + array( + 'methods' => array( + 'get' => array( + 'path' => '{userId}/messages/{messageId}/attachments/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'messageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->users_threads = new Google_Service_Gmail_UsersThreads_Resource( + $this, + $this->serviceName, + 'threads', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{userId}/threads/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{userId}/threads/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{userId}/threads', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeSpamTrash' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'labelIds' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'modify' => array( + 'path' => '{userId}/threads/{id}/modify', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'trash' => array( + 'path' => '{userId}/threads/{id}/trash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'untrash' => array( + 'path' => '{userId}/threads/{id}/untrash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "users" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $users = $gmailService->users; + * + */ +class Google_Service_Gmail_Users_Resource extends Google_Service_Resource +{ + +} + +/** + * The "drafts" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $drafts = $gmailService->drafts; + * + */ +class Google_Service_Gmail_UsersDrafts_Resource extends Google_Service_Resource +{ + + /** + * Creates a new draft with the DRAFT label. (drafts.create) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param Google_Draft $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Draft + */ + public function create($userId, Google_Service_Gmail_Draft $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Gmail_Draft"); + } + /** + * Immediately and permanently deletes the specified draft. Does not simply + * trash it. (drafts.delete) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the draft to delete. + * @param array $optParams Optional parameters. + */ + public function delete($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the specified draft. (drafts.get) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the draft to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string format + * The format to return the draft in. + * @return Google_Service_Gmail_Draft + */ + public function get($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Gmail_Draft"); + } + /** + * Lists the drafts in the user's mailbox. (drafts.listUsersDrafts) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Page token to retrieve a specific page of results in the list. + * @opt_param string maxResults + * Maximum number of drafts to return. + * @return Google_Service_Gmail_ListDraftsResponse + */ + public function listUsersDrafts($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Gmail_ListDraftsResponse"); + } + /** + * Sends the specified, existing draft to the recipients in the To, Cc, and Bcc + * headers. (drafts.send) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param Google_Draft $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Message + */ + public function send($userId, Google_Service_Gmail_Draft $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('send', array($params), "Google_Service_Gmail_Message"); + } + /** + * Replaces a draft's content. (drafts.update) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the draft to update. + * @param Google_Draft $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Draft + */ + public function update($userId, $id, Google_Service_Gmail_Draft $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Gmail_Draft"); + } +} +/** + * The "history" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $history = $gmailService->history; + * + */ +class Google_Service_Gmail_UsersHistory_Resource extends Google_Service_Resource +{ + + /** + * Lists the history of all changes to the given mailbox. History results are + * returned in chronological order (increasing historyId). + * (history.listUsersHistory) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Page token to retrieve a specific page of results in the list. + * @opt_param string maxResults + * The maximum number of history records to return. + * @opt_param string labelId + * Only return messages with a label matching the ID. + * @opt_param string startHistoryId + * Required. Returns history records after the specified startHistoryId. The supplied + * startHistoryId should be obtained from the historyId of a message, thread, or previous list + * response. History IDs increase chronologically but are not contiguous with random gaps in + * between valid IDs. Supplying an invalid or out of date startHistoryId typically returns an HTTP + * 404 error code. A historyId is typically valid for at least a week, but in some circumstances + * may be valid for only a few hours. If you receive an HTTP 404 error response, your application + * should perform a full sync. If you receive no nextPageToken in the response, there are no + * updates to retrieve and you can store the returned historyId for a future request. + * @return Google_Service_Gmail_ListHistoryResponse + */ + public function listUsersHistory($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Gmail_ListHistoryResponse"); + } +} +/** + * The "labels" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $labels = $gmailService->labels; + * + */ +class Google_Service_Gmail_UsersLabels_Resource extends Google_Service_Resource +{ + + /** + * Creates a new label. (labels.create) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param Google_Label $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Label + */ + public function create($userId, Google_Service_Gmail_Label $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Gmail_Label"); + } + /** + * Immediately and permanently deletes the specified label and removes it from + * any messages and threads that it is applied to. (labels.delete) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the label to delete. + * @param array $optParams Optional parameters. + */ + public function delete($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the specified label. (labels.get) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the label to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Label + */ + public function get($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Gmail_Label"); + } + /** + * Lists all labels in the user's mailbox. (labels.listUsersLabels) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_ListLabelsResponse + */ + public function listUsersLabels($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Gmail_ListLabelsResponse"); + } + /** + * Updates the specified label. This method supports patch semantics. + * (labels.patch) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the label to update. + * @param Google_Label $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Label + */ + public function patch($userId, $id, Google_Service_Gmail_Label $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Gmail_Label"); + } + /** + * Updates the specified label. (labels.update) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the label to update. + * @param Google_Label $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Label + */ + public function update($userId, $id, Google_Service_Gmail_Label $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Gmail_Label"); + } +} +/** + * The "messages" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $messages = $gmailService->messages; + * + */ +class Google_Service_Gmail_UsersMessages_Resource extends Google_Service_Resource +{ + + /** + * Immediately and permanently deletes the specified message. This operation + * cannot be undone. Prefer messages.trash instead. (messages.delete) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the message to delete. + * @param array $optParams Optional parameters. + */ + public function delete($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the specified message. (messages.get) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the message to retrieve. + * @param array $optParams Optional parameters. + * + * @opt_param string metadataHeaders + * When given and format is METADATA, only include headers specified. + * @opt_param string format + * The format to return the message in. + * @return Google_Service_Gmail_Message + */ + public function get($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Gmail_Message"); + } + /** + * Imports a message into only this user's mailbox, with standard email delivery + * scanning and classification similar to receiving via SMTP. Does not send a + * message. (messages.import) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param Google_Message $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string internalDateSource + * Source for Gmail's internal date of the message. + * @return Google_Service_Gmail_Message + */ + public function import($userId, Google_Service_Gmail_Message $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('import', array($params), "Google_Service_Gmail_Message"); + } + /** + * Directly inserts a message into only this user's mailbox similar to IMAP + * APPEND, bypassing most scanning and classification. Does not send a message. + * (messages.insert) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param Google_Message $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string internalDateSource + * Source for Gmail's internal date of the message. + * @return Google_Service_Gmail_Message + */ + public function insert($userId, Google_Service_Gmail_Message $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Gmail_Message"); + } + /** + * Lists the messages in the user's mailbox. (messages.listUsersMessages) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param array $optParams Optional parameters. + * + * @opt_param string maxResults + * Maximum number of messages to return. + * @opt_param string q + * Only return messages matching the specified query. Supports the same query format as the Gmail + * search box. For example, "from:someuser@example.com rfc822msgid: is:unread". + * @opt_param string pageToken + * Page token to retrieve a specific page of results in the list. + * @opt_param bool includeSpamTrash + * Include messages from SPAM and TRASH in the results. + * @opt_param string labelIds + * Only return messages with labels that match all of the specified label IDs. + * @return Google_Service_Gmail_ListMessagesResponse + */ + public function listUsersMessages($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Gmail_ListMessagesResponse"); + } + /** + * Modifies the labels on the specified message. (messages.modify) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the message to modify. + * @param Google_ModifyMessageRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Message + */ + public function modify($userId, $id, Google_Service_Gmail_ModifyMessageRequest $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('modify', array($params), "Google_Service_Gmail_Message"); + } + /** + * Sends the specified message to the recipients in the To, Cc, and Bcc headers. + * (messages.send) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param Google_Message $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Message + */ + public function send($userId, Google_Service_Gmail_Message $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('send', array($params), "Google_Service_Gmail_Message"); + } + /** + * Moves the specified message to the trash. (messages.trash) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the message to Trash. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Message + */ + public function trash($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('trash', array($params), "Google_Service_Gmail_Message"); + } + /** + * Removes the specified message from the trash. (messages.untrash) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the message to remove from Trash. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Message + */ + public function untrash($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('untrash', array($params), "Google_Service_Gmail_Message"); + } +} + +/** + * The "attachments" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $attachments = $gmailService->attachments; + * + */ +class Google_Service_Gmail_UsersMessagesAttachments_Resource extends Google_Service_Resource +{ + + /** + * Gets the specified message attachment. (attachments.get) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $messageId + * The ID of the message containing the attachment. + * @param string $id + * The ID of the attachment. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_MessagePartBody + */ + public function get($userId, $messageId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'messageId' => $messageId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Gmail_MessagePartBody"); + } +} +/** + * The "threads" collection of methods. + * Typical usage is: + * + * $gmailService = new Google_Service_Gmail(...); + * $threads = $gmailService->threads; + * + */ +class Google_Service_Gmail_UsersThreads_Resource extends Google_Service_Resource +{ + + /** + * Immediately and permanently deletes the specified thread. This operation + * cannot be undone. Prefer threads.trash instead. (threads.delete) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * ID of the Thread to delete. + * @param array $optParams Optional parameters. + */ + public function delete($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the specified thread. (threads.get) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the thread to retrieve. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Thread + */ + public function get($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Gmail_Thread"); + } + /** + * Lists the threads in the user's mailbox. (threads.listUsersThreads) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param array $optParams Optional parameters. + * + * @opt_param string maxResults + * Maximum number of threads to return. + * @opt_param string q + * Only return threads matching the specified query. Supports the same query format as the Gmail + * search box. For example, "from:someuser@example.com rfc822msgid: is:unread". + * @opt_param string pageToken + * Page token to retrieve a specific page of results in the list. + * @opt_param bool includeSpamTrash + * Include threads from SPAM and TRASH in the results. + * @opt_param string labelIds + * Only return threads with labels that match all of the specified label IDs. + * @return Google_Service_Gmail_ListThreadsResponse + */ + public function listUsersThreads($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Gmail_ListThreadsResponse"); + } + /** + * Modifies the labels applied to the thread. This applies to all messages in + * the thread. (threads.modify) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the thread to modify. + * @param Google_ModifyThreadRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Thread + */ + public function modify($userId, $id, Google_Service_Gmail_ModifyThreadRequest $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('modify', array($params), "Google_Service_Gmail_Thread"); + } + /** + * Moves the specified thread to the trash. (threads.trash) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the thread to Trash. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Thread + */ + public function trash($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('trash', array($params), "Google_Service_Gmail_Thread"); + } + /** + * Removes the specified thread from the trash. (threads.untrash) + * + * @param string $userId + * The user's email address. The special value me can be used to indicate the authenticated user. + * @param string $id + * The ID of the thread to remove from Trash. + * @param array $optParams Optional parameters. + * @return Google_Service_Gmail_Thread + */ + public function untrash($userId, $id, $optParams = array()) + { + $params = array('userId' => $userId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('untrash', array($params), "Google_Service_Gmail_Thread"); + } +} + + + + +class Google_Service_Gmail_Draft extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + protected $messageType = 'Google_Service_Gmail_Message'; + protected $messageDataType = ''; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setMessage(Google_Service_Gmail_Message $message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Gmail_History extends Google_Collection +{ + protected $collection_key = 'messages'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $messagesType = 'Google_Service_Gmail_Message'; + protected $messagesDataType = 'array'; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setMessages($messages) + { + $this->messages = $messages; + } + + public function getMessages() + { + return $this->messages; + } +} + +class Google_Service_Gmail_Label extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $labelListVisibility; + public $messageListVisibility; + public $name; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLabelListVisibility($labelListVisibility) + { + $this->labelListVisibility = $labelListVisibility; + } + + public function getLabelListVisibility() + { + return $this->labelListVisibility; + } + + public function setMessageListVisibility($messageListVisibility) + { + $this->messageListVisibility = $messageListVisibility; + } + + public function getMessageListVisibility() + { + return $this->messageListVisibility; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Gmail_ListDraftsResponse extends Google_Collection +{ + protected $collection_key = 'drafts'; + protected $internal_gapi_mappings = array( + ); + protected $draftsType = 'Google_Service_Gmail_Draft'; + protected $draftsDataType = 'array'; + public $nextPageToken; + public $resultSizeEstimate; + + public function setDrafts($drafts) + { + $this->drafts = $drafts; + } + + public function getDrafts() + { + return $this->drafts; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResultSizeEstimate($resultSizeEstimate) + { + $this->resultSizeEstimate = $resultSizeEstimate; + } + + public function getResultSizeEstimate() + { + return $this->resultSizeEstimate; + } +} + +class Google_Service_Gmail_ListHistoryResponse extends Google_Collection +{ + protected $collection_key = 'history'; + protected $internal_gapi_mappings = array( + ); + protected $historyType = 'Google_Service_Gmail_History'; + protected $historyDataType = 'array'; + public $historyId; + public $nextPageToken; + + public function setHistory($history) + { + $this->history = $history; + } + + public function getHistory() + { + return $this->history; + } + + public function setHistoryId($historyId) + { + $this->historyId = $historyId; + } + + public function getHistoryId() + { + return $this->historyId; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Gmail_ListLabelsResponse extends Google_Collection +{ + protected $collection_key = 'labels'; + protected $internal_gapi_mappings = array( + ); + protected $labelsType = 'Google_Service_Gmail_Label'; + protected $labelsDataType = 'array'; + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } +} + +class Google_Service_Gmail_ListMessagesResponse extends Google_Collection +{ + protected $collection_key = 'messages'; + protected $internal_gapi_mappings = array( + ); + protected $messagesType = 'Google_Service_Gmail_Message'; + protected $messagesDataType = 'array'; + public $nextPageToken; + public $resultSizeEstimate; + + public function setMessages($messages) + { + $this->messages = $messages; + } + + public function getMessages() + { + return $this->messages; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResultSizeEstimate($resultSizeEstimate) + { + $this->resultSizeEstimate = $resultSizeEstimate; + } + + public function getResultSizeEstimate() + { + return $this->resultSizeEstimate; + } +} + +class Google_Service_Gmail_ListThreadsResponse extends Google_Collection +{ + protected $collection_key = 'threads'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + public $resultSizeEstimate; + protected $threadsType = 'Google_Service_Gmail_Thread'; + protected $threadsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResultSizeEstimate($resultSizeEstimate) + { + $this->resultSizeEstimate = $resultSizeEstimate; + } + + public function getResultSizeEstimate() + { + return $this->resultSizeEstimate; + } + + public function setThreads($threads) + { + $this->threads = $threads; + } + + public function getThreads() + { + return $this->threads; + } +} + +class Google_Service_Gmail_Message extends Google_Collection +{ + protected $collection_key = 'labelIds'; + protected $internal_gapi_mappings = array( + ); + public $historyId; + public $id; + public $labelIds; + protected $payloadType = 'Google_Service_Gmail_MessagePart'; + protected $payloadDataType = ''; + public $raw; + public $sizeEstimate; + public $snippet; + public $threadId; + + public function setHistoryId($historyId) + { + $this->historyId = $historyId; + } + + public function getHistoryId() + { + return $this->historyId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLabelIds($labelIds) + { + $this->labelIds = $labelIds; + } + + public function getLabelIds() + { + return $this->labelIds; + } + + public function setPayload(Google_Service_Gmail_MessagePart $payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setRaw($raw) + { + $this->raw = $raw; + } + + public function getRaw() + { + return $this->raw; + } + + public function setSizeEstimate($sizeEstimate) + { + $this->sizeEstimate = $sizeEstimate; + } + + public function getSizeEstimate() + { + return $this->sizeEstimate; + } + + public function setSnippet($snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setThreadId($threadId) + { + $this->threadId = $threadId; + } + + public function getThreadId() + { + return $this->threadId; + } +} + +class Google_Service_Gmail_MessagePart extends Google_Collection +{ + protected $collection_key = 'parts'; + protected $internal_gapi_mappings = array( + ); + protected $bodyType = 'Google_Service_Gmail_MessagePartBody'; + protected $bodyDataType = ''; + public $filename; + protected $headersType = 'Google_Service_Gmail_MessagePartHeader'; + protected $headersDataType = 'array'; + public $mimeType; + public $partId; + protected $partsType = 'Google_Service_Gmail_MessagePart'; + protected $partsDataType = 'array'; + + public function setBody(Google_Service_Gmail_MessagePartBody $body) + { + $this->body = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setFilename($filename) + { + $this->filename = $filename; + } + + public function getFilename() + { + return $this->filename; + } + + public function setHeaders($headers) + { + $this->headers = $headers; + } + + public function getHeaders() + { + return $this->headers; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setPartId($partId) + { + $this->partId = $partId; + } + + public function getPartId() + { + return $this->partId; + } + + public function setParts($parts) + { + $this->parts = $parts; + } + + public function getParts() + { + return $this->parts; + } +} + +class Google_Service_Gmail_MessagePartBody extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $attachmentId; + public $data; + public $size; + + public function setAttachmentId($attachmentId) + { + $this->attachmentId = $attachmentId; + } + + public function getAttachmentId() + { + return $this->attachmentId; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_Gmail_MessagePartHeader extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $value; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Gmail_ModifyMessageRequest extends Google_Collection +{ + protected $collection_key = 'removeLabelIds'; + protected $internal_gapi_mappings = array( + ); + public $addLabelIds; + public $removeLabelIds; + + public function setAddLabelIds($addLabelIds) + { + $this->addLabelIds = $addLabelIds; + } + + public function getAddLabelIds() + { + return $this->addLabelIds; + } + + public function setRemoveLabelIds($removeLabelIds) + { + $this->removeLabelIds = $removeLabelIds; + } + + public function getRemoveLabelIds() + { + return $this->removeLabelIds; + } +} + +class Google_Service_Gmail_ModifyThreadRequest extends Google_Collection +{ + protected $collection_key = 'removeLabelIds'; + protected $internal_gapi_mappings = array( + ); + public $addLabelIds; + public $removeLabelIds; + + public function setAddLabelIds($addLabelIds) + { + $this->addLabelIds = $addLabelIds; + } + + public function getAddLabelIds() + { + return $this->addLabelIds; + } + + public function setRemoveLabelIds($removeLabelIds) + { + $this->removeLabelIds = $removeLabelIds; + } + + public function getRemoveLabelIds() + { + return $this->removeLabelIds; + } +} + +class Google_Service_Gmail_Thread extends Google_Collection +{ + protected $collection_key = 'messages'; + protected $internal_gapi_mappings = array( + ); + public $historyId; + public $id; + protected $messagesType = 'Google_Service_Gmail_Message'; + protected $messagesDataType = 'array'; + public $snippet; + + public function setHistoryId($historyId) + { + $this->historyId = $historyId; + } + + public function getHistoryId() + { + return $this->historyId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setMessages($messages) + { + $this->messages = $messages; + } + + public function getMessages() + { + return $this->messages; + } + + public function setSnippet($snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/GroupsMigration.php b/vendor/google/apiclient/src/Google/Service/GroupsMigration.php new file mode 100644 index 0000000..38a21a3 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/GroupsMigration.php @@ -0,0 +1,131 @@ + + * Groups Migration Api. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_GroupsMigration extends Google_Service +{ + + + public $archive; + + + /** + * Constructs the internal representation of the GroupsMigration service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'groups/v1/groups/'; + $this->version = 'v1'; + $this->serviceName = 'groupsmigration'; + + $this->archive = new Google_Service_GroupsMigration_Archive_Resource( + $this, + $this->serviceName, + 'archive', + array( + 'methods' => array( + 'insert' => array( + 'path' => '{groupId}/archive', + 'httpMethod' => 'POST', + 'parameters' => array( + 'groupId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "archive" collection of methods. + * Typical usage is: + * + * $groupsmigrationService = new Google_Service_GroupsMigration(...); + * $archive = $groupsmigrationService->archive; + * + */ +class Google_Service_GroupsMigration_Archive_Resource extends Google_Service_Resource +{ + + /** + * Inserts a new mail into the archive of the Google group. (archive.insert) + * + * @param string $groupId + * The group ID + * @param array $optParams Optional parameters. + * @return Google_Service_GroupsMigration_Groups + */ + public function insert($groupId, $optParams = array()) + { + $params = array('groupId' => $groupId); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_GroupsMigration_Groups"); + } +} + + + + +class Google_Service_GroupsMigration_Groups extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $responseCode; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setResponseCode($responseCode) + { + $this->responseCode = $responseCode; + } + + public function getResponseCode() + { + return $this->responseCode; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Groupssettings.php b/vendor/google/apiclient/src/Google/Service/Groupssettings.php new file mode 100644 index 0000000..8c5b87e --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Groupssettings.php @@ -0,0 +1,469 @@ + + * Lets you manage permission levels and related settings of a group. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Groupssettings extends Google_Service +{ + /** View and manage the settings of a Google Apps Group. */ + const APPS_GROUPS_SETTINGS = "https://www.googleapis.com/auth/apps.groups.settings"; + + public $groups; + + + /** + * Constructs the internal representation of the Groupssettings service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'groups/v1/groups/'; + $this->version = 'v1'; + $this->serviceName = 'groupssettings'; + + $this->groups = new Google_Service_Groupssettings_Groups_Resource( + $this, + $this->serviceName, + 'groups', + array( + 'methods' => array( + 'get' => array( + 'path' => '{groupUniqueId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'groupUniqueId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{groupUniqueId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'groupUniqueId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{groupUniqueId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'groupUniqueId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "groups" collection of methods. + * Typical usage is: + * + * $groupssettingsService = new Google_Service_Groupssettings(...); + * $groups = $groupssettingsService->groups; + * + */ +class Google_Service_Groupssettings_Groups_Resource extends Google_Service_Resource +{ + + /** + * Gets one resource by id. (groups.get) + * + * @param string $groupUniqueId + * The resource ID + * @param array $optParams Optional parameters. + * @return Google_Service_Groupssettings_Groups + */ + public function get($groupUniqueId, $optParams = array()) + { + $params = array('groupUniqueId' => $groupUniqueId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Groupssettings_Groups"); + } + /** + * Updates an existing resource. This method supports patch semantics. + * (groups.patch) + * + * @param string $groupUniqueId + * The resource ID + * @param Google_Groups $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Groupssettings_Groups + */ + public function patch($groupUniqueId, Google_Service_Groupssettings_Groups $postBody, $optParams = array()) + { + $params = array('groupUniqueId' => $groupUniqueId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Groupssettings_Groups"); + } + /** + * Updates an existing resource. (groups.update) + * + * @param string $groupUniqueId + * The resource ID + * @param Google_Groups $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Groupssettings_Groups + */ + public function update($groupUniqueId, Google_Service_Groupssettings_Groups $postBody, $optParams = array()) + { + $params = array('groupUniqueId' => $groupUniqueId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Groupssettings_Groups"); + } +} + + + + +class Google_Service_Groupssettings_Groups extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $allowExternalMembers; + public $allowGoogleCommunication; + public $allowWebPosting; + public $archiveOnly; + public $customReplyTo; + public $defaultMessageDenyNotificationText; + public $description; + public $email; + public $includeInGlobalAddressList; + public $isArchived; + public $kind; + public $maxMessageBytes; + public $membersCanPostAsTheGroup; + public $messageDisplayFont; + public $messageModerationLevel; + public $name; + public $primaryLanguage; + public $replyTo; + public $sendMessageDenyNotification; + public $showInGroupDirectory; + public $spamModerationLevel; + public $whoCanContactOwner; + public $whoCanInvite; + public $whoCanJoin; + public $whoCanLeaveGroup; + public $whoCanPostMessage; + public $whoCanViewGroup; + public $whoCanViewMembership; + + public function setAllowExternalMembers($allowExternalMembers) + { + $this->allowExternalMembers = $allowExternalMembers; + } + + public function getAllowExternalMembers() + { + return $this->allowExternalMembers; + } + + public function setAllowGoogleCommunication($allowGoogleCommunication) + { + $this->allowGoogleCommunication = $allowGoogleCommunication; + } + + public function getAllowGoogleCommunication() + { + return $this->allowGoogleCommunication; + } + + public function setAllowWebPosting($allowWebPosting) + { + $this->allowWebPosting = $allowWebPosting; + } + + public function getAllowWebPosting() + { + return $this->allowWebPosting; + } + + public function setArchiveOnly($archiveOnly) + { + $this->archiveOnly = $archiveOnly; + } + + public function getArchiveOnly() + { + return $this->archiveOnly; + } + + public function setCustomReplyTo($customReplyTo) + { + $this->customReplyTo = $customReplyTo; + } + + public function getCustomReplyTo() + { + return $this->customReplyTo; + } + + public function setDefaultMessageDenyNotificationText($defaultMessageDenyNotificationText) + { + $this->defaultMessageDenyNotificationText = $defaultMessageDenyNotificationText; + } + + public function getDefaultMessageDenyNotificationText() + { + return $this->defaultMessageDenyNotificationText; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setIncludeInGlobalAddressList($includeInGlobalAddressList) + { + $this->includeInGlobalAddressList = $includeInGlobalAddressList; + } + + public function getIncludeInGlobalAddressList() + { + return $this->includeInGlobalAddressList; + } + + public function setIsArchived($isArchived) + { + $this->isArchived = $isArchived; + } + + public function getIsArchived() + { + return $this->isArchived; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxMessageBytes($maxMessageBytes) + { + $this->maxMessageBytes = $maxMessageBytes; + } + + public function getMaxMessageBytes() + { + return $this->maxMessageBytes; + } + + public function setMembersCanPostAsTheGroup($membersCanPostAsTheGroup) + { + $this->membersCanPostAsTheGroup = $membersCanPostAsTheGroup; + } + + public function getMembersCanPostAsTheGroup() + { + return $this->membersCanPostAsTheGroup; + } + + public function setMessageDisplayFont($messageDisplayFont) + { + $this->messageDisplayFont = $messageDisplayFont; + } + + public function getMessageDisplayFont() + { + return $this->messageDisplayFont; + } + + public function setMessageModerationLevel($messageModerationLevel) + { + $this->messageModerationLevel = $messageModerationLevel; + } + + public function getMessageModerationLevel() + { + return $this->messageModerationLevel; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPrimaryLanguage($primaryLanguage) + { + $this->primaryLanguage = $primaryLanguage; + } + + public function getPrimaryLanguage() + { + return $this->primaryLanguage; + } + + public function setReplyTo($replyTo) + { + $this->replyTo = $replyTo; + } + + public function getReplyTo() + { + return $this->replyTo; + } + + public function setSendMessageDenyNotification($sendMessageDenyNotification) + { + $this->sendMessageDenyNotification = $sendMessageDenyNotification; + } + + public function getSendMessageDenyNotification() + { + return $this->sendMessageDenyNotification; + } + + public function setShowInGroupDirectory($showInGroupDirectory) + { + $this->showInGroupDirectory = $showInGroupDirectory; + } + + public function getShowInGroupDirectory() + { + return $this->showInGroupDirectory; + } + + public function setSpamModerationLevel($spamModerationLevel) + { + $this->spamModerationLevel = $spamModerationLevel; + } + + public function getSpamModerationLevel() + { + return $this->spamModerationLevel; + } + + public function setWhoCanContactOwner($whoCanContactOwner) + { + $this->whoCanContactOwner = $whoCanContactOwner; + } + + public function getWhoCanContactOwner() + { + return $this->whoCanContactOwner; + } + + public function setWhoCanInvite($whoCanInvite) + { + $this->whoCanInvite = $whoCanInvite; + } + + public function getWhoCanInvite() + { + return $this->whoCanInvite; + } + + public function setWhoCanJoin($whoCanJoin) + { + $this->whoCanJoin = $whoCanJoin; + } + + public function getWhoCanJoin() + { + return $this->whoCanJoin; + } + + public function setWhoCanLeaveGroup($whoCanLeaveGroup) + { + $this->whoCanLeaveGroup = $whoCanLeaveGroup; + } + + public function getWhoCanLeaveGroup() + { + return $this->whoCanLeaveGroup; + } + + public function setWhoCanPostMessage($whoCanPostMessage) + { + $this->whoCanPostMessage = $whoCanPostMessage; + } + + public function getWhoCanPostMessage() + { + return $this->whoCanPostMessage; + } + + public function setWhoCanViewGroup($whoCanViewGroup) + { + $this->whoCanViewGroup = $whoCanViewGroup; + } + + public function getWhoCanViewGroup() + { + return $this->whoCanViewGroup; + } + + public function setWhoCanViewMembership($whoCanViewMembership) + { + $this->whoCanViewMembership = $whoCanViewMembership; + } + + public function getWhoCanViewMembership() + { + return $this->whoCanViewMembership; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/IdentityToolkit.php b/vendor/google/apiclient/src/Google/Service/IdentityToolkit.php new file mode 100644 index 0000000..eee52a3 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/IdentityToolkit.php @@ -0,0 +1,1829 @@ + + * Help the third party sites to implement federated login. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_IdentityToolkit extends Google_Service +{ + + + public $relyingparty; + + + /** + * Constructs the internal representation of the IdentityToolkit service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'identitytoolkit/v3/relyingparty/'; + $this->version = 'v3'; + $this->serviceName = 'identitytoolkit'; + + $this->relyingparty = new Google_Service_IdentityToolkit_Relyingparty_Resource( + $this, + $this->serviceName, + 'relyingparty', + array( + 'methods' => array( + 'createAuthUri' => array( + 'path' => 'createAuthUri', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'deleteAccount' => array( + 'path' => 'deleteAccount', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'downloadAccount' => array( + 'path' => 'downloadAccount', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'getAccountInfo' => array( + 'path' => 'getAccountInfo', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'getOobConfirmationCode' => array( + 'path' => 'getOobConfirmationCode', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'getPublicKeys' => array( + 'path' => 'publicKeys', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'resetPassword' => array( + 'path' => 'resetPassword', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'setAccountInfo' => array( + 'path' => 'setAccountInfo', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'uploadAccount' => array( + 'path' => 'uploadAccount', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'verifyAssertion' => array( + 'path' => 'verifyAssertion', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'verifyPassword' => array( + 'path' => 'verifyPassword', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "relyingparty" collection of methods. + * Typical usage is: + * + * $identitytoolkitService = new Google_Service_IdentityToolkit(...); + * $relyingparty = $identitytoolkitService->relyingparty; + * + */ +class Google_Service_IdentityToolkit_Relyingparty_Resource extends Google_Service_Resource +{ + + /** + * Creates the URI used by the IdP to authenticate the user. + * (relyingparty.createAuthUri) + * + * @param Google_IdentitytoolkitRelyingpartyCreateAuthUriRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_CreateAuthUriResponse + */ + public function createAuthUri(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyCreateAuthUriRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('createAuthUri', array($params), "Google_Service_IdentityToolkit_CreateAuthUriResponse"); + } + /** + * Delete user account. (relyingparty.deleteAccount) + * + * @param Google_IdentitytoolkitRelyingpartyDeleteAccountRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_DeleteAccountResponse + */ + public function deleteAccount(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyDeleteAccountRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('deleteAccount', array($params), "Google_Service_IdentityToolkit_DeleteAccountResponse"); + } + /** + * Batch download user accounts. (relyingparty.downloadAccount) + * + * @param Google_IdentitytoolkitRelyingpartyDownloadAccountRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_DownloadAccountResponse + */ + public function downloadAccount(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyDownloadAccountRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('downloadAccount', array($params), "Google_Service_IdentityToolkit_DownloadAccountResponse"); + } + /** + * Returns the account info. (relyingparty.getAccountInfo) + * + * @param Google_IdentitytoolkitRelyingpartyGetAccountInfoRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_GetAccountInfoResponse + */ + public function getAccountInfo(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyGetAccountInfoRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getAccountInfo', array($params), "Google_Service_IdentityToolkit_GetAccountInfoResponse"); + } + /** + * Get a code for user action confirmation. + * (relyingparty.getOobConfirmationCode) + * + * @param Google_Relyingparty $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_GetOobConfirmationCodeResponse + */ + public function getOobConfirmationCode(Google_Service_IdentityToolkit_Relyingparty $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getOobConfirmationCode', array($params), "Google_Service_IdentityToolkit_GetOobConfirmationCodeResponse"); + } + /** + * Get token signing public key. (relyingparty.getPublicKeys) + * + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyGetPublicKeysResponse + */ + public function getPublicKeys($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('getPublicKeys', array($params), "Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyGetPublicKeysResponse"); + } + /** + * Reset password for a user. (relyingparty.resetPassword) + * + * @param Google_IdentitytoolkitRelyingpartyResetPasswordRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_ResetPasswordResponse + */ + public function resetPassword(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyResetPasswordRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('resetPassword', array($params), "Google_Service_IdentityToolkit_ResetPasswordResponse"); + } + /** + * Set account info for a user. (relyingparty.setAccountInfo) + * + * @param Google_IdentitytoolkitRelyingpartySetAccountInfoRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_SetAccountInfoResponse + */ + public function setAccountInfo(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartySetAccountInfoRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setAccountInfo', array($params), "Google_Service_IdentityToolkit_SetAccountInfoResponse"); + } + /** + * Batch upload existing user accounts. (relyingparty.uploadAccount) + * + * @param Google_IdentitytoolkitRelyingpartyUploadAccountRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_UploadAccountResponse + */ + public function uploadAccount(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyUploadAccountRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('uploadAccount', array($params), "Google_Service_IdentityToolkit_UploadAccountResponse"); + } + /** + * Verifies the assertion returned by the IdP. (relyingparty.verifyAssertion) + * + * @param Google_IdentitytoolkitRelyingpartyVerifyAssertionRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_VerifyAssertionResponse + */ + public function verifyAssertion(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyVerifyAssertionRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('verifyAssertion', array($params), "Google_Service_IdentityToolkit_VerifyAssertionResponse"); + } + /** + * Verifies the user entered password. (relyingparty.verifyPassword) + * + * @param Google_IdentitytoolkitRelyingpartyVerifyPasswordRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_IdentityToolkit_VerifyPasswordResponse + */ + public function verifyPassword(Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyVerifyPasswordRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('verifyPassword', array($params), "Google_Service_IdentityToolkit_VerifyPasswordResponse"); + } +} + + + + +class Google_Service_IdentityToolkit_CreateAuthUriResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $authUri; + public $captchaRequired; + public $forExistingProvider; + public $kind; + public $providerId; + public $registered; + + public function setAuthUri($authUri) + { + $this->authUri = $authUri; + } + + public function getAuthUri() + { + return $this->authUri; + } + + public function setCaptchaRequired($captchaRequired) + { + $this->captchaRequired = $captchaRequired; + } + + public function getCaptchaRequired() + { + return $this->captchaRequired; + } + + public function setForExistingProvider($forExistingProvider) + { + $this->forExistingProvider = $forExistingProvider; + } + + public function getForExistingProvider() + { + return $this->forExistingProvider; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProviderId($providerId) + { + $this->providerId = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } + + public function setRegistered($registered) + { + $this->registered = $registered; + } + + public function getRegistered() + { + return $this->registered; + } +} + +class Google_Service_IdentityToolkit_DeleteAccountResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_IdentityToolkit_DownloadAccountResponse extends Google_Collection +{ + protected $collection_key = 'users'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $usersType = 'Google_Service_IdentityToolkit_UserInfo'; + protected $usersDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setUsers($users) + { + $this->users = $users; + } + + public function getUsers() + { + return $this->users; + } +} + +class Google_Service_IdentityToolkit_GetAccountInfoResponse extends Google_Collection +{ + protected $collection_key = 'users'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $usersType = 'Google_Service_IdentityToolkit_UserInfo'; + protected $usersDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUsers($users) + { + $this->users = $users; + } + + public function getUsers() + { + return $this->users; + } +} + +class Google_Service_IdentityToolkit_GetOobConfirmationCodeResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $oobCode; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOobCode($oobCode) + { + $this->oobCode = $oobCode; + } + + public function getOobCode() + { + return $this->oobCode; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyCreateAuthUriRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $appId; + public $clientId; + public $context; + public $continueUri; + public $identifier; + public $openidRealm; + public $otaApp; + public $providerId; + + public function setAppId($appId) + { + $this->appId = $appId; + } + + public function getAppId() + { + return $this->appId; + } + + public function setClientId($clientId) + { + $this->clientId = $clientId; + } + + public function getClientId() + { + return $this->clientId; + } + + public function setContext($context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setContinueUri($continueUri) + { + $this->continueUri = $continueUri; + } + + public function getContinueUri() + { + return $this->continueUri; + } + + public function setIdentifier($identifier) + { + $this->identifier = $identifier; + } + + public function getIdentifier() + { + return $this->identifier; + } + + public function setOpenidRealm($openidRealm) + { + $this->openidRealm = $openidRealm; + } + + public function getOpenidRealm() + { + return $this->openidRealm; + } + + public function setOtaApp($otaApp) + { + $this->otaApp = $otaApp; + } + + public function getOtaApp() + { + return $this->otaApp; + } + + public function setProviderId($providerId) + { + $this->providerId = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyDeleteAccountRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $localId; + + public function setLocalId($localId) + { + $this->localId = $localId; + } + + public function getLocalId() + { + return $this->localId; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyDownloadAccountRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $maxResults; + public $nextPageToken; + + public function setMaxResults($maxResults) + { + $this->maxResults = $maxResults; + } + + public function getMaxResults() + { + return $this->maxResults; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyGetAccountInfoRequest extends Google_Collection +{ + protected $collection_key = 'localId'; + protected $internal_gapi_mappings = array( + ); + public $email; + public $idToken; + public $localId; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + public function getIdToken() + { + return $this->idToken; + } + + public function setLocalId($localId) + { + $this->localId = $localId; + } + + public function getLocalId() + { + return $this->localId; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyGetPublicKeysResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyResetPasswordRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $email; + public $newPassword; + public $oldPassword; + public $oobCode; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setNewPassword($newPassword) + { + $this->newPassword = $newPassword; + } + + public function getNewPassword() + { + return $this->newPassword; + } + + public function setOldPassword($oldPassword) + { + $this->oldPassword = $oldPassword; + } + + public function getOldPassword() + { + return $this->oldPassword; + } + + public function setOobCode($oobCode) + { + $this->oobCode = $oobCode; + } + + public function getOobCode() + { + return $this->oobCode; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartySetAccountInfoRequest extends Google_Collection +{ + protected $collection_key = 'provider'; + protected $internal_gapi_mappings = array( + ); + public $captchaChallenge; + public $captchaResponse; + public $displayName; + public $email; + public $emailVerified; + public $idToken; + public $localId; + public $oobCode; + public $password; + public $provider; + public $upgradeToFederatedLogin; + + public function setCaptchaChallenge($captchaChallenge) + { + $this->captchaChallenge = $captchaChallenge; + } + + public function getCaptchaChallenge() + { + return $this->captchaChallenge; + } + + public function setCaptchaResponse($captchaResponse) + { + $this->captchaResponse = $captchaResponse; + } + + public function getCaptchaResponse() + { + return $this->captchaResponse; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEmailVerified($emailVerified) + { + $this->emailVerified = $emailVerified; + } + + public function getEmailVerified() + { + return $this->emailVerified; + } + + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + public function getIdToken() + { + return $this->idToken; + } + + public function setLocalId($localId) + { + $this->localId = $localId; + } + + public function getLocalId() + { + return $this->localId; + } + + public function setOobCode($oobCode) + { + $this->oobCode = $oobCode; + } + + public function getOobCode() + { + return $this->oobCode; + } + + public function setPassword($password) + { + $this->password = $password; + } + + public function getPassword() + { + return $this->password; + } + + public function setProvider($provider) + { + $this->provider = $provider; + } + + public function getProvider() + { + return $this->provider; + } + + public function setUpgradeToFederatedLogin($upgradeToFederatedLogin) + { + $this->upgradeToFederatedLogin = $upgradeToFederatedLogin; + } + + public function getUpgradeToFederatedLogin() + { + return $this->upgradeToFederatedLogin; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyUploadAccountRequest extends Google_Collection +{ + protected $collection_key = 'users'; + protected $internal_gapi_mappings = array( + ); + public $hashAlgorithm; + public $memoryCost; + public $rounds; + public $saltSeparator; + public $signerKey; + protected $usersType = 'Google_Service_IdentityToolkit_UserInfo'; + protected $usersDataType = 'array'; + + public function setHashAlgorithm($hashAlgorithm) + { + $this->hashAlgorithm = $hashAlgorithm; + } + + public function getHashAlgorithm() + { + return $this->hashAlgorithm; + } + + public function setMemoryCost($memoryCost) + { + $this->memoryCost = $memoryCost; + } + + public function getMemoryCost() + { + return $this->memoryCost; + } + + public function setRounds($rounds) + { + $this->rounds = $rounds; + } + + public function getRounds() + { + return $this->rounds; + } + + public function setSaltSeparator($saltSeparator) + { + $this->saltSeparator = $saltSeparator; + } + + public function getSaltSeparator() + { + return $this->saltSeparator; + } + + public function setSignerKey($signerKey) + { + $this->signerKey = $signerKey; + } + + public function getSignerKey() + { + return $this->signerKey; + } + + public function setUsers($users) + { + $this->users = $users; + } + + public function getUsers() + { + return $this->users; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyVerifyAssertionRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $pendingIdToken; + public $postBody; + public $requestUri; + + public function setPendingIdToken($pendingIdToken) + { + $this->pendingIdToken = $pendingIdToken; + } + + public function getPendingIdToken() + { + return $this->pendingIdToken; + } + + public function setPostBody($postBody) + { + $this->postBody = $postBody; + } + + public function getPostBody() + { + return $this->postBody; + } + + public function setRequestUri($requestUri) + { + $this->requestUri = $requestUri; + } + + public function getRequestUri() + { + return $this->requestUri; + } +} + +class Google_Service_IdentityToolkit_IdentitytoolkitRelyingpartyVerifyPasswordRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $captchaChallenge; + public $captchaResponse; + public $email; + public $password; + public $pendingIdToken; + + public function setCaptchaChallenge($captchaChallenge) + { + $this->captchaChallenge = $captchaChallenge; + } + + public function getCaptchaChallenge() + { + return $this->captchaChallenge; + } + + public function setCaptchaResponse($captchaResponse) + { + $this->captchaResponse = $captchaResponse; + } + + public function getCaptchaResponse() + { + return $this->captchaResponse; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setPassword($password) + { + $this->password = $password; + } + + public function getPassword() + { + return $this->password; + } + + public function setPendingIdToken($pendingIdToken) + { + $this->pendingIdToken = $pendingIdToken; + } + + public function getPendingIdToken() + { + return $this->pendingIdToken; + } +} + +class Google_Service_IdentityToolkit_Relyingparty extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $captchaResp; + public $challenge; + public $email; + public $idToken; + public $kind; + public $newEmail; + public $requestType; + public $userIp; + + public function setCaptchaResp($captchaResp) + { + $this->captchaResp = $captchaResp; + } + + public function getCaptchaResp() + { + return $this->captchaResp; + } + + public function setChallenge($challenge) + { + $this->challenge = $challenge; + } + + public function getChallenge() + { + return $this->challenge; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + public function getIdToken() + { + return $this->idToken; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNewEmail($newEmail) + { + $this->newEmail = $newEmail; + } + + public function getNewEmail() + { + return $this->newEmail; + } + + public function setRequestType($requestType) + { + $this->requestType = $requestType; + } + + public function getRequestType() + { + return $this->requestType; + } + + public function setUserIp($userIp) + { + $this->userIp = $userIp; + } + + public function getUserIp() + { + return $this->userIp; + } +} + +class Google_Service_IdentityToolkit_ResetPasswordResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $email; + public $kind; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_IdentityToolkit_SetAccountInfoResponse extends Google_Collection +{ + protected $collection_key = 'providerUserInfo'; + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $email; + public $idToken; + public $kind; + protected $providerUserInfoType = 'Google_Service_IdentityToolkit_SetAccountInfoResponseProviderUserInfo'; + protected $providerUserInfoDataType = 'array'; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + public function getIdToken() + { + return $this->idToken; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProviderUserInfo($providerUserInfo) + { + $this->providerUserInfo = $providerUserInfo; + } + + public function getProviderUserInfo() + { + return $this->providerUserInfo; + } +} + +class Google_Service_IdentityToolkit_SetAccountInfoResponseProviderUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $photoUrl; + public $providerId; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } + + public function setProviderId($providerId) + { + $this->providerId = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } +} + +class Google_Service_IdentityToolkit_UploadAccountResponse extends Google_Collection +{ + protected $collection_key = 'error'; + protected $internal_gapi_mappings = array( + ); + protected $errorType = 'Google_Service_IdentityToolkit_UploadAccountResponseError'; + protected $errorDataType = 'array'; + public $kind; + + public function setError($error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_IdentityToolkit_UploadAccountResponseError extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $index; + public $message; + + public function setIndex($index) + { + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_IdentityToolkit_UserInfo extends Google_Collection +{ + protected $collection_key = 'providerUserInfo'; + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $email; + public $emailVerified; + public $localId; + public $passwordHash; + public $passwordUpdatedAt; + public $photoUrl; + protected $providerUserInfoType = 'Google_Service_IdentityToolkit_UserInfoProviderUserInfo'; + protected $providerUserInfoDataType = 'array'; + public $salt; + public $version; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEmailVerified($emailVerified) + { + $this->emailVerified = $emailVerified; + } + + public function getEmailVerified() + { + return $this->emailVerified; + } + + public function setLocalId($localId) + { + $this->localId = $localId; + } + + public function getLocalId() + { + return $this->localId; + } + + public function setPasswordHash($passwordHash) + { + $this->passwordHash = $passwordHash; + } + + public function getPasswordHash() + { + return $this->passwordHash; + } + + public function setPasswordUpdatedAt($passwordUpdatedAt) + { + $this->passwordUpdatedAt = $passwordUpdatedAt; + } + + public function getPasswordUpdatedAt() + { + return $this->passwordUpdatedAt; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } + + public function setProviderUserInfo($providerUserInfo) + { + $this->providerUserInfo = $providerUserInfo; + } + + public function getProviderUserInfo() + { + return $this->providerUserInfo; + } + + public function setSalt($salt) + { + $this->salt = $salt; + } + + public function getSalt() + { + return $this->salt; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_IdentityToolkit_UserInfoProviderUserInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $federatedId; + public $photoUrl; + public $providerId; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setFederatedId($federatedId) + { + $this->federatedId = $federatedId; + } + + public function getFederatedId() + { + return $this->federatedId; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } + + public function setProviderId($providerId) + { + $this->providerId = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } +} + +class Google_Service_IdentityToolkit_VerifyAssertionResponse extends Google_Collection +{ + protected $collection_key = 'verifiedProvider'; + protected $internal_gapi_mappings = array( + ); + public $action; + public $appInstallationUrl; + public $appScheme; + public $context; + public $dateOfBirth; + public $displayName; + public $email; + public $emailRecycled; + public $emailVerified; + public $federatedId; + public $firstName; + public $fullName; + public $idToken; + public $inputEmail; + public $kind; + public $language; + public $lastName; + public $localId; + public $needConfirmation; + public $nickName; + public $oauthRequestToken; + public $oauthScope; + public $originalEmail; + public $photoUrl; + public $providerId; + public $timeZone; + public $verifiedProvider; + + public function setAction($action) + { + $this->action = $action; + } + + public function getAction() + { + return $this->action; + } + + public function setAppInstallationUrl($appInstallationUrl) + { + $this->appInstallationUrl = $appInstallationUrl; + } + + public function getAppInstallationUrl() + { + return $this->appInstallationUrl; + } + + public function setAppScheme($appScheme) + { + $this->appScheme = $appScheme; + } + + public function getAppScheme() + { + return $this->appScheme; + } + + public function setContext($context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setDateOfBirth($dateOfBirth) + { + $this->dateOfBirth = $dateOfBirth; + } + + public function getDateOfBirth() + { + return $this->dateOfBirth; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEmailRecycled($emailRecycled) + { + $this->emailRecycled = $emailRecycled; + } + + public function getEmailRecycled() + { + return $this->emailRecycled; + } + + public function setEmailVerified($emailVerified) + { + $this->emailVerified = $emailVerified; + } + + public function getEmailVerified() + { + return $this->emailVerified; + } + + public function setFederatedId($federatedId) + { + $this->federatedId = $federatedId; + } + + public function getFederatedId() + { + return $this->federatedId; + } + + public function setFirstName($firstName) + { + $this->firstName = $firstName; + } + + public function getFirstName() + { + return $this->firstName; + } + + public function setFullName($fullName) + { + $this->fullName = $fullName; + } + + public function getFullName() + { + return $this->fullName; + } + + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + public function getIdToken() + { + return $this->idToken; + } + + public function setInputEmail($inputEmail) + { + $this->inputEmail = $inputEmail; + } + + public function getInputEmail() + { + return $this->inputEmail; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setLastName($lastName) + { + $this->lastName = $lastName; + } + + public function getLastName() + { + return $this->lastName; + } + + public function setLocalId($localId) + { + $this->localId = $localId; + } + + public function getLocalId() + { + return $this->localId; + } + + public function setNeedConfirmation($needConfirmation) + { + $this->needConfirmation = $needConfirmation; + } + + public function getNeedConfirmation() + { + return $this->needConfirmation; + } + + public function setNickName($nickName) + { + $this->nickName = $nickName; + } + + public function getNickName() + { + return $this->nickName; + } + + public function setOauthRequestToken($oauthRequestToken) + { + $this->oauthRequestToken = $oauthRequestToken; + } + + public function getOauthRequestToken() + { + return $this->oauthRequestToken; + } + + public function setOauthScope($oauthScope) + { + $this->oauthScope = $oauthScope; + } + + public function getOauthScope() + { + return $this->oauthScope; + } + + public function setOriginalEmail($originalEmail) + { + $this->originalEmail = $originalEmail; + } + + public function getOriginalEmail() + { + return $this->originalEmail; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } + + public function setProviderId($providerId) + { + $this->providerId = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } + + public function setVerifiedProvider($verifiedProvider) + { + $this->verifiedProvider = $verifiedProvider; + } + + public function getVerifiedProvider() + { + return $this->verifiedProvider; + } +} + +class Google_Service_IdentityToolkit_VerifyPasswordResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $email; + public $idToken; + public $kind; + public $localId; + public $photoUrl; + public $registered; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + public function getIdToken() + { + return $this->idToken; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocalId($localId) + { + $this->localId = $localId; + } + + public function getLocalId() + { + return $this->localId; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } + + public function setRegistered($registered) + { + $this->registered = $registered; + } + + public function getRegistered() + { + return $this->registered; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Licensing.php b/vendor/google/apiclient/src/Google/Service/Licensing.php new file mode 100644 index 0000000..74d9d21 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Licensing.php @@ -0,0 +1,506 @@ + + * Licensing API to view and manage license for your domain. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Licensing extends Google_Service +{ + + + public $licenseAssignments; + + + /** + * Constructs the internal representation of the Licensing service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'apps/licensing/v1/product/'; + $this->version = 'v1'; + $this->serviceName = 'licensing'; + + $this->licenseAssignments = new Google_Service_Licensing_LicenseAssignments_Resource( + $this, + $this->serviceName, + 'licenseAssignments', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{productId}/sku/{skuId}/user/{userId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'skuId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{productId}/sku/{skuId}/user/{userId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'skuId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{productId}/sku/{skuId}/user', + 'httpMethod' => 'POST', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'skuId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'listForProduct' => array( + 'path' => '{productId}/users', + 'httpMethod' => 'GET', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'listForProductAndSku' => array( + 'path' => '{productId}/sku/{skuId}/users', + 'httpMethod' => 'GET', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'skuId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{productId}/sku/{skuId}/user/{userId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'skuId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{productId}/sku/{skuId}/user/{userId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'skuId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "licenseAssignments" collection of methods. + * Typical usage is: + * + * $licensingService = new Google_Service_Licensing(...); + * $licenseAssignments = $licensingService->licenseAssignments; + * + */ +class Google_Service_Licensing_LicenseAssignments_Resource extends Google_Service_Resource +{ + + /** + * Revoke License. (licenseAssignments.delete) + * + * @param string $productId + * Name for product + * @param string $skuId + * Name for sku + * @param string $userId + * email id or unique Id of the user + * @param array $optParams Optional parameters. + */ + public function delete($productId, $skuId, $userId, $optParams = array()) + { + $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Get license assignment of a particular product and sku for a user + * (licenseAssignments.get) + * + * @param string $productId + * Name for product + * @param string $skuId + * Name for sku + * @param string $userId + * email id or unique Id of the user + * @param array $optParams Optional parameters. + * @return Google_Service_Licensing_LicenseAssignment + */ + public function get($productId, $skuId, $userId, $optParams = array()) + { + $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Licensing_LicenseAssignment"); + } + /** + * Assign License. (licenseAssignments.insert) + * + * @param string $productId + * Name for product + * @param string $skuId + * Name for sku + * @param Google_LicenseAssignmentInsert $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Licensing_LicenseAssignment + */ + public function insert($productId, $skuId, Google_Service_Licensing_LicenseAssignmentInsert $postBody, $optParams = array()) + { + $params = array('productId' => $productId, 'skuId' => $skuId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Licensing_LicenseAssignment"); + } + /** + * List license assignments for given product of the customer. + * (licenseAssignments.listForProduct) + * + * @param string $productId + * Name for product + * @param string $customerId + * CustomerId represents the customer for whom licenseassignments are queried + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token to fetch the next page.Optional. By default server will return first page + * @opt_param string maxResults + * Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is + * 100. + * @return Google_Service_Licensing_LicenseAssignmentList + */ + public function listForProduct($productId, $customerId, $optParams = array()) + { + $params = array('productId' => $productId, 'customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('listForProduct', array($params), "Google_Service_Licensing_LicenseAssignmentList"); + } + /** + * List license assignments for given product and sku of the customer. + * (licenseAssignments.listForProductAndSku) + * + * @param string $productId + * Name for product + * @param string $skuId + * Name for sku + * @param string $customerId + * CustomerId represents the customer for whom licenseassignments are queried + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token to fetch the next page.Optional. By default server will return first page + * @opt_param string maxResults + * Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is + * 100. + * @return Google_Service_Licensing_LicenseAssignmentList + */ + public function listForProductAndSku($productId, $skuId, $customerId, $optParams = array()) + { + $params = array('productId' => $productId, 'skuId' => $skuId, 'customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('listForProductAndSku', array($params), "Google_Service_Licensing_LicenseAssignmentList"); + } + /** + * Assign License. This method supports patch semantics. + * (licenseAssignments.patch) + * + * @param string $productId + * Name for product + * @param string $skuId + * Name for sku for which license would be revoked + * @param string $userId + * email id or unique Id of the user + * @param Google_LicenseAssignment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Licensing_LicenseAssignment + */ + public function patch($productId, $skuId, $userId, Google_Service_Licensing_LicenseAssignment $postBody, $optParams = array()) + { + $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Licensing_LicenseAssignment"); + } + /** + * Assign License. (licenseAssignments.update) + * + * @param string $productId + * Name for product + * @param string $skuId + * Name for sku for which license would be revoked + * @param string $userId + * email id or unique Id of the user + * @param Google_LicenseAssignment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Licensing_LicenseAssignment + */ + public function update($productId, $skuId, $userId, Google_Service_Licensing_LicenseAssignment $postBody, $optParams = array()) + { + $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Licensing_LicenseAssignment"); + } +} + + + + +class Google_Service_Licensing_LicenseAssignment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etags; + public $kind; + public $productId; + public $selfLink; + public $skuId; + public $userId; + + public function setEtags($etags) + { + $this->etags = $etags; + } + + public function getEtags() + { + return $this->etags; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSkuId($skuId) + { + $this->skuId = $skuId; + } + + public function getSkuId() + { + return $this->skuId; + } + + public function setUserId($userId) + { + $this->userId = $userId; + } + + public function getUserId() + { + return $this->userId; + } +} + +class Google_Service_Licensing_LicenseAssignmentInsert extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $userId; + + public function setUserId($userId) + { + $this->userId = $userId; + } + + public function getUserId() + { + return $this->userId; + } +} + +class Google_Service_Licensing_LicenseAssignmentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Licensing_LicenseAssignment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Manager.php b/vendor/google/apiclient/src/Google/Service/Manager.php new file mode 100644 index 0000000..63b21a1 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Manager.php @@ -0,0 +1,2051 @@ + + * The Deployment Manager API allows users to declaratively configure, deploy and run complex solutions on the Google Cloud Platform. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Manager extends Google_Service +{ + /** View and manage your applications deployed on Google App Engine. */ + const APPENGINE_ADMIN = "https://www.googleapis.com/auth/appengine.admin"; + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** View and manage your Google Compute Engine resources. */ + const COMPUTE = "https://www.googleapis.com/auth/compute"; + /** Manage your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_WRITE = "https://www.googleapis.com/auth/devstorage.read_write"; + /** View and manage your Google Cloud Platform management resources and deployment status information. */ + const NDEV_CLOUDMAN = "https://www.googleapis.com/auth/ndev.cloudman"; + /** View your Google Cloud Platform management resources and deployment status information. */ + const NDEV_CLOUDMAN_READONLY = "https://www.googleapis.com/auth/ndev.cloudman.readonly"; + + public $deployments; + public $templates; + + + /** + * Constructs the internal representation of the Manager service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'manager/v1beta2/projects/'; + $this->version = 'v1beta2'; + $this->serviceName = 'manager'; + + $this->deployments = new Google_Service_Manager_Deployments_Resource( + $this, + $this->serviceName, + 'deployments', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{projectId}/regions/{region}/deployments/{deploymentName}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deploymentName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{projectId}/regions/{region}/deployments/{deploymentName}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deploymentName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{projectId}/regions/{region}/deployments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{projectId}/regions/{region}/deployments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'region' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->templates = new Google_Service_Manager_Templates_Resource( + $this, + $this->serviceName, + 'templates', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{projectId}/templates/{templateName}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'templateName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{projectId}/templates/{templateName}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'templateName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{projectId}/templates', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{projectId}/templates', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "deployments" collection of methods. + * Typical usage is: + * + * $managerService = new Google_Service_Manager(...); + * $deployments = $managerService->deployments; + * + */ +class Google_Service_Manager_Deployments_Resource extends Google_Service_Resource +{ + + /** + * (deployments.delete) + * + * @param string $projectId + * + * @param string $region + * + * @param string $deploymentName + * + * @param array $optParams Optional parameters. + */ + public function delete($projectId, $region, $deploymentName, $optParams = array()) + { + $params = array('projectId' => $projectId, 'region' => $region, 'deploymentName' => $deploymentName); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * (deployments.get) + * + * @param string $projectId + * + * @param string $region + * + * @param string $deploymentName + * + * @param array $optParams Optional parameters. + * @return Google_Service_Manager_Deployment + */ + public function get($projectId, $region, $deploymentName, $optParams = array()) + { + $params = array('projectId' => $projectId, 'region' => $region, 'deploymentName' => $deploymentName); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Manager_Deployment"); + } + /** + * (deployments.insert) + * + * @param string $projectId + * + * @param string $region + * + * @param Google_Deployment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Manager_Deployment + */ + public function insert($projectId, $region, Google_Service_Manager_Deployment $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'region' => $region, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Manager_Deployment"); + } + /** + * (deployments.listDeployments) + * + * @param string $projectId + * + * @param string $region + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Specifies a nextPageToken returned by a previous list request. This token can be used to request + * the next page of results from a previous list request. + * @opt_param int maxResults + * Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: + * 50) + * @return Google_Service_Manager_DeploymentsListResponse + */ + public function listDeployments($projectId, $region, $optParams = array()) + { + $params = array('projectId' => $projectId, 'region' => $region); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Manager_DeploymentsListResponse"); + } +} + +/** + * The "templates" collection of methods. + * Typical usage is: + * + * $managerService = new Google_Service_Manager(...); + * $templates = $managerService->templates; + * + */ +class Google_Service_Manager_Templates_Resource extends Google_Service_Resource +{ + + /** + * (templates.delete) + * + * @param string $projectId + * + * @param string $templateName + * + * @param array $optParams Optional parameters. + */ + public function delete($projectId, $templateName, $optParams = array()) + { + $params = array('projectId' => $projectId, 'templateName' => $templateName); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * (templates.get) + * + * @param string $projectId + * + * @param string $templateName + * + * @param array $optParams Optional parameters. + * @return Google_Service_Manager_Template + */ + public function get($projectId, $templateName, $optParams = array()) + { + $params = array('projectId' => $projectId, 'templateName' => $templateName); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Manager_Template"); + } + /** + * (templates.insert) + * + * @param string $projectId + * + * @param Google_Template $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Manager_Template + */ + public function insert($projectId, Google_Service_Manager_Template $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Manager_Template"); + } + /** + * (templates.listTemplates) + * + * @param string $projectId + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Specifies a nextPageToken returned by a previous list request. This token can be used to request + * the next page of results from a previous list request. + * @opt_param int maxResults + * Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: + * 50) + * @return Google_Service_Manager_TemplatesListResponse + */ + public function listTemplates($projectId, $optParams = array()) + { + $params = array('projectId' => $projectId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Manager_TemplatesListResponse"); + } +} + + + + +class Google_Service_Manager_AccessConfig extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $natIp; + public $type; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNatIp($natIp) + { + $this->natIp = $natIp; + } + + public function getNatIp() + { + return $this->natIp; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Manager_Action extends Google_Collection +{ + protected $collection_key = 'commands'; + protected $internal_gapi_mappings = array( + ); + public $commands; + public $timeoutMs; + + public function setCommands($commands) + { + $this->commands = $commands; + } + + public function getCommands() + { + return $this->commands; + } + + public function setTimeoutMs($timeoutMs) + { + $this->timeoutMs = $timeoutMs; + } + + public function getTimeoutMs() + { + return $this->timeoutMs; + } +} + +class Google_Service_Manager_AllowedRule extends Google_Collection +{ + protected $collection_key = 'ports'; + protected $internal_gapi_mappings = array( + "iPProtocol" => "IPProtocol", + ); + public $iPProtocol; + public $ports; + + public function setIPProtocol($iPProtocol) + { + $this->iPProtocol = $iPProtocol; + } + + public function getIPProtocol() + { + return $this->iPProtocol; + } + + public function setPorts($ports) + { + $this->ports = $ports; + } + + public function getPorts() + { + return $this->ports; + } +} + +class Google_Service_Manager_AutoscalingModule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $coolDownPeriodSec; + public $description; + public $maxNumReplicas; + public $minNumReplicas; + public $signalType; + public $targetModule; + public $targetUtilization; + + public function setCoolDownPeriodSec($coolDownPeriodSec) + { + $this->coolDownPeriodSec = $coolDownPeriodSec; + } + + public function getCoolDownPeriodSec() + { + return $this->coolDownPeriodSec; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setMaxNumReplicas($maxNumReplicas) + { + $this->maxNumReplicas = $maxNumReplicas; + } + + public function getMaxNumReplicas() + { + return $this->maxNumReplicas; + } + + public function setMinNumReplicas($minNumReplicas) + { + $this->minNumReplicas = $minNumReplicas; + } + + public function getMinNumReplicas() + { + return $this->minNumReplicas; + } + + public function setSignalType($signalType) + { + $this->signalType = $signalType; + } + + public function getSignalType() + { + return $this->signalType; + } + + public function setTargetModule($targetModule) + { + $this->targetModule = $targetModule; + } + + public function getTargetModule() + { + return $this->targetModule; + } + + public function setTargetUtilization($targetUtilization) + { + $this->targetUtilization = $targetUtilization; + } + + public function getTargetUtilization() + { + return $this->targetUtilization; + } +} + +class Google_Service_Manager_AutoscalingModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $autoscalingConfigUrl; + + public function setAutoscalingConfigUrl($autoscalingConfigUrl) + { + $this->autoscalingConfigUrl = $autoscalingConfigUrl; + } + + public function getAutoscalingConfigUrl() + { + return $this->autoscalingConfigUrl; + } +} + +class Google_Service_Manager_DeployState extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $details; + public $status; + + public function setDetails($details) + { + $this->details = $details; + } + + public function getDetails() + { + return $this->details; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Manager_Deployment extends Google_Collection +{ + protected $collection_key = 'overrides'; + protected $internal_gapi_mappings = array( + ); + public $creationDate; + public $description; + protected $modulesType = 'Google_Service_Manager_ModuleStatus'; + protected $modulesDataType = 'map'; + public $name; + protected $overridesType = 'Google_Service_Manager_ParamOverride'; + protected $overridesDataType = 'array'; + protected $stateType = 'Google_Service_Manager_DeployState'; + protected $stateDataType = ''; + public $templateName; + + public function setCreationDate($creationDate) + { + $this->creationDate = $creationDate; + } + + public function getCreationDate() + { + return $this->creationDate; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setModules($modules) + { + $this->modules = $modules; + } + + public function getModules() + { + return $this->modules; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOverrides($overrides) + { + $this->overrides = $overrides; + } + + public function getOverrides() + { + return $this->overrides; + } + + public function setState(Google_Service_Manager_DeployState $state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setTemplateName($templateName) + { + $this->templateName = $templateName; + } + + public function getTemplateName() + { + return $this->templateName; + } +} + +class Google_Service_Manager_DeploymentModules extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Manager_DeploymentsListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $resourcesType = 'Google_Service_Manager_Deployment'; + protected $resourcesDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_Manager_DiskAttachment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deviceName; + public $index; + + public function setDeviceName($deviceName) + { + $this->deviceName = $deviceName; + } + + public function getDeviceName() + { + return $this->deviceName; + } + + public function setIndex($index) + { + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } +} + +class Google_Service_Manager_EnvVariable extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hidden; + public $value; + + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + public function getHidden() + { + return $this->hidden; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Manager_ExistingDisk extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $attachmentType = 'Google_Service_Manager_DiskAttachment'; + protected $attachmentDataType = ''; + public $source; + + public function setAttachment(Google_Service_Manager_DiskAttachment $attachment) + { + $this->attachment = $attachment; + } + + public function getAttachment() + { + return $this->attachment; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } +} + +class Google_Service_Manager_FirewallModule extends Google_Collection +{ + protected $collection_key = 'targetTags'; + protected $internal_gapi_mappings = array( + ); + protected $allowedType = 'Google_Service_Manager_AllowedRule'; + protected $allowedDataType = 'array'; + public $description; + public $network; + public $sourceRanges; + public $sourceTags; + public $targetTags; + + public function setAllowed($allowed) + { + $this->allowed = $allowed; + } + + public function getAllowed() + { + return $this->allowed; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setSourceRanges($sourceRanges) + { + $this->sourceRanges = $sourceRanges; + } + + public function getSourceRanges() + { + return $this->sourceRanges; + } + + public function setSourceTags($sourceTags) + { + $this->sourceTags = $sourceTags; + } + + public function getSourceTags() + { + return $this->sourceTags; + } + + public function setTargetTags($targetTags) + { + $this->targetTags = $targetTags; + } + + public function getTargetTags() + { + return $this->targetTags; + } +} + +class Google_Service_Manager_FirewallModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $firewallUrl; + + public function setFirewallUrl($firewallUrl) + { + $this->firewallUrl = $firewallUrl; + } + + public function getFirewallUrl() + { + return $this->firewallUrl; + } +} + +class Google_Service_Manager_HealthCheckModule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $checkIntervalSec; + public $description; + public $healthyThreshold; + public $host; + public $path; + public $port; + public $timeoutSec; + public $unhealthyThreshold; + + public function setCheckIntervalSec($checkIntervalSec) + { + $this->checkIntervalSec = $checkIntervalSec; + } + + public function getCheckIntervalSec() + { + return $this->checkIntervalSec; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHealthyThreshold($healthyThreshold) + { + $this->healthyThreshold = $healthyThreshold; + } + + public function getHealthyThreshold() + { + return $this->healthyThreshold; + } + + public function setHost($host) + { + $this->host = $host; + } + + public function getHost() + { + return $this->host; + } + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } + + public function setPort($port) + { + $this->port = $port; + } + + public function getPort() + { + return $this->port; + } + + public function setTimeoutSec($timeoutSec) + { + $this->timeoutSec = $timeoutSec; + } + + public function getTimeoutSec() + { + return $this->timeoutSec; + } + + public function setUnhealthyThreshold($unhealthyThreshold) + { + $this->unhealthyThreshold = $unhealthyThreshold; + } + + public function getUnhealthyThreshold() + { + return $this->unhealthyThreshold; + } +} + +class Google_Service_Manager_HealthCheckModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $healthCheckUrl; + + public function setHealthCheckUrl($healthCheckUrl) + { + $this->healthCheckUrl = $healthCheckUrl; + } + + public function getHealthCheckUrl() + { + return $this->healthCheckUrl; + } +} + +class Google_Service_Manager_LbModule extends Google_Collection +{ + protected $collection_key = 'targetModules'; + protected $internal_gapi_mappings = array( + ); + public $description; + public $healthChecks; + public $ipAddress; + public $ipProtocol; + public $portRange; + public $sessionAffinity; + public $targetModules; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } + + public function setIpAddress($ipAddress) + { + $this->ipAddress = $ipAddress; + } + + public function getIpAddress() + { + return $this->ipAddress; + } + + public function setIpProtocol($ipProtocol) + { + $this->ipProtocol = $ipProtocol; + } + + public function getIpProtocol() + { + return $this->ipProtocol; + } + + public function setPortRange($portRange) + { + $this->portRange = $portRange; + } + + public function getPortRange() + { + return $this->portRange; + } + + public function setSessionAffinity($sessionAffinity) + { + $this->sessionAffinity = $sessionAffinity; + } + + public function getSessionAffinity() + { + return $this->sessionAffinity; + } + + public function setTargetModules($targetModules) + { + $this->targetModules = $targetModules; + } + + public function getTargetModules() + { + return $this->targetModules; + } +} + +class Google_Service_Manager_LbModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $forwardingRuleUrl; + public $targetPoolUrl; + + public function setForwardingRuleUrl($forwardingRuleUrl) + { + $this->forwardingRuleUrl = $forwardingRuleUrl; + } + + public function getForwardingRuleUrl() + { + return $this->forwardingRuleUrl; + } + + public function setTargetPoolUrl($targetPoolUrl) + { + $this->targetPoolUrl = $targetPoolUrl; + } + + public function getTargetPoolUrl() + { + return $this->targetPoolUrl; + } +} + +class Google_Service_Manager_Metadata extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $fingerPrint; + protected $itemsType = 'Google_Service_Manager_MetadataItem'; + protected $itemsDataType = 'array'; + + public function setFingerPrint($fingerPrint) + { + $this->fingerPrint = $fingerPrint; + } + + public function getFingerPrint() + { + return $this->fingerPrint; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_Manager_MetadataItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Manager_Module extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $autoscalingModuleType = 'Google_Service_Manager_AutoscalingModule'; + protected $autoscalingModuleDataType = ''; + protected $firewallModuleType = 'Google_Service_Manager_FirewallModule'; + protected $firewallModuleDataType = ''; + protected $healthCheckModuleType = 'Google_Service_Manager_HealthCheckModule'; + protected $healthCheckModuleDataType = ''; + protected $lbModuleType = 'Google_Service_Manager_LbModule'; + protected $lbModuleDataType = ''; + protected $networkModuleType = 'Google_Service_Manager_NetworkModule'; + protected $networkModuleDataType = ''; + protected $replicaPoolModuleType = 'Google_Service_Manager_ReplicaPoolModule'; + protected $replicaPoolModuleDataType = ''; + public $type; + + public function setAutoscalingModule(Google_Service_Manager_AutoscalingModule $autoscalingModule) + { + $this->autoscalingModule = $autoscalingModule; + } + + public function getAutoscalingModule() + { + return $this->autoscalingModule; + } + + public function setFirewallModule(Google_Service_Manager_FirewallModule $firewallModule) + { + $this->firewallModule = $firewallModule; + } + + public function getFirewallModule() + { + return $this->firewallModule; + } + + public function setHealthCheckModule(Google_Service_Manager_HealthCheckModule $healthCheckModule) + { + $this->healthCheckModule = $healthCheckModule; + } + + public function getHealthCheckModule() + { + return $this->healthCheckModule; + } + + public function setLbModule(Google_Service_Manager_LbModule $lbModule) + { + $this->lbModule = $lbModule; + } + + public function getLbModule() + { + return $this->lbModule; + } + + public function setNetworkModule(Google_Service_Manager_NetworkModule $networkModule) + { + $this->networkModule = $networkModule; + } + + public function getNetworkModule() + { + return $this->networkModule; + } + + public function setReplicaPoolModule(Google_Service_Manager_ReplicaPoolModule $replicaPoolModule) + { + $this->replicaPoolModule = $replicaPoolModule; + } + + public function getReplicaPoolModule() + { + return $this->replicaPoolModule; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Manager_ModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $autoscalingModuleStatusType = 'Google_Service_Manager_AutoscalingModuleStatus'; + protected $autoscalingModuleStatusDataType = ''; + protected $firewallModuleStatusType = 'Google_Service_Manager_FirewallModuleStatus'; + protected $firewallModuleStatusDataType = ''; + protected $healthCheckModuleStatusType = 'Google_Service_Manager_HealthCheckModuleStatus'; + protected $healthCheckModuleStatusDataType = ''; + protected $lbModuleStatusType = 'Google_Service_Manager_LbModuleStatus'; + protected $lbModuleStatusDataType = ''; + protected $networkModuleStatusType = 'Google_Service_Manager_NetworkModuleStatus'; + protected $networkModuleStatusDataType = ''; + protected $replicaPoolModuleStatusType = 'Google_Service_Manager_ReplicaPoolModuleStatus'; + protected $replicaPoolModuleStatusDataType = ''; + protected $stateType = 'Google_Service_Manager_DeployState'; + protected $stateDataType = ''; + public $type; + + public function setAutoscalingModuleStatus(Google_Service_Manager_AutoscalingModuleStatus $autoscalingModuleStatus) + { + $this->autoscalingModuleStatus = $autoscalingModuleStatus; + } + + public function getAutoscalingModuleStatus() + { + return $this->autoscalingModuleStatus; + } + + public function setFirewallModuleStatus(Google_Service_Manager_FirewallModuleStatus $firewallModuleStatus) + { + $this->firewallModuleStatus = $firewallModuleStatus; + } + + public function getFirewallModuleStatus() + { + return $this->firewallModuleStatus; + } + + public function setHealthCheckModuleStatus(Google_Service_Manager_HealthCheckModuleStatus $healthCheckModuleStatus) + { + $this->healthCheckModuleStatus = $healthCheckModuleStatus; + } + + public function getHealthCheckModuleStatus() + { + return $this->healthCheckModuleStatus; + } + + public function setLbModuleStatus(Google_Service_Manager_LbModuleStatus $lbModuleStatus) + { + $this->lbModuleStatus = $lbModuleStatus; + } + + public function getLbModuleStatus() + { + return $this->lbModuleStatus; + } + + public function setNetworkModuleStatus(Google_Service_Manager_NetworkModuleStatus $networkModuleStatus) + { + $this->networkModuleStatus = $networkModuleStatus; + } + + public function getNetworkModuleStatus() + { + return $this->networkModuleStatus; + } + + public function setReplicaPoolModuleStatus(Google_Service_Manager_ReplicaPoolModuleStatus $replicaPoolModuleStatus) + { + $this->replicaPoolModuleStatus = $replicaPoolModuleStatus; + } + + public function getReplicaPoolModuleStatus() + { + return $this->replicaPoolModuleStatus; + } + + public function setState(Google_Service_Manager_DeployState $state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Manager_NetworkInterface extends Google_Collection +{ + protected $collection_key = 'accessConfigs'; + protected $internal_gapi_mappings = array( + ); + protected $accessConfigsType = 'Google_Service_Manager_AccessConfig'; + protected $accessConfigsDataType = 'array'; + public $name; + public $network; + public $networkIp; + + public function setAccessConfigs($accessConfigs) + { + $this->accessConfigs = $accessConfigs; + } + + public function getAccessConfigs() + { + return $this->accessConfigs; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setNetworkIp($networkIp) + { + $this->networkIp = $networkIp; + } + + public function getNetworkIp() + { + return $this->networkIp; + } +} + +class Google_Service_Manager_NetworkModule extends Google_Model +{ + protected $internal_gapi_mappings = array( + "iPv4Range" => "IPv4Range", + ); + public $iPv4Range; + public $description; + public $gatewayIPv4; + + public function setIPv4Range($iPv4Range) + { + $this->iPv4Range = $iPv4Range; + } + + public function getIPv4Range() + { + return $this->iPv4Range; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setGatewayIPv4($gatewayIPv4) + { + $this->gatewayIPv4 = $gatewayIPv4; + } + + public function getGatewayIPv4() + { + return $this->gatewayIPv4; + } +} + +class Google_Service_Manager_NetworkModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $networkUrl; + + public function setNetworkUrl($networkUrl) + { + $this->networkUrl = $networkUrl; + } + + public function getNetworkUrl() + { + return $this->networkUrl; + } +} + +class Google_Service_Manager_NewDisk extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $attachmentType = 'Google_Service_Manager_DiskAttachment'; + protected $attachmentDataType = ''; + public $autoDelete; + public $boot; + protected $initializeParamsType = 'Google_Service_Manager_NewDiskInitializeParams'; + protected $initializeParamsDataType = ''; + + public function setAttachment(Google_Service_Manager_DiskAttachment $attachment) + { + $this->attachment = $attachment; + } + + public function getAttachment() + { + return $this->attachment; + } + + public function setAutoDelete($autoDelete) + { + $this->autoDelete = $autoDelete; + } + + public function getAutoDelete() + { + return $this->autoDelete; + } + + public function setBoot($boot) + { + $this->boot = $boot; + } + + public function getBoot() + { + return $this->boot; + } + + public function setInitializeParams(Google_Service_Manager_NewDiskInitializeParams $initializeParams) + { + $this->initializeParams = $initializeParams; + } + + public function getInitializeParams() + { + return $this->initializeParams; + } +} + +class Google_Service_Manager_NewDiskInitializeParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $diskSizeGb; + public $diskType; + public $sourceImage; + + public function setDiskSizeGb($diskSizeGb) + { + $this->diskSizeGb = $diskSizeGb; + } + + public function getDiskSizeGb() + { + return $this->diskSizeGb; + } + + public function setDiskType($diskType) + { + $this->diskType = $diskType; + } + + public function getDiskType() + { + return $this->diskType; + } + + public function setSourceImage($sourceImage) + { + $this->sourceImage = $sourceImage; + } + + public function getSourceImage() + { + return $this->sourceImage; + } +} + +class Google_Service_Manager_ParamOverride extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $path; + public $value; + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Manager_ReplicaPoolModule extends Google_Collection +{ + protected $collection_key = 'healthChecks'; + protected $internal_gapi_mappings = array( + ); + protected $envVariablesType = 'Google_Service_Manager_EnvVariable'; + protected $envVariablesDataType = 'map'; + public $healthChecks; + public $numReplicas; + protected $replicaPoolParamsType = 'Google_Service_Manager_ReplicaPoolParams'; + protected $replicaPoolParamsDataType = ''; + public $resourceView; + + public function setEnvVariables($envVariables) + { + $this->envVariables = $envVariables; + } + + public function getEnvVariables() + { + return $this->envVariables; + } + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } + + public function setNumReplicas($numReplicas) + { + $this->numReplicas = $numReplicas; + } + + public function getNumReplicas() + { + return $this->numReplicas; + } + + public function setReplicaPoolParams(Google_Service_Manager_ReplicaPoolParams $replicaPoolParams) + { + $this->replicaPoolParams = $replicaPoolParams; + } + + public function getReplicaPoolParams() + { + return $this->replicaPoolParams; + } + + public function setResourceView($resourceView) + { + $this->resourceView = $resourceView; + } + + public function getResourceView() + { + return $this->resourceView; + } +} + +class Google_Service_Manager_ReplicaPoolModuleEnvVariables extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Manager_ReplicaPoolModuleStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $replicaPoolUrl; + public $resourceViewUrl; + + public function setReplicaPoolUrl($replicaPoolUrl) + { + $this->replicaPoolUrl = $replicaPoolUrl; + } + + public function getReplicaPoolUrl() + { + return $this->replicaPoolUrl; + } + + public function setResourceViewUrl($resourceViewUrl) + { + $this->resourceViewUrl = $resourceViewUrl; + } + + public function getResourceViewUrl() + { + return $this->resourceViewUrl; + } +} + +class Google_Service_Manager_ReplicaPoolParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $v1beta1Type = 'Google_Service_Manager_ReplicaPoolParamsV1Beta1'; + protected $v1beta1DataType = ''; + + public function setV1beta1(Google_Service_Manager_ReplicaPoolParamsV1Beta1 $v1beta1) + { + $this->v1beta1 = $v1beta1; + } + + public function getV1beta1() + { + return $this->v1beta1; + } +} + +class Google_Service_Manager_ReplicaPoolParamsV1Beta1 extends Google_Collection +{ + protected $collection_key = 'serviceAccounts'; + protected $internal_gapi_mappings = array( + ); + public $autoRestart; + public $baseInstanceName; + public $canIpForward; + public $description; + protected $disksToAttachType = 'Google_Service_Manager_ExistingDisk'; + protected $disksToAttachDataType = 'array'; + protected $disksToCreateType = 'Google_Service_Manager_NewDisk'; + protected $disksToCreateDataType = 'array'; + public $initAction; + public $machineType; + protected $metadataType = 'Google_Service_Manager_Metadata'; + protected $metadataDataType = ''; + protected $networkInterfacesType = 'Google_Service_Manager_NetworkInterface'; + protected $networkInterfacesDataType = 'array'; + public $onHostMaintenance; + protected $serviceAccountsType = 'Google_Service_Manager_ServiceAccount'; + protected $serviceAccountsDataType = 'array'; + protected $tagsType = 'Google_Service_Manager_Tag'; + protected $tagsDataType = ''; + public $zone; + + public function setAutoRestart($autoRestart) + { + $this->autoRestart = $autoRestart; + } + + public function getAutoRestart() + { + return $this->autoRestart; + } + + public function setBaseInstanceName($baseInstanceName) + { + $this->baseInstanceName = $baseInstanceName; + } + + public function getBaseInstanceName() + { + return $this->baseInstanceName; + } + + public function setCanIpForward($canIpForward) + { + $this->canIpForward = $canIpForward; + } + + public function getCanIpForward() + { + return $this->canIpForward; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDisksToAttach($disksToAttach) + { + $this->disksToAttach = $disksToAttach; + } + + public function getDisksToAttach() + { + return $this->disksToAttach; + } + + public function setDisksToCreate($disksToCreate) + { + $this->disksToCreate = $disksToCreate; + } + + public function getDisksToCreate() + { + return $this->disksToCreate; + } + + public function setInitAction($initAction) + { + $this->initAction = $initAction; + } + + public function getInitAction() + { + return $this->initAction; + } + + public function setMachineType($machineType) + { + $this->machineType = $machineType; + } + + public function getMachineType() + { + return $this->machineType; + } + + public function setMetadata(Google_Service_Manager_Metadata $metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setNetworkInterfaces($networkInterfaces) + { + $this->networkInterfaces = $networkInterfaces; + } + + public function getNetworkInterfaces() + { + return $this->networkInterfaces; + } + + public function setOnHostMaintenance($onHostMaintenance) + { + $this->onHostMaintenance = $onHostMaintenance; + } + + public function getOnHostMaintenance() + { + return $this->onHostMaintenance; + } + + public function setServiceAccounts($serviceAccounts) + { + $this->serviceAccounts = $serviceAccounts; + } + + public function getServiceAccounts() + { + return $this->serviceAccounts; + } + + public function setTags(Google_Service_Manager_Tag $tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Manager_ServiceAccount extends Google_Collection +{ + protected $collection_key = 'scopes'; + protected $internal_gapi_mappings = array( + ); + public $email; + public $scopes; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setScopes($scopes) + { + $this->scopes = $scopes; + } + + public function getScopes() + { + return $this->scopes; + } +} + +class Google_Service_Manager_Tag extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $fingerPrint; + public $items; + + public function setFingerPrint($fingerPrint) + { + $this->fingerPrint = $fingerPrint; + } + + public function getFingerPrint() + { + return $this->fingerPrint; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_Manager_Template extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $actionsType = 'Google_Service_Manager_Action'; + protected $actionsDataType = 'map'; + public $description; + protected $modulesType = 'Google_Service_Manager_Module'; + protected $modulesDataType = 'map'; + public $name; + + public function setActions($actions) + { + $this->actions = $actions; + } + + public function getActions() + { + return $this->actions; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setModules($modules) + { + $this->modules = $modules; + } + + public function getModules() + { + return $this->modules; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Manager_TemplateActions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Manager_TemplateModules extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Manager_TemplatesListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $resourcesType = 'Google_Service_Manager_Template'; + protected $resourcesDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/MapsEngine.php b/vendor/google/apiclient/src/Google/Service/MapsEngine.php new file mode 100644 index 0000000..c31af58 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/MapsEngine.php @@ -0,0 +1,6833 @@ + + * The Google Maps Engine API allows developers to store and query geospatial vector and raster data. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_MapsEngine extends Google_Service +{ + /** View and manage your Google Maps Engine data. */ + const MAPSENGINE = "https://www.googleapis.com/auth/mapsengine"; + /** View your Google Maps Engine data. */ + const MAPSENGINE_READONLY = "https://www.googleapis.com/auth/mapsengine.readonly"; + + public $assets; + public $assets_parents; + public $assets_permissions; + public $layers; + public $layers_parents; + public $layers_permissions; + public $maps; + public $maps_permissions; + public $projects; + public $projects_icons; + public $rasterCollections; + public $rasterCollections_parents; + public $rasterCollections_permissions; + public $rasterCollections_rasters; + public $rasters; + public $rasters_files; + public $rasters_parents; + public $rasters_permissions; + public $tables; + public $tables_features; + public $tables_files; + public $tables_parents; + public $tables_permissions; + + + /** + * Constructs the internal representation of the MapsEngine service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'mapsengine/v1/'; + $this->version = 'v1'; + $this->serviceName = 'mapsengine'; + + $this->assets = new Google_Service_MapsEngine_Assets_Resource( + $this, + $this->serviceName, + 'assets', + array( + 'methods' => array( + 'get' => array( + 'path' => 'assets/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'assets', + 'httpMethod' => 'GET', + 'parameters' => array( + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->assets_parents = new Google_Service_MapsEngine_AssetsParents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'list' => array( + 'path' => 'assets/{id}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->assets_permissions = new Google_Service_MapsEngine_AssetsPermissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'list' => array( + 'path' => 'assets/{id}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->layers = new Google_Service_MapsEngine_Layers_Resource( + $this, + $this->serviceName, + 'layers', + array( + 'methods' => array( + 'cancelProcessing' => array( + 'path' => 'layers/{id}/cancelProcessing', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'create' => array( + 'path' => 'layers', + 'httpMethod' => 'POST', + 'parameters' => array( + 'process' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'delete' => array( + 'path' => 'layers/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'layers/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'version' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'getPublished' => array( + 'path' => 'layers/{id}/published', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'layers', + 'httpMethod' => 'GET', + 'parameters' => array( + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'processingStatus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'listPublished' => array( + 'path' => 'layers/published', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'layers/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'process' => array( + 'path' => 'layers/{id}/process', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'publish' => array( + 'path' => 'layers/{id}/publish', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'force' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'unpublish' => array( + 'path' => 'layers/{id}/unpublish', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->layers_parents = new Google_Service_MapsEngine_LayersParents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'list' => array( + 'path' => 'layers/{id}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->layers_permissions = new Google_Service_MapsEngine_LayersPermissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'layers/{id}/permissions/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchUpdate' => array( + 'path' => 'layers/{id}/permissions/batchUpdate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'layers/{id}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->maps = new Google_Service_MapsEngine_Maps_Resource( + $this, + $this->serviceName, + 'maps', + array( + 'methods' => array( + 'create' => array( + 'path' => 'maps', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'maps/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'maps/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'version' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'getPublished' => array( + 'path' => 'maps/{id}/published', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'maps', + 'httpMethod' => 'GET', + 'parameters' => array( + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'processingStatus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'listPublished' => array( + 'path' => 'maps/published', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'maps/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'publish' => array( + 'path' => 'maps/{id}/publish', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'force' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'unpublish' => array( + 'path' => 'maps/{id}/unpublish', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->maps_permissions = new Google_Service_MapsEngine_MapsPermissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'maps/{id}/permissions/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchUpdate' => array( + 'path' => 'maps/{id}/permissions/batchUpdate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'maps/{id}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->projects = new Google_Service_MapsEngine_Projects_Resource( + $this, + $this->serviceName, + 'projects', + array( + 'methods' => array( + 'list' => array( + 'path' => 'projects', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->projects_icons = new Google_Service_MapsEngine_ProjectsIcons_Resource( + $this, + $this->serviceName, + 'icons', + array( + 'methods' => array( + 'create' => array( + 'path' => 'projects/{projectId}/icons', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'projects/{projectId}/icons/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{projectId}/icons', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->rasterCollections = new Google_Service_MapsEngine_RasterCollections_Resource( + $this, + $this->serviceName, + 'rasterCollections', + array( + 'methods' => array( + 'cancelProcessing' => array( + 'path' => 'rasterCollections/{id}/cancelProcessing', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'create' => array( + 'path' => 'rasterCollections', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'rasterCollections/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'rasterCollections/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'rasterCollections', + 'httpMethod' => 'GET', + 'parameters' => array( + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'processingStatus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'rasterCollections/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'process' => array( + 'path' => 'rasterCollections/{id}/process', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->rasterCollections_parents = new Google_Service_MapsEngine_RasterCollectionsParents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'list' => array( + 'path' => 'rasterCollections/{id}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->rasterCollections_permissions = new Google_Service_MapsEngine_RasterCollectionsPermissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'rasterCollections/{id}/permissions/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchUpdate' => array( + 'path' => 'rasterCollections/{id}/permissions/batchUpdate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'rasterCollections/{id}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->rasterCollections_rasters = new Google_Service_MapsEngine_RasterCollectionsRasters_Resource( + $this, + $this->serviceName, + 'rasters', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'rasterCollections/{id}/rasters/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchInsert' => array( + 'path' => 'rasterCollections/{id}/rasters/batchInsert', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'rasterCollections/{id}/rasters', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->rasters = new Google_Service_MapsEngine_Rasters_Resource( + $this, + $this->serviceName, + 'rasters', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'rasters/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'rasters/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'rasters', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'processingStatus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'rasters/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'process' => array( + 'path' => 'rasters/{id}/process', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'upload' => array( + 'path' => 'rasters/upload', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->rasters_files = new Google_Service_MapsEngine_RastersFiles_Resource( + $this, + $this->serviceName, + 'files', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'rasters/{id}/files', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filename' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->rasters_parents = new Google_Service_MapsEngine_RastersParents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'list' => array( + 'path' => 'rasters/{id}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->rasters_permissions = new Google_Service_MapsEngine_RastersPermissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'rasters/{id}/permissions/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchUpdate' => array( + 'path' => 'rasters/{id}/permissions/batchUpdate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'rasters/{id}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->tables = new Google_Service_MapsEngine_Tables_Resource( + $this, + $this->serviceName, + 'tables', + array( + 'methods' => array( + 'create' => array( + 'path' => 'tables', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'tables/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'version' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'tables', + 'httpMethod' => 'GET', + 'parameters' => array( + 'modifiedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'processingStatus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projectId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'tags' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'search' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'creatorEmail' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'bbox' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'modifiedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'createdBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'role' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'tables/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'process' => array( + 'path' => 'tables/{id}/process', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'upload' => array( + 'path' => 'tables/upload', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->tables_features = new Google_Service_MapsEngine_TablesFeatures_Resource( + $this, + $this->serviceName, + 'features', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'tables/{id}/features/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchInsert' => array( + 'path' => 'tables/{id}/features/batchInsert', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchPatch' => array( + 'path' => 'tables/{id}/features/batchPatch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'tables/{tableId}/features/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tableId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'version' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'select' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'tables/{id}/features', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'intersects' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'version' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'limit' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'include' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'where' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'select' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->tables_files = new Google_Service_MapsEngine_TablesFiles_Resource( + $this, + $this->serviceName, + 'files', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'tables/{id}/files', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filename' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->tables_parents = new Google_Service_MapsEngine_TablesParents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'list' => array( + 'path' => 'tables/{id}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->tables_permissions = new Google_Service_MapsEngine_TablesPermissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'batchDelete' => array( + 'path' => 'tables/{id}/permissions/batchDelete', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'batchUpdate' => array( + 'path' => 'tables/{id}/permissions/batchUpdate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'tables/{id}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "assets" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $assets = $mapsengineService->assets; + * + */ +class Google_Service_MapsEngine_Assets_Resource extends Google_Service_Resource +{ + + /** + * Return metadata for a particular asset. (assets.get) + * + * @param string $id + * The ID of the asset. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Asset + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Asset"); + } + /** + * Return all assets readable by the current user. (assets.listAssets) + * + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @opt_param string type + * A comma separated list of asset types. Returned assets will have one of the types from the + * provided list. Supported values are 'map', 'layer', 'rasterCollection' and 'table'. + * @return Google_Service_MapsEngine_AssetsListResponse + */ + public function listAssets($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_AssetsListResponse"); + } +} + +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $parents = $mapsengineService->parents; + * + */ +class Google_Service_MapsEngine_AssetsParents_Resource extends Google_Service_Resource +{ + + /** + * Return all parent ids of the specified asset. (parents.listAssetsParents) + * + * @param string $id + * The ID of the asset whose parents will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 50. + * @return Google_Service_MapsEngine_ParentsListResponse + */ + public function listAssetsParents($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_ParentsListResponse"); + } +} +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $permissions = $mapsengineService->permissions; + * + */ +class Google_Service_MapsEngine_AssetsPermissions_Resource extends Google_Service_Resource +{ + + /** + * Return all of the permissions for the specified asset. + * (permissions.listAssetsPermissions) + * + * @param string $id + * The ID of the asset whose permissions will be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsListResponse + */ + public function listAssetsPermissions($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_PermissionsListResponse"); + } +} + +/** + * The "layers" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $layers = $mapsengineService->layers; + * + */ +class Google_Service_MapsEngine_Layers_Resource extends Google_Service_Resource +{ + + /** + * Cancel processing on a layer asset. (layers.cancelProcessing) + * + * @param string $id + * The ID of the layer. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProcessResponse + */ + public function cancelProcessing($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('cancelProcessing', array($params), "Google_Service_MapsEngine_ProcessResponse"); + } + /** + * Create a layer asset. (layers.create) + * + * @param Google_Layer $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool process + * Whether to queue the created layer for processing. + * @return Google_Service_MapsEngine_Layer + */ + public function create(Google_Service_MapsEngine_Layer $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_MapsEngine_Layer"); + } + /** + * Delete a layer. (layers.delete) + * + * @param string $id + * The ID of the layer. Only the layer creator or project owner are permitted to delete. If the + * layer is published, or included in a map, the request will fail. Unpublish the layer, and remove + * it from all maps prior to deleting. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Return metadata for a particular layer. (layers.get) + * + * @param string $id + * The ID of the layer. + * @param array $optParams Optional parameters. + * + * @opt_param string version + * Deprecated: The version parameter indicates which version of the layer should be returned. When + * version is set to published, the published version of the layer will be returned. Please use the + * layers.getPublished endpoint instead. + * @return Google_Service_MapsEngine_Layer + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Layer"); + } + /** + * Return the published metadata for a particular layer. (layers.getPublished) + * + * @param string $id + * The ID of the layer. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PublishedLayer + */ + public function getPublished($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('getPublished', array($params), "Google_Service_MapsEngine_PublishedLayer"); + } + /** + * Return all layers readable by the current user. (layers.listLayers) + * + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string processingStatus + * + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @return Google_Service_MapsEngine_LayersListResponse + */ + public function listLayers($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_LayersListResponse"); + } + /** + * Return all published layers readable by the current user. + * (layers.listPublished) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @return Google_Service_MapsEngine_PublishedLayersListResponse + */ + public function listPublished($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('listPublished', array($params), "Google_Service_MapsEngine_PublishedLayersListResponse"); + } + /** + * Mutate a layer asset. (layers.patch) + * + * @param string $id + * The ID of the layer. + * @param Google_Layer $postBody + * @param array $optParams Optional parameters. + */ + public function patch($id, Google_Service_MapsEngine_Layer $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params)); + } + /** + * Process a layer asset. (layers.process) + * + * @param string $id + * The ID of the layer. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProcessResponse + */ + public function process($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('process', array($params), "Google_Service_MapsEngine_ProcessResponse"); + } + /** + * Publish a layer asset. (layers.publish) + * + * @param string $id + * The ID of the layer. + * @param array $optParams Optional parameters. + * + * @opt_param bool force + * If set to true, the API will allow publication of the layer even if it's out of date. If not + * true, you'll need to reprocess any out-of-date layer before publishing. + * @return Google_Service_MapsEngine_PublishResponse + */ + public function publish($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('publish', array($params), "Google_Service_MapsEngine_PublishResponse"); + } + /** + * Unpublish a layer asset. (layers.unpublish) + * + * @param string $id + * The ID of the layer. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PublishResponse + */ + public function unpublish($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('unpublish', array($params), "Google_Service_MapsEngine_PublishResponse"); + } +} + +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $parents = $mapsengineService->parents; + * + */ +class Google_Service_MapsEngine_LayersParents_Resource extends Google_Service_Resource +{ + + /** + * Return all parent ids of the specified layer. (parents.listLayersParents) + * + * @param string $id + * The ID of the layer whose parents will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 50. + * @return Google_Service_MapsEngine_ParentsListResponse + */ + public function listLayersParents($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_ParentsListResponse"); + } +} +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $permissions = $mapsengineService->permissions; + * + */ +class Google_Service_MapsEngine_LayersPermissions_Resource extends Google_Service_Resource +{ + + /** + * Remove permission entries from an already existing asset. + * (permissions.batchDelete) + * + * @param string $id + * The ID of the asset from which permissions will be removed. + * @param Google_PermissionsBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchDeleteResponse + */ + public function batchDelete($id, Google_Service_MapsEngine_PermissionsBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params), "Google_Service_MapsEngine_PermissionsBatchDeleteResponse"); + } + /** + * Add or update permission entries to an already existing asset. + * + * An asset can hold up to 20 different permission entries. Each batchInsert + * request is atomic. (permissions.batchUpdate) + * + * @param string $id + * The ID of the asset to which permissions will be added. + * @param Google_PermissionsBatchUpdateRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchUpdateResponse + */ + public function batchUpdate($id, Google_Service_MapsEngine_PermissionsBatchUpdateRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchUpdate', array($params), "Google_Service_MapsEngine_PermissionsBatchUpdateResponse"); + } + /** + * Return all of the permissions for the specified asset. + * (permissions.listLayersPermissions) + * + * @param string $id + * The ID of the asset whose permissions will be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsListResponse + */ + public function listLayersPermissions($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_PermissionsListResponse"); + } +} + +/** + * The "maps" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $maps = $mapsengineService->maps; + * + */ +class Google_Service_MapsEngine_Maps_Resource extends Google_Service_Resource +{ + + /** + * Create a map asset. (maps.create) + * + * @param Google_Map $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Map + */ + public function create(Google_Service_MapsEngine_Map $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_MapsEngine_Map"); + } + /** + * Delete a map. (maps.delete) + * + * @param string $id + * The ID of the map. Only the map creator or project owner are permitted to delete. If the map is + * published the request will fail. Unpublish the map prior to deleting. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Return metadata for a particular map. (maps.get) + * + * @param string $id + * The ID of the map. + * @param array $optParams Optional parameters. + * + * @opt_param string version + * Deprecated: The version parameter indicates which version of the map should be returned. When + * version is set to published, the published version of the map will be returned. Please use the + * maps.getPublished endpoint instead. + * @return Google_Service_MapsEngine_Map + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Map"); + } + /** + * Return the published metadata for a particular map. (maps.getPublished) + * + * @param string $id + * The ID of the map. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PublishedMap + */ + public function getPublished($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('getPublished', array($params), "Google_Service_MapsEngine_PublishedMap"); + } + /** + * Return all maps readable by the current user. (maps.listMaps) + * + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string processingStatus + * + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @return Google_Service_MapsEngine_MapsListResponse + */ + public function listMaps($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_MapsListResponse"); + } + /** + * Return all published maps readable by the current user. (maps.listPublished) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @return Google_Service_MapsEngine_PublishedMapsListResponse + */ + public function listPublished($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('listPublished', array($params), "Google_Service_MapsEngine_PublishedMapsListResponse"); + } + /** + * Mutate a map asset. (maps.patch) + * + * @param string $id + * The ID of the map. + * @param Google_Map $postBody + * @param array $optParams Optional parameters. + */ + public function patch($id, Google_Service_MapsEngine_Map $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params)); + } + /** + * Publish a map asset. (maps.publish) + * + * @param string $id + * The ID of the map. + * @param array $optParams Optional parameters. + * + * @opt_param bool force + * If set to true, the API will allow publication of the map even if it's out of date. If false, + * the map must have a processingStatus of complete before publishing. + * @return Google_Service_MapsEngine_PublishResponse + */ + public function publish($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('publish', array($params), "Google_Service_MapsEngine_PublishResponse"); + } + /** + * Unpublish a map asset. (maps.unpublish) + * + * @param string $id + * The ID of the map. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PublishResponse + */ + public function unpublish($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('unpublish', array($params), "Google_Service_MapsEngine_PublishResponse"); + } +} + +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $permissions = $mapsengineService->permissions; + * + */ +class Google_Service_MapsEngine_MapsPermissions_Resource extends Google_Service_Resource +{ + + /** + * Remove permission entries from an already existing asset. + * (permissions.batchDelete) + * + * @param string $id + * The ID of the asset from which permissions will be removed. + * @param Google_PermissionsBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchDeleteResponse + */ + public function batchDelete($id, Google_Service_MapsEngine_PermissionsBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params), "Google_Service_MapsEngine_PermissionsBatchDeleteResponse"); + } + /** + * Add or update permission entries to an already existing asset. + * + * An asset can hold up to 20 different permission entries. Each batchInsert + * request is atomic. (permissions.batchUpdate) + * + * @param string $id + * The ID of the asset to which permissions will be added. + * @param Google_PermissionsBatchUpdateRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchUpdateResponse + */ + public function batchUpdate($id, Google_Service_MapsEngine_PermissionsBatchUpdateRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchUpdate', array($params), "Google_Service_MapsEngine_PermissionsBatchUpdateResponse"); + } + /** + * Return all of the permissions for the specified asset. + * (permissions.listMapsPermissions) + * + * @param string $id + * The ID of the asset whose permissions will be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsListResponse + */ + public function listMapsPermissions($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_PermissionsListResponse"); + } +} + +/** + * The "projects" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $projects = $mapsengineService->projects; + * + */ +class Google_Service_MapsEngine_Projects_Resource extends Google_Service_Resource +{ + + /** + * Return all projects readable by the current user. (projects.listProjects) + * + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProjectsListResponse + */ + public function listProjects($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_ProjectsListResponse"); + } +} + +/** + * The "icons" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $icons = $mapsengineService->icons; + * + */ +class Google_Service_MapsEngine_ProjectsIcons_Resource extends Google_Service_Resource +{ + + /** + * Create an icon. (icons.create) + * + * @param string $projectId + * The ID of the project. + * @param Google_Icon $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Icon + */ + public function create($projectId, Google_Service_MapsEngine_Icon $postBody, $optParams = array()) + { + $params = array('projectId' => $projectId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_MapsEngine_Icon"); + } + /** + * Return an icon or its associated metadata (icons.get) + * + * @param string $projectId + * The ID of the project. + * @param string $id + * The ID of the icon. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Icon + */ + public function get($projectId, $id, $optParams = array()) + { + $params = array('projectId' => $projectId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Icon"); + } + /** + * Return all icons in the current project (icons.listProjectsIcons) + * + * @param string $projectId + * The ID of the project. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 50. + * @return Google_Service_MapsEngine_IconsListResponse + */ + public function listProjectsIcons($projectId, $optParams = array()) + { + $params = array('projectId' => $projectId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_IconsListResponse"); + } +} + +/** + * The "rasterCollections" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $rasterCollections = $mapsengineService->rasterCollections; + * + */ +class Google_Service_MapsEngine_RasterCollections_Resource extends Google_Service_Resource +{ + + /** + * Cancel processing on a raster collection asset. + * (rasterCollections.cancelProcessing) + * + * @param string $id + * The ID of the raster collection. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProcessResponse + */ + public function cancelProcessing($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('cancelProcessing', array($params), "Google_Service_MapsEngine_ProcessResponse"); + } + /** + * Create a raster collection asset. (rasterCollections.create) + * + * @param Google_RasterCollection $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_RasterCollection + */ + public function create(Google_Service_MapsEngine_RasterCollection $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_MapsEngine_RasterCollection"); + } + /** + * Delete a raster collection. (rasterCollections.delete) + * + * @param string $id + * The ID of the raster collection. Only the raster collection creator or project owner are + * permitted to delete. If the rastor collection is included in a layer, the request will fail. + * Remove the raster collection from all layers prior to deleting. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Return metadata for a particular raster collection. (rasterCollections.get) + * + * @param string $id + * The ID of the raster collection. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_RasterCollection + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_RasterCollection"); + } + /** + * Return all raster collections readable by the current user. + * (rasterCollections.listRasterCollections) + * + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string processingStatus + * + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @return Google_Service_MapsEngine_RasterCollectionsListResponse + */ + public function listRasterCollections($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_RasterCollectionsListResponse"); + } + /** + * Mutate a raster collection asset. (rasterCollections.patch) + * + * @param string $id + * The ID of the raster collection. + * @param Google_RasterCollection $postBody + * @param array $optParams Optional parameters. + */ + public function patch($id, Google_Service_MapsEngine_RasterCollection $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params)); + } + /** + * Process a raster collection asset. (rasterCollections.process) + * + * @param string $id + * The ID of the raster collection. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProcessResponse + */ + public function process($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('process', array($params), "Google_Service_MapsEngine_ProcessResponse"); + } +} + +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $parents = $mapsengineService->parents; + * + */ +class Google_Service_MapsEngine_RasterCollectionsParents_Resource extends Google_Service_Resource +{ + + /** + * Return all parent ids of the specified raster collection. + * (parents.listRasterCollectionsParents) + * + * @param string $id + * The ID of the raster collection whose parents will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 50. + * @return Google_Service_MapsEngine_ParentsListResponse + */ + public function listRasterCollectionsParents($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_ParentsListResponse"); + } +} +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $permissions = $mapsengineService->permissions; + * + */ +class Google_Service_MapsEngine_RasterCollectionsPermissions_Resource extends Google_Service_Resource +{ + + /** + * Remove permission entries from an already existing asset. + * (permissions.batchDelete) + * + * @param string $id + * The ID of the asset from which permissions will be removed. + * @param Google_PermissionsBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchDeleteResponse + */ + public function batchDelete($id, Google_Service_MapsEngine_PermissionsBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params), "Google_Service_MapsEngine_PermissionsBatchDeleteResponse"); + } + /** + * Add or update permission entries to an already existing asset. + * + * An asset can hold up to 20 different permission entries. Each batchInsert + * request is atomic. (permissions.batchUpdate) + * + * @param string $id + * The ID of the asset to which permissions will be added. + * @param Google_PermissionsBatchUpdateRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchUpdateResponse + */ + public function batchUpdate($id, Google_Service_MapsEngine_PermissionsBatchUpdateRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchUpdate', array($params), "Google_Service_MapsEngine_PermissionsBatchUpdateResponse"); + } + /** + * Return all of the permissions for the specified asset. + * (permissions.listRasterCollectionsPermissions) + * + * @param string $id + * The ID of the asset whose permissions will be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsListResponse + */ + public function listRasterCollectionsPermissions($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_PermissionsListResponse"); + } +} +/** + * The "rasters" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $rasters = $mapsengineService->rasters; + * + */ +class Google_Service_MapsEngine_RasterCollectionsRasters_Resource extends Google_Service_Resource +{ + + /** + * Remove rasters from an existing raster collection. + * + * Up to 50 rasters can be included in a single batchDelete request. Each + * batchDelete request is atomic. (rasters.batchDelete) + * + * @param string $id + * The ID of the raster collection to which these rasters belong. + * @param Google_RasterCollectionsRasterBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_RasterCollectionsRastersBatchDeleteResponse + */ + public function batchDelete($id, Google_Service_MapsEngine_RasterCollectionsRasterBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params), "Google_Service_MapsEngine_RasterCollectionsRastersBatchDeleteResponse"); + } + /** + * Add rasters to an existing raster collection. Rasters must be successfully + * processed in order to be added to a raster collection. + * + * Up to 50 rasters can be included in a single batchInsert request. Each + * batchInsert request is atomic. (rasters.batchInsert) + * + * @param string $id + * The ID of the raster collection to which these rasters belong. + * @param Google_RasterCollectionsRastersBatchInsertRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_RasterCollectionsRastersBatchInsertResponse + */ + public function batchInsert($id, Google_Service_MapsEngine_RasterCollectionsRastersBatchInsertRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchInsert', array($params), "Google_Service_MapsEngine_RasterCollectionsRastersBatchInsertResponse"); + } + /** + * Return all rasters within a raster collection. + * (rasters.listRasterCollectionsRasters) + * + * @param string $id + * The ID of the raster collection to which these rasters belong. + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @return Google_Service_MapsEngine_RasterCollectionsRastersListResponse + */ + public function listRasterCollectionsRasters($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_RasterCollectionsRastersListResponse"); + } +} + +/** + * The "rasters" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $rasters = $mapsengineService->rasters; + * + */ +class Google_Service_MapsEngine_Rasters_Resource extends Google_Service_Resource +{ + + /** + * Delete a raster. (rasters.delete) + * + * @param string $id + * The ID of the raster. Only the raster creator or project owner are permitted to delete. If the + * raster is included in a layer or mosaic, the request will fail. Remove it from all parents prior + * to deleting. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Return metadata for a single raster. (rasters.get) + * + * @param string $id + * The ID of the raster. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Raster + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Raster"); + } + /** + * Return all rasters readable by the current user. (rasters.listRasters) + * + * @param string $projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string processingStatus + * + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @return Google_Service_MapsEngine_RastersListResponse + */ + public function listRasters($projectId, $optParams = array()) + { + $params = array('projectId' => $projectId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_RastersListResponse"); + } + /** + * Mutate a raster asset. (rasters.patch) + * + * @param string $id + * The ID of the raster. + * @param Google_Raster $postBody + * @param array $optParams Optional parameters. + */ + public function patch($id, Google_Service_MapsEngine_Raster $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params)); + } + /** + * Process a raster asset. (rasters.process) + * + * @param string $id + * The ID of the raster. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProcessResponse + */ + public function process($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('process', array($params), "Google_Service_MapsEngine_ProcessResponse"); + } + /** + * Create a skeleton raster asset for upload. (rasters.upload) + * + * @param Google_Raster $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Raster + */ + public function upload(Google_Service_MapsEngine_Raster $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('upload', array($params), "Google_Service_MapsEngine_Raster"); + } +} + +/** + * The "files" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $files = $mapsengineService->files; + * + */ +class Google_Service_MapsEngine_RastersFiles_Resource extends Google_Service_Resource +{ + + /** + * Upload a file to a raster asset. (files.insert) + * + * @param string $id + * The ID of the raster asset. + * @param string $filename + * The file name of this uploaded file. + * @param array $optParams Optional parameters. + */ + public function insert($id, $filename, $optParams = array()) + { + $params = array('id' => $id, 'filename' => $filename); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params)); + } +} +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $parents = $mapsengineService->parents; + * + */ +class Google_Service_MapsEngine_RastersParents_Resource extends Google_Service_Resource +{ + + /** + * Return all parent ids of the specified rasters. (parents.listRastersParents) + * + * @param string $id + * The ID of the rasters whose parents will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 50. + * @return Google_Service_MapsEngine_ParentsListResponse + */ + public function listRastersParents($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_ParentsListResponse"); + } +} +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $permissions = $mapsengineService->permissions; + * + */ +class Google_Service_MapsEngine_RastersPermissions_Resource extends Google_Service_Resource +{ + + /** + * Remove permission entries from an already existing asset. + * (permissions.batchDelete) + * + * @param string $id + * The ID of the asset from which permissions will be removed. + * @param Google_PermissionsBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchDeleteResponse + */ + public function batchDelete($id, Google_Service_MapsEngine_PermissionsBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params), "Google_Service_MapsEngine_PermissionsBatchDeleteResponse"); + } + /** + * Add or update permission entries to an already existing asset. + * + * An asset can hold up to 20 different permission entries. Each batchInsert + * request is atomic. (permissions.batchUpdate) + * + * @param string $id + * The ID of the asset to which permissions will be added. + * @param Google_PermissionsBatchUpdateRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchUpdateResponse + */ + public function batchUpdate($id, Google_Service_MapsEngine_PermissionsBatchUpdateRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchUpdate', array($params), "Google_Service_MapsEngine_PermissionsBatchUpdateResponse"); + } + /** + * Return all of the permissions for the specified asset. + * (permissions.listRastersPermissions) + * + * @param string $id + * The ID of the asset whose permissions will be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsListResponse + */ + public function listRastersPermissions($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_PermissionsListResponse"); + } +} + +/** + * The "tables" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $tables = $mapsengineService->tables; + * + */ +class Google_Service_MapsEngine_Tables_Resource extends Google_Service_Resource +{ + + /** + * Create a table asset. (tables.create) + * + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Table + */ + public function create(Google_Service_MapsEngine_Table $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_MapsEngine_Table"); + } + /** + * Delete a table. (tables.delete) + * + * @param string $id + * The ID of the table. Only the table creator or project owner are permitted to delete. If the + * table is included in a layer, the request will fail. Remove it from all layers prior to + * deleting. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Return metadata for a particular table, including the schema. (tables.get) + * + * @param string $id + * The ID of the table. + * @param array $optParams Optional parameters. + * + * @opt_param string version + * + * @return Google_Service_MapsEngine_Table + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Table"); + } + /** + * Return all tables readable by the current user. (tables.listTables) + * + * @param array $optParams Optional parameters. + * + * @opt_param string modifiedAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or after this time. + * @opt_param string createdAfter + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or after this time. + * @opt_param string processingStatus + * + * @opt_param string projectId + * The ID of a Maps Engine project, used to filter the response. To list all available projects + * with their IDs, send a Projects: list request. You can also find your project ID as the value of + * the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com. + * @opt_param string tags + * A comma separated list of tags. Returned assets will contain all the tags from the list. + * @opt_param string search + * An unstructured search string used to filter the set of results based on asset metadata. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 100. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string creatorEmail + * An email address representing a user. Returned assets that have been created by the user + * associated with the provided email address. + * @opt_param string bbox + * A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this + * bounding box will be returned. + * @opt_param string modifiedBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been modified at or before this time. + * @opt_param string createdBefore + * An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have + * been created at or before this time. + * @opt_param string role + * The role parameter indicates that the response should only contain assets where the current user + * has the specified level of access. + * @return Google_Service_MapsEngine_TablesListResponse + */ + public function listTables($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_TablesListResponse"); + } + /** + * Mutate a table asset. (tables.patch) + * + * @param string $id + * The ID of the table. + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + */ + public function patch($id, Google_Service_MapsEngine_Table $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params)); + } + /** + * Process a table asset. (tables.process) + * + * @param string $id + * The ID of the table. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_ProcessResponse + */ + public function process($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('process', array($params), "Google_Service_MapsEngine_ProcessResponse"); + } + /** + * Create a placeholder table asset to which table files can be uploaded. Once + * the placeholder has been created, files are uploaded to the + * https://www.googleapis.com/upload/mapsengine/v1/tables/table_id/files + * endpoint. See Table Upload in the Developer's Guide or Table.files: insert in + * the reference documentation for more information. (tables.upload) + * + * @param Google_Table $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_Table + */ + public function upload(Google_Service_MapsEngine_Table $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('upload', array($params), "Google_Service_MapsEngine_Table"); + } +} + +/** + * The "features" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $features = $mapsengineService->features; + * + */ +class Google_Service_MapsEngine_TablesFeatures_Resource extends Google_Service_Resource +{ + + /** + * Delete all features matching the given IDs. (features.batchDelete) + * + * @param string $id + * The ID of the table that contains the features to be deleted. + * @param Google_FeaturesBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + */ + public function batchDelete($id, Google_Service_MapsEngine_FeaturesBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params)); + } + /** + * Append features to an existing table. + * + * A single batchInsert request can create: + * + * - Up to 50 features. - A combined total of 10 000 vertices. Feature limits + * are documented in the Supported data formats and limits article of the Google + * Maps Engine help center. Note that free and paid accounts have different + * limits. + * + * For more information about inserting features, read Creating features in the + * Google Maps Engine developer's guide. (features.batchInsert) + * + * @param string $id + * The ID of the table to append the features to. + * @param Google_FeaturesBatchInsertRequest $postBody + * @param array $optParams Optional parameters. + */ + public function batchInsert($id, Google_Service_MapsEngine_FeaturesBatchInsertRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchInsert', array($params)); + } + /** + * Update the supplied features. + * + * A single batchPatch request can update: + * + * - Up to 50 features. - A combined total of 10 000 vertices. Feature limits + * are documented in the Supported data formats and limits article of the Google + * Maps Engine help center. Note that free and paid accounts have different + * limits. + * + * Feature updates use HTTP PATCH semantics: + * + * - A supplied value replaces an existing value (if any) in that field. - + * Omitted fields remain unchanged. - Complex values in geometries and + * properties must be replaced as atomic units. For example, providing just the + * coordinates of a geometry is not allowed; the complete geometry, including + * type, must be supplied. - Setting a property's value to null deletes that + * property. For more information about updating features, read Updating + * features in the Google Maps Engine developer's guide. (features.batchPatch) + * + * @param string $id + * The ID of the table containing the features to be patched. + * @param Google_FeaturesBatchPatchRequest $postBody + * @param array $optParams Optional parameters. + */ + public function batchPatch($id, Google_Service_MapsEngine_FeaturesBatchPatchRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchPatch', array($params)); + } + /** + * Return a single feature, given its ID. (features.get) + * + * @param string $tableId + * The ID of the table. + * @param string $id + * The ID of the feature to get. + * @param array $optParams Optional parameters. + * + * @opt_param string version + * The table version to access. See Accessing Public Data for information. + * @opt_param string select + * A SQL-like projection clause used to specify returned properties. If this parameter is not + * included, all properties are returned. + * @return Google_Service_MapsEngine_Feature + */ + public function get($tableId, $id, $optParams = array()) + { + $params = array('tableId' => $tableId, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_MapsEngine_Feature"); + } + /** + * Return all features readable by the current user. + * (features.listTablesFeatures) + * + * @param string $id + * The ID of the table to which these features belong. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * An SQL-like order by clause used to sort results. If this parameter is not included, the order + * of features is undefined. + * @opt_param string intersects + * A geometry literal that specifies the spatial restriction of the query. + * @opt_param string maxResults + * The maximum number of items to include in the response, used for paging. The maximum supported + * value is 1000. + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string version + * The table version to access. See Accessing Public Data for information. + * @opt_param string limit + * The total number of features to return from the query, irrespective of the number of pages. + * @opt_param string include + * A comma separated list of optional data to include. Optional data available: schema. + * @opt_param string where + * An SQL-like predicate used to filter results. + * @opt_param string select + * A SQL-like projection clause used to specify returned properties. If this parameter is not + * included, all properties are returned. + * @return Google_Service_MapsEngine_FeaturesListResponse + */ + public function listTablesFeatures($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_FeaturesListResponse"); + } +} +/** + * The "files" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $files = $mapsengineService->files; + * + */ +class Google_Service_MapsEngine_TablesFiles_Resource extends Google_Service_Resource +{ + + /** + * Upload a file to a placeholder table asset. See Table Upload in the + * Developer's Guide for more information. Supported file types are listed in + * the Supported data formats and limits article of the Google Maps Engine help + * center. (files.insert) + * + * @param string $id + * The ID of the table asset. + * @param string $filename + * The file name of this uploaded file. + * @param array $optParams Optional parameters. + */ + public function insert($id, $filename, $optParams = array()) + { + $params = array('id' => $id, 'filename' => $filename); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params)); + } +} +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $parents = $mapsengineService->parents; + * + */ +class Google_Service_MapsEngine_TablesParents_Resource extends Google_Service_Resource +{ + + /** + * Return all parent ids of the specified table. (parents.listTablesParents) + * + * @param string $id + * The ID of the table whose parents will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, 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. + * @opt_param string maxResults + * The maximum number of items to include in a single response page. The maximum supported value is + * 50. + * @return Google_Service_MapsEngine_ParentsListResponse + */ + public function listTablesParents($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_ParentsListResponse"); + } +} +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $mapsengineService = new Google_Service_MapsEngine(...); + * $permissions = $mapsengineService->permissions; + * + */ +class Google_Service_MapsEngine_TablesPermissions_Resource extends Google_Service_Resource +{ + + /** + * Remove permission entries from an already existing asset. + * (permissions.batchDelete) + * + * @param string $id + * The ID of the asset from which permissions will be removed. + * @param Google_PermissionsBatchDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchDeleteResponse + */ + public function batchDelete($id, Google_Service_MapsEngine_PermissionsBatchDeleteRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchDelete', array($params), "Google_Service_MapsEngine_PermissionsBatchDeleteResponse"); + } + /** + * Add or update permission entries to an already existing asset. + * + * An asset can hold up to 20 different permission entries. Each batchInsert + * request is atomic. (permissions.batchUpdate) + * + * @param string $id + * The ID of the asset to which permissions will be added. + * @param Google_PermissionsBatchUpdateRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsBatchUpdateResponse + */ + public function batchUpdate($id, Google_Service_MapsEngine_PermissionsBatchUpdateRequest $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('batchUpdate', array($params), "Google_Service_MapsEngine_PermissionsBatchUpdateResponse"); + } + /** + * Return all of the permissions for the specified asset. + * (permissions.listTablesPermissions) + * + * @param string $id + * The ID of the asset whose permissions will be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_MapsEngine_PermissionsListResponse + */ + public function listTablesPermissions($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_MapsEngine_PermissionsListResponse"); + } +} + + + + +class Google_Service_MapsEngine_AcquisitionTime extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $end; + public $precision; + public $start; + + public function setEnd($end) + { + $this->end = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setPrecision($precision) + { + $this->precision = $precision; + } + + public function getPrecision() + { + return $this->precision; + } + + public function setStart($start) + { + $this->start = $start; + } + + public function getStart() + { + return $this->start; + } +} + +class Google_Service_MapsEngine_Asset extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $bbox; + public $creationTime; + public $creatorEmail; + public $description; + public $etag; + public $id; + public $lastModifiedTime; + public $lastModifierEmail; + public $name; + public $projectId; + public $resource; + public $tags; + public $type; + public $writersCanEditPermissions; + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCreatorEmail($creatorEmail) + { + $this->creatorEmail = $creatorEmail; + } + + public function getCreatorEmail() + { + return $this->creatorEmail; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setLastModifierEmail($lastModifierEmail) + { + $this->lastModifierEmail = $lastModifierEmail; + } + + public function getLastModifierEmail() + { + return $this->lastModifierEmail; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setResource($resource) + { + $this->resource = $resource; + } + + public function getResource() + { + return $this->resource; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setWritersCanEditPermissions($writersCanEditPermissions) + { + $this->writersCanEditPermissions = $writersCanEditPermissions; + } + + public function getWritersCanEditPermissions() + { + return $this->writersCanEditPermissions; + } +} + +class Google_Service_MapsEngine_AssetsListResponse extends Google_Collection +{ + protected $collection_key = 'assets'; + protected $internal_gapi_mappings = array( + ); + protected $assetsType = 'Google_Service_MapsEngine_Asset'; + protected $assetsDataType = 'array'; + public $nextPageToken; + + public function setAssets($assets) + { + $this->assets = $assets; + } + + public function getAssets() + { + return $this->assets; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_MapsEngine_Border extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $opacity; + public $width; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setOpacity($opacity) + { + $this->opacity = $opacity; + } + + public function getOpacity() + { + return $this->opacity; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_MapsEngine_Color extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $opacity; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setOpacity($opacity) + { + $this->opacity = $opacity; + } + + public function getOpacity() + { + return $this->opacity; + } +} + +class Google_Service_MapsEngine_Datasource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_MapsEngine_DisplayRule extends Google_Collection +{ + protected $collection_key = 'filters'; + protected $internal_gapi_mappings = array( + ); + protected $filtersType = 'Google_Service_MapsEngine_Filter'; + protected $filtersDataType = 'array'; + protected $lineOptionsType = 'Google_Service_MapsEngine_LineStyle'; + protected $lineOptionsDataType = ''; + public $name; + protected $pointOptionsType = 'Google_Service_MapsEngine_PointStyle'; + protected $pointOptionsDataType = ''; + protected $polygonOptionsType = 'Google_Service_MapsEngine_PolygonStyle'; + protected $polygonOptionsDataType = ''; + protected $zoomLevelsType = 'Google_Service_MapsEngine_ZoomLevels'; + protected $zoomLevelsDataType = ''; + + public function setFilters($filters) + { + $this->filters = $filters; + } + + public function getFilters() + { + return $this->filters; + } + + public function setLineOptions(Google_Service_MapsEngine_LineStyle $lineOptions) + { + $this->lineOptions = $lineOptions; + } + + public function getLineOptions() + { + return $this->lineOptions; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPointOptions(Google_Service_MapsEngine_PointStyle $pointOptions) + { + $this->pointOptions = $pointOptions; + } + + public function getPointOptions() + { + return $this->pointOptions; + } + + public function setPolygonOptions(Google_Service_MapsEngine_PolygonStyle $polygonOptions) + { + $this->polygonOptions = $polygonOptions; + } + + public function getPolygonOptions() + { + return $this->polygonOptions; + } + + public function setZoomLevels(Google_Service_MapsEngine_ZoomLevels $zoomLevels) + { + $this->zoomLevels = $zoomLevels; + } + + public function getZoomLevels() + { + return $this->zoomLevels; + } +} + +class Google_Service_MapsEngine_Feature extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $geometryType = 'Google_Service_MapsEngine_GeoJsonGeometry'; + protected $geometryDataType = ''; + public $properties; + public $type; + + public function setGeometry(Google_Service_MapsEngine_GeoJsonGeometry $geometry) + { + $this->geometry = $geometry; + } + + public function getGeometry() + { + return $this->geometry; + } + + public function setProperties($properties) + { + $this->properties = $properties; + } + + public function getProperties() + { + return $this->properties; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_FeatureInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $content; + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } +} + +class Google_Service_MapsEngine_FeaturesBatchDeleteRequest extends Google_Collection +{ + protected $collection_key = 'primaryKeys'; + protected $internal_gapi_mappings = array( + "gxIds" => "gx_ids", + ); + public $gxIds; + public $primaryKeys; + + public function setGxIds($gxIds) + { + $this->gxIds = $gxIds; + } + + public function getGxIds() + { + return $this->gxIds; + } + + public function setPrimaryKeys($primaryKeys) + { + $this->primaryKeys = $primaryKeys; + } + + public function getPrimaryKeys() + { + return $this->primaryKeys; + } +} + +class Google_Service_MapsEngine_FeaturesBatchInsertRequest extends Google_Collection +{ + protected $collection_key = 'features'; + protected $internal_gapi_mappings = array( + ); + protected $featuresType = 'Google_Service_MapsEngine_Feature'; + protected $featuresDataType = 'array'; + public $normalizeGeometries; + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setNormalizeGeometries($normalizeGeometries) + { + $this->normalizeGeometries = $normalizeGeometries; + } + + public function getNormalizeGeometries() + { + return $this->normalizeGeometries; + } +} + +class Google_Service_MapsEngine_FeaturesBatchPatchRequest extends Google_Collection +{ + protected $collection_key = 'features'; + protected $internal_gapi_mappings = array( + ); + protected $featuresType = 'Google_Service_MapsEngine_Feature'; + protected $featuresDataType = 'array'; + public $normalizeGeometries; + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setNormalizeGeometries($normalizeGeometries) + { + $this->normalizeGeometries = $normalizeGeometries; + } + + public function getNormalizeGeometries() + { + return $this->normalizeGeometries; + } +} + +class Google_Service_MapsEngine_FeaturesListResponse extends Google_Collection +{ + protected $collection_key = 'features'; + protected $internal_gapi_mappings = array( + ); + public $allowedQueriesPerSecond; + protected $featuresType = 'Google_Service_MapsEngine_Feature'; + protected $featuresDataType = 'array'; + public $nextPageToken; + protected $schemaType = 'Google_Service_MapsEngine_Schema'; + protected $schemaDataType = ''; + public $type; + + public function setAllowedQueriesPerSecond($allowedQueriesPerSecond) + { + $this->allowedQueriesPerSecond = $allowedQueriesPerSecond; + } + + public function getAllowedQueriesPerSecond() + { + return $this->allowedQueriesPerSecond; + } + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSchema(Google_Service_MapsEngine_Schema $schema) + { + $this->schema = $schema; + } + + public function getSchema() + { + return $this->schema; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_Filter extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $column; + public $operator; + public $value; + + public function setColumn($column) + { + $this->column = $column; + } + + public function getColumn() + { + return $this->column; + } + + public function setOperator($operator) + { + $this->operator = $operator; + } + + public function getOperator() + { + return $this->operator; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_MapsEngine_GeoJsonGeometry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_GeoJsonGeometryCollection extends Google_Collection +{ + protected $collection_key = 'geometries'; + protected $internal_gapi_mappings = array( + ); + protected $geometriesType = 'Google_Service_MapsEngine_GeoJsonGeometry'; + protected $geometriesDataType = 'array'; + + public function setGeometries($geometries) + { + $this->geometries = $geometries; + } + + public function getGeometries() + { + return $this->geometries; + } +} + +class Google_Service_MapsEngine_GeoJsonLineString extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } +} + +class Google_Service_MapsEngine_GeoJsonMultiLineString extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } +} + +class Google_Service_MapsEngine_GeoJsonMultiPoint extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } +} + +class Google_Service_MapsEngine_GeoJsonMultiPolygon extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } +} + +class Google_Service_MapsEngine_GeoJsonPoint extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } +} + +class Google_Service_MapsEngine_GeoJsonPolygon extends Google_Collection +{ + protected $collection_key = 'coordinates'; + protected $internal_gapi_mappings = array( + ); + public $coordinates; + + public function setCoordinates($coordinates) + { + $this->coordinates = $coordinates; + } + + public function getCoordinates() + { + return $this->coordinates; + } +} + +class Google_Service_MapsEngine_GeoJsonProperties extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_Icon extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $id; + public $name; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_MapsEngine_IconStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $name; + protected $scaledShapeType = 'Google_Service_MapsEngine_ScaledShape'; + protected $scaledShapeDataType = ''; + protected $scalingFunctionType = 'Google_Service_MapsEngine_ScalingFunction'; + protected $scalingFunctionDataType = ''; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setScaledShape(Google_Service_MapsEngine_ScaledShape $scaledShape) + { + $this->scaledShape = $scaledShape; + } + + public function getScaledShape() + { + return $this->scaledShape; + } + + public function setScalingFunction(Google_Service_MapsEngine_ScalingFunction $scalingFunction) + { + $this->scalingFunction = $scalingFunction; + } + + public function getScalingFunction() + { + return $this->scalingFunction; + } +} + +class Google_Service_MapsEngine_IconsListResponse extends Google_Collection +{ + protected $collection_key = 'icons'; + protected $internal_gapi_mappings = array( + ); + protected $iconsType = 'Google_Service_MapsEngine_Icon'; + protected $iconsDataType = 'array'; + public $nextPageToken; + + public function setIcons($icons) + { + $this->icons = $icons; + } + + public function getIcons() + { + return $this->icons; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_MapsEngine_LabelStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $column; + public $fontStyle; + public $fontWeight; + public $opacity; + protected $outlineType = 'Google_Service_MapsEngine_Color'; + protected $outlineDataType = ''; + public $size; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setColumn($column) + { + $this->column = $column; + } + + public function getColumn() + { + return $this->column; + } + + public function setFontStyle($fontStyle) + { + $this->fontStyle = $fontStyle; + } + + public function getFontStyle() + { + return $this->fontStyle; + } + + public function setFontWeight($fontWeight) + { + $this->fontWeight = $fontWeight; + } + + public function getFontWeight() + { + return $this->fontWeight; + } + + public function setOpacity($opacity) + { + $this->opacity = $opacity; + } + + public function getOpacity() + { + return $this->opacity; + } + + public function setOutline(Google_Service_MapsEngine_Color $outline) + { + $this->outline = $outline; + } + + public function getOutline() + { + return $this->outline; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_MapsEngine_Layer extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $bbox; + public $creationTime; + public $creatorEmail; + public $datasourceType; + protected $datasourcesType = 'Google_Service_MapsEngine_Datasource'; + protected $datasourcesDataType = 'array'; + public $description; + public $draftAccessList; + public $etag; + public $id; + public $lastModifiedTime; + public $lastModifierEmail; + public $layerType; + public $name; + public $processingStatus; + public $projectId; + public $publishedAccessList; + public $publishingStatus; + protected $styleType = 'Google_Service_MapsEngine_VectorStyle'; + protected $styleDataType = ''; + public $tags; + public $writersCanEditPermissions; + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCreatorEmail($creatorEmail) + { + $this->creatorEmail = $creatorEmail; + } + + public function getCreatorEmail() + { + return $this->creatorEmail; + } + + public function setDatasourceType($datasourceType) + { + $this->datasourceType = $datasourceType; + } + + public function getDatasourceType() + { + return $this->datasourceType; + } + + public function setDatasources(Google_Service_MapsEngine_Datasource $datasources) + { + $this->datasources = $datasources; + } + + public function getDatasources() + { + return $this->datasources; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDraftAccessList($draftAccessList) + { + $this->draftAccessList = $draftAccessList; + } + + public function getDraftAccessList() + { + return $this->draftAccessList; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setLastModifierEmail($lastModifierEmail) + { + $this->lastModifierEmail = $lastModifierEmail; + } + + public function getLastModifierEmail() + { + return $this->lastModifierEmail; + } + + public function setLayerType($layerType) + { + $this->layerType = $layerType; + } + + public function getLayerType() + { + return $this->layerType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setPublishedAccessList($publishedAccessList) + { + $this->publishedAccessList = $publishedAccessList; + } + + public function getPublishedAccessList() + { + return $this->publishedAccessList; + } + + public function setPublishingStatus($publishingStatus) + { + $this->publishingStatus = $publishingStatus; + } + + public function getPublishingStatus() + { + return $this->publishingStatus; + } + + public function setStyle(Google_Service_MapsEngine_VectorStyle $style) + { + $this->style = $style; + } + + public function getStyle() + { + return $this->style; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setWritersCanEditPermissions($writersCanEditPermissions) + { + $this->writersCanEditPermissions = $writersCanEditPermissions; + } + + public function getWritersCanEditPermissions() + { + return $this->writersCanEditPermissions; + } +} + +class Google_Service_MapsEngine_LayersListResponse extends Google_Collection +{ + protected $collection_key = 'layers'; + protected $internal_gapi_mappings = array( + ); + protected $layersType = 'Google_Service_MapsEngine_Layer'; + protected $layersDataType = 'array'; + public $nextPageToken; + + public function setLayers($layers) + { + $this->layers = $layers; + } + + public function getLayers() + { + return $this->layers; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_MapsEngine_LineStyle extends Google_Collection +{ + protected $collection_key = 'dash'; + protected $internal_gapi_mappings = array( + ); + protected $borderType = 'Google_Service_MapsEngine_Border'; + protected $borderDataType = ''; + public $dash; + protected $labelType = 'Google_Service_MapsEngine_LabelStyle'; + protected $labelDataType = ''; + protected $strokeType = 'Google_Service_MapsEngine_LineStyleStroke'; + protected $strokeDataType = ''; + + public function setBorder(Google_Service_MapsEngine_Border $border) + { + $this->border = $border; + } + + public function getBorder() + { + return $this->border; + } + + public function setDash($dash) + { + $this->dash = $dash; + } + + public function getDash() + { + return $this->dash; + } + + public function setLabel(Google_Service_MapsEngine_LabelStyle $label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } + + public function setStroke(Google_Service_MapsEngine_LineStyleStroke $stroke) + { + $this->stroke = $stroke; + } + + public function getStroke() + { + return $this->stroke; + } +} + +class Google_Service_MapsEngine_LineStyleStroke extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $color; + public $opacity; + public $width; + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setOpacity($opacity) + { + $this->opacity = $opacity; + } + + public function getOpacity() + { + return $this->opacity; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_MapsEngine_Map extends Google_Collection +{ + protected $collection_key = 'versions'; + protected $internal_gapi_mappings = array( + ); + public $bbox; + protected $contentsType = 'Google_Service_MapsEngine_MapItem'; + protected $contentsDataType = ''; + public $creationTime; + public $creatorEmail; + public $defaultViewport; + public $description; + public $draftAccessList; + public $etag; + public $id; + public $lastModifiedTime; + public $lastModifierEmail; + public $name; + public $processingStatus; + public $projectId; + public $publishedAccessList; + public $publishingStatus; + public $tags; + public $versions; + public $writersCanEditPermissions; + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setContents(Google_Service_MapsEngine_MapItem $contents) + { + $this->contents = $contents; + } + + public function getContents() + { + return $this->contents; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCreatorEmail($creatorEmail) + { + $this->creatorEmail = $creatorEmail; + } + + public function getCreatorEmail() + { + return $this->creatorEmail; + } + + public function setDefaultViewport($defaultViewport) + { + $this->defaultViewport = $defaultViewport; + } + + public function getDefaultViewport() + { + return $this->defaultViewport; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDraftAccessList($draftAccessList) + { + $this->draftAccessList = $draftAccessList; + } + + public function getDraftAccessList() + { + return $this->draftAccessList; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setLastModifierEmail($lastModifierEmail) + { + $this->lastModifierEmail = $lastModifierEmail; + } + + public function getLastModifierEmail() + { + return $this->lastModifierEmail; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setPublishedAccessList($publishedAccessList) + { + $this->publishedAccessList = $publishedAccessList; + } + + public function getPublishedAccessList() + { + return $this->publishedAccessList; + } + + public function setPublishingStatus($publishingStatus) + { + $this->publishingStatus = $publishingStatus; + } + + public function getPublishingStatus() + { + return $this->publishingStatus; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setVersions($versions) + { + $this->versions = $versions; + } + + public function getVersions() + { + return $this->versions; + } + + public function setWritersCanEditPermissions($writersCanEditPermissions) + { + $this->writersCanEditPermissions = $writersCanEditPermissions; + } + + public function getWritersCanEditPermissions() + { + return $this->writersCanEditPermissions; + } +} + +class Google_Service_MapsEngine_MapFolder extends Google_Collection +{ + protected $collection_key = 'defaultViewport'; + protected $internal_gapi_mappings = array( + ); + protected $contentsType = 'Google_Service_MapsEngine_MapItem'; + protected $contentsDataType = 'array'; + public $defaultViewport; + public $expandable; + public $key; + public $name; + public $visibility; + + public function setContents($contents) + { + $this->contents = $contents; + } + + public function getContents() + { + return $this->contents; + } + + public function setDefaultViewport($defaultViewport) + { + $this->defaultViewport = $defaultViewport; + } + + public function getDefaultViewport() + { + return $this->defaultViewport; + } + + public function setExpandable($expandable) + { + $this->expandable = $expandable; + } + + public function getExpandable() + { + return $this->expandable; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_MapsEngine_MapItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_MapKmlLink extends Google_Collection +{ + protected $collection_key = 'defaultViewport'; + protected $internal_gapi_mappings = array( + ); + public $defaultViewport; + public $kmlUrl; + public $name; + public $visibility; + + public function setDefaultViewport($defaultViewport) + { + $this->defaultViewport = $defaultViewport; + } + + public function getDefaultViewport() + { + return $this->defaultViewport; + } + + public function setKmlUrl($kmlUrl) + { + $this->kmlUrl = $kmlUrl; + } + + public function getKmlUrl() + { + return $this->kmlUrl; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_MapsEngine_MapLayer extends Google_Collection +{ + protected $collection_key = 'defaultViewport'; + protected $internal_gapi_mappings = array( + ); + public $defaultViewport; + public $id; + public $key; + public $name; + public $visibility; + + public function setDefaultViewport($defaultViewport) + { + $this->defaultViewport = $defaultViewport; + } + + public function getDefaultViewport() + { + return $this->defaultViewport; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_MapsEngine_MapsListResponse extends Google_Collection +{ + protected $collection_key = 'maps'; + protected $internal_gapi_mappings = array( + ); + protected $mapsType = 'Google_Service_MapsEngine_Map'; + protected $mapsDataType = 'array'; + public $nextPageToken; + + public function setMaps($maps) + { + $this->maps = $maps; + } + + public function getMaps() + { + return $this->maps; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_MapsEngine_MapsengineFile extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $filename; + public $size; + public $uploadStatus; + + public function setFilename($filename) + { + $this->filename = $filename; + } + + public function getFilename() + { + return $this->filename; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setUploadStatus($uploadStatus) + { + $this->uploadStatus = $uploadStatus; + } + + public function getUploadStatus() + { + return $this->uploadStatus; + } +} + +class Google_Service_MapsEngine_Parent extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_MapsEngine_ParentsListResponse extends Google_Collection +{ + protected $collection_key = 'parents'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $parentsType = 'Google_Service_MapsEngine_Parent'; + protected $parentsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setParents($parents) + { + $this->parents = $parents; + } + + public function getParents() + { + return $this->parents; + } +} + +class Google_Service_MapsEngine_Permission extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $discoverable; + public $id; + public $role; + public $type; + + public function setDiscoverable($discoverable) + { + $this->discoverable = $discoverable; + } + + public function getDiscoverable() + { + return $this->discoverable; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_PermissionsBatchDeleteRequest extends Google_Collection +{ + protected $collection_key = 'ids'; + protected $internal_gapi_mappings = array( + ); + public $ids; + + public function setIds($ids) + { + $this->ids = $ids; + } + + public function getIds() + { + return $this->ids; + } +} + +class Google_Service_MapsEngine_PermissionsBatchDeleteResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_PermissionsBatchUpdateRequest extends Google_Collection +{ + protected $collection_key = 'permissions'; + protected $internal_gapi_mappings = array( + ); + protected $permissionsType = 'Google_Service_MapsEngine_Permission'; + protected $permissionsDataType = 'array'; + + public function setPermissions($permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } +} + +class Google_Service_MapsEngine_PermissionsBatchUpdateResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_PermissionsListResponse extends Google_Collection +{ + protected $collection_key = 'permissions'; + protected $internal_gapi_mappings = array( + ); + protected $permissionsType = 'Google_Service_MapsEngine_Permission'; + protected $permissionsDataType = 'array'; + + public function setPermissions($permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } +} + +class Google_Service_MapsEngine_PointStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $iconType = 'Google_Service_MapsEngine_IconStyle'; + protected $iconDataType = ''; + protected $labelType = 'Google_Service_MapsEngine_LabelStyle'; + protected $labelDataType = ''; + + public function setIcon(Google_Service_MapsEngine_IconStyle $icon) + { + $this->icon = $icon; + } + + public function getIcon() + { + return $this->icon; + } + + public function setLabel(Google_Service_MapsEngine_LabelStyle $label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } +} + +class Google_Service_MapsEngine_PolygonStyle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $fillType = 'Google_Service_MapsEngine_Color'; + protected $fillDataType = ''; + protected $strokeType = 'Google_Service_MapsEngine_Border'; + protected $strokeDataType = ''; + + public function setFill(Google_Service_MapsEngine_Color $fill) + { + $this->fill = $fill; + } + + public function getFill() + { + return $this->fill; + } + + public function setStroke(Google_Service_MapsEngine_Border $stroke) + { + $this->stroke = $stroke; + } + + public function getStroke() + { + return $this->stroke; + } +} + +class Google_Service_MapsEngine_ProcessResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_Project extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_MapsEngine_ProjectsListResponse extends Google_Collection +{ + protected $collection_key = 'projects'; + protected $internal_gapi_mappings = array( + ); + protected $projectsType = 'Google_Service_MapsEngine_Project'; + protected $projectsDataType = 'array'; + + public function setProjects($projects) + { + $this->projects = $projects; + } + + public function getProjects() + { + return $this->projects; + } +} + +class Google_Service_MapsEngine_PublishResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_PublishedLayer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $id; + public $layerType; + public $name; + public $projectId; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLayerType($layerType) + { + $this->layerType = $layerType; + } + + public function getLayerType() + { + return $this->layerType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } +} + +class Google_Service_MapsEngine_PublishedLayersListResponse extends Google_Collection +{ + protected $collection_key = 'layers'; + protected $internal_gapi_mappings = array( + ); + protected $layersType = 'Google_Service_MapsEngine_PublishedLayer'; + protected $layersDataType = 'array'; + public $nextPageToken; + + public function setLayers($layers) + { + $this->layers = $layers; + } + + public function getLayers() + { + return $this->layers; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_MapsEngine_PublishedMap extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentsType = 'Google_Service_MapsEngine_MapItem'; + protected $contentsDataType = ''; + public $defaultViewport; + public $description; + public $id; + public $name; + public $projectId; + + public function setContents(Google_Service_MapsEngine_MapItem $contents) + { + $this->contents = $contents; + } + + public function getContents() + { + return $this->contents; + } + + public function setDefaultViewport($defaultViewport) + { + $this->defaultViewport = $defaultViewport; + } + + public function getDefaultViewport() + { + return $this->defaultViewport; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } +} + +class Google_Service_MapsEngine_PublishedMapsListResponse extends Google_Collection +{ + protected $collection_key = 'maps'; + protected $internal_gapi_mappings = array( + ); + protected $mapsType = 'Google_Service_MapsEngine_PublishedMap'; + protected $mapsDataType = 'array'; + public $nextPageToken; + + public function setMaps($maps) + { + $this->maps = $maps; + } + + public function getMaps() + { + return $this->maps; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_MapsEngine_Raster extends Google_Collection +{ + protected $collection_key = 'files'; + protected $internal_gapi_mappings = array( + ); + protected $acquisitionTimeType = 'Google_Service_MapsEngine_AcquisitionTime'; + protected $acquisitionTimeDataType = ''; + public $attribution; + public $bbox; + public $creationTime; + public $creatorEmail; + public $description; + public $draftAccessList; + public $etag; + protected $filesType = 'Google_Service_MapsEngine_MapsengineFile'; + protected $filesDataType = 'array'; + public $id; + public $lastModifiedTime; + public $lastModifierEmail; + public $maskType; + public $name; + public $processingStatus; + public $projectId; + public $rasterType; + public $tags; + public $writersCanEditPermissions; + + public function setAcquisitionTime(Google_Service_MapsEngine_AcquisitionTime $acquisitionTime) + { + $this->acquisitionTime = $acquisitionTime; + } + + public function getAcquisitionTime() + { + return $this->acquisitionTime; + } + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCreatorEmail($creatorEmail) + { + $this->creatorEmail = $creatorEmail; + } + + public function getCreatorEmail() + { + return $this->creatorEmail; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDraftAccessList($draftAccessList) + { + $this->draftAccessList = $draftAccessList; + } + + public function getDraftAccessList() + { + return $this->draftAccessList; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFiles($files) + { + $this->files = $files; + } + + public function getFiles() + { + return $this->files; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setLastModifierEmail($lastModifierEmail) + { + $this->lastModifierEmail = $lastModifierEmail; + } + + public function getLastModifierEmail() + { + return $this->lastModifierEmail; + } + + public function setMaskType($maskType) + { + $this->maskType = $maskType; + } + + public function getMaskType() + { + return $this->maskType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setRasterType($rasterType) + { + $this->rasterType = $rasterType; + } + + public function getRasterType() + { + return $this->rasterType; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setWritersCanEditPermissions($writersCanEditPermissions) + { + $this->writersCanEditPermissions = $writersCanEditPermissions; + } + + public function getWritersCanEditPermissions() + { + return $this->writersCanEditPermissions; + } +} + +class Google_Service_MapsEngine_RasterCollection extends Google_Collection +{ + protected $collection_key = 'bbox'; + protected $internal_gapi_mappings = array( + ); + public $attribution; + public $bbox; + public $creationTime; + public $creatorEmail; + public $description; + public $draftAccessList; + public $etag; + public $id; + public $lastModifiedTime; + public $lastModifierEmail; + public $mosaic; + public $name; + public $processingStatus; + public $projectId; + public $rasterType; + public $tags; + public $writersCanEditPermissions; + + public function setAttribution($attribution) + { + $this->attribution = $attribution; + } + + public function getAttribution() + { + return $this->attribution; + } + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCreatorEmail($creatorEmail) + { + $this->creatorEmail = $creatorEmail; + } + + public function getCreatorEmail() + { + return $this->creatorEmail; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDraftAccessList($draftAccessList) + { + $this->draftAccessList = $draftAccessList; + } + + public function getDraftAccessList() + { + return $this->draftAccessList; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setLastModifierEmail($lastModifierEmail) + { + $this->lastModifierEmail = $lastModifierEmail; + } + + public function getLastModifierEmail() + { + return $this->lastModifierEmail; + } + + public function setMosaic($mosaic) + { + $this->mosaic = $mosaic; + } + + public function getMosaic() + { + return $this->mosaic; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setRasterType($rasterType) + { + $this->rasterType = $rasterType; + } + + public function getRasterType() + { + return $this->rasterType; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setWritersCanEditPermissions($writersCanEditPermissions) + { + $this->writersCanEditPermissions = $writersCanEditPermissions; + } + + public function getWritersCanEditPermissions() + { + return $this->writersCanEditPermissions; + } +} + +class Google_Service_MapsEngine_RasterCollectionsListResponse extends Google_Collection +{ + protected $collection_key = 'rasterCollections'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $rasterCollectionsType = 'Google_Service_MapsEngine_RasterCollection'; + protected $rasterCollectionsDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setRasterCollections($rasterCollections) + { + $this->rasterCollections = $rasterCollections; + } + + public function getRasterCollections() + { + return $this->rasterCollections; + } +} + +class Google_Service_MapsEngine_RasterCollectionsRaster extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $bbox; + public $creationTime; + public $description; + public $id; + public $lastModifiedTime; + public $name; + public $projectId; + public $rasterType; + public $tags; + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setRasterType($rasterType) + { + $this->rasterType = $rasterType; + } + + public function getRasterType() + { + return $this->rasterType; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } +} + +class Google_Service_MapsEngine_RasterCollectionsRasterBatchDeleteRequest extends Google_Collection +{ + protected $collection_key = 'ids'; + protected $internal_gapi_mappings = array( + ); + public $ids; + + public function setIds($ids) + { + $this->ids = $ids; + } + + public function getIds() + { + return $this->ids; + } +} + +class Google_Service_MapsEngine_RasterCollectionsRastersBatchDeleteResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_RasterCollectionsRastersBatchInsertRequest extends Google_Collection +{ + protected $collection_key = 'ids'; + protected $internal_gapi_mappings = array( + ); + public $ids; + + public function setIds($ids) + { + $this->ids = $ids; + } + + public function getIds() + { + return $this->ids; + } +} + +class Google_Service_MapsEngine_RasterCollectionsRastersBatchInsertResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_MapsEngine_RasterCollectionsRastersListResponse extends Google_Collection +{ + protected $collection_key = 'rasters'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $rastersType = 'Google_Service_MapsEngine_RasterCollectionsRaster'; + protected $rastersDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setRasters($rasters) + { + $this->rasters = $rasters; + } + + public function getRasters() + { + return $this->rasters; + } +} + +class Google_Service_MapsEngine_RastersListResponse extends Google_Collection +{ + protected $collection_key = 'rasters'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $rastersType = 'Google_Service_MapsEngine_Raster'; + protected $rastersDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setRasters($rasters) + { + $this->rasters = $rasters; + } + + public function getRasters() + { + return $this->rasters; + } +} + +class Google_Service_MapsEngine_ScaledShape extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $borderType = 'Google_Service_MapsEngine_Border'; + protected $borderDataType = ''; + protected $fillType = 'Google_Service_MapsEngine_Color'; + protected $fillDataType = ''; + public $shape; + + public function setBorder(Google_Service_MapsEngine_Border $border) + { + $this->border = $border; + } + + public function getBorder() + { + return $this->border; + } + + public function setFill(Google_Service_MapsEngine_Color $fill) + { + $this->fill = $fill; + } + + public function getFill() + { + return $this->fill; + } + + public function setShape($shape) + { + $this->shape = $shape; + } + + public function getShape() + { + return $this->shape; + } +} + +class Google_Service_MapsEngine_ScalingFunction extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $column; + public $scalingType; + protected $sizeRangeType = 'Google_Service_MapsEngine_SizeRange'; + protected $sizeRangeDataType = ''; + protected $valueRangeType = 'Google_Service_MapsEngine_ValueRange'; + protected $valueRangeDataType = ''; + + public function setColumn($column) + { + $this->column = $column; + } + + public function getColumn() + { + return $this->column; + } + + public function setScalingType($scalingType) + { + $this->scalingType = $scalingType; + } + + public function getScalingType() + { + return $this->scalingType; + } + + public function setSizeRange(Google_Service_MapsEngine_SizeRange $sizeRange) + { + $this->sizeRange = $sizeRange; + } + + public function getSizeRange() + { + return $this->sizeRange; + } + + public function setValueRange(Google_Service_MapsEngine_ValueRange $valueRange) + { + $this->valueRange = $valueRange; + } + + public function getValueRange() + { + return $this->valueRange; + } +} + +class Google_Service_MapsEngine_Schema extends Google_Collection +{ + protected $collection_key = 'columns'; + protected $internal_gapi_mappings = array( + ); + protected $columnsType = 'Google_Service_MapsEngine_TableColumn'; + protected $columnsDataType = 'array'; + public $primaryGeometry; + public $primaryKey; + + public function setColumns($columns) + { + $this->columns = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setPrimaryGeometry($primaryGeometry) + { + $this->primaryGeometry = $primaryGeometry; + } + + public function getPrimaryGeometry() + { + return $this->primaryGeometry; + } + + public function setPrimaryKey($primaryKey) + { + $this->primaryKey = $primaryKey; + } + + public function getPrimaryKey() + { + return $this->primaryKey; + } +} + +class Google_Service_MapsEngine_SizeRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $max; + public $min; + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } +} + +class Google_Service_MapsEngine_Table extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $bbox; + public $creationTime; + public $creatorEmail; + public $description; + public $draftAccessList; + public $etag; + protected $filesType = 'Google_Service_MapsEngine_MapsengineFile'; + protected $filesDataType = 'array'; + public $id; + public $lastModifiedTime; + public $lastModifierEmail; + public $name; + public $processingStatus; + public $projectId; + public $publishedAccessList; + protected $schemaType = 'Google_Service_MapsEngine_Schema'; + protected $schemaDataType = ''; + public $sourceEncoding; + public $tags; + public $writersCanEditPermissions; + + public function setBbox($bbox) + { + $this->bbox = $bbox; + } + + public function getBbox() + { + return $this->bbox; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCreatorEmail($creatorEmail) + { + $this->creatorEmail = $creatorEmail; + } + + public function getCreatorEmail() + { + return $this->creatorEmail; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDraftAccessList($draftAccessList) + { + $this->draftAccessList = $draftAccessList; + } + + public function getDraftAccessList() + { + return $this->draftAccessList; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFiles($files) + { + $this->files = $files; + } + + public function getFiles() + { + return $this->files; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastModifiedTime($lastModifiedTime) + { + $this->lastModifiedTime = $lastModifiedTime; + } + + public function getLastModifiedTime() + { + return $this->lastModifiedTime; + } + + public function setLastModifierEmail($lastModifierEmail) + { + $this->lastModifierEmail = $lastModifierEmail; + } + + public function getLastModifierEmail() + { + return $this->lastModifierEmail; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setProjectId($projectId) + { + $this->projectId = $projectId; + } + + public function getProjectId() + { + return $this->projectId; + } + + public function setPublishedAccessList($publishedAccessList) + { + $this->publishedAccessList = $publishedAccessList; + } + + public function getPublishedAccessList() + { + return $this->publishedAccessList; + } + + public function setSchema(Google_Service_MapsEngine_Schema $schema) + { + $this->schema = $schema; + } + + public function getSchema() + { + return $this->schema; + } + + public function setSourceEncoding($sourceEncoding) + { + $this->sourceEncoding = $sourceEncoding; + } + + public function getSourceEncoding() + { + return $this->sourceEncoding; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setWritersCanEditPermissions($writersCanEditPermissions) + { + $this->writersCanEditPermissions = $writersCanEditPermissions; + } + + public function getWritersCanEditPermissions() + { + return $this->writersCanEditPermissions; + } +} + +class Google_Service_MapsEngine_TableColumn extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $type; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_TablesListResponse extends Google_Collection +{ + protected $collection_key = 'tables'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $tablesType = 'Google_Service_MapsEngine_Table'; + protected $tablesDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTables($tables) + { + $this->tables = $tables; + } + + public function getTables() + { + return $this->tables; + } +} + +class Google_Service_MapsEngine_ValueRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $max; + public $min; + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } +} + +class Google_Service_MapsEngine_VectorStyle extends Google_Collection +{ + protected $collection_key = 'displayRules'; + protected $internal_gapi_mappings = array( + ); + protected $displayRulesType = 'Google_Service_MapsEngine_DisplayRule'; + protected $displayRulesDataType = 'array'; + protected $featureInfoType = 'Google_Service_MapsEngine_FeatureInfo'; + protected $featureInfoDataType = ''; + public $type; + + public function setDisplayRules($displayRules) + { + $this->displayRules = $displayRules; + } + + public function getDisplayRules() + { + return $this->displayRules; + } + + public function setFeatureInfo(Google_Service_MapsEngine_FeatureInfo $featureInfo) + { + $this->featureInfo = $featureInfo; + } + + public function getFeatureInfo() + { + return $this->featureInfo; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_MapsEngine_ZoomLevels extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $max; + public $min; + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Mirror.php b/vendor/google/apiclient/src/Google/Service/Mirror.php new file mode 100644 index 0000000..517f005 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Mirror.php @@ -0,0 +1,2095 @@ + + * API for interacting with Glass users via the timeline. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Mirror extends Google_Service +{ + /** View your location. */ + const GLASS_LOCATION = "https://www.googleapis.com/auth/glass.location"; + /** View and manage your Glass timeline. */ + const GLASS_TIMELINE = "https://www.googleapis.com/auth/glass.timeline"; + + public $accounts; + public $contacts; + public $locations; + public $settings; + public $subscriptions; + public $timeline; + public $timeline_attachments; + + + /** + * Constructs the internal representation of the Mirror service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'mirror/v1/'; + $this->version = 'v1'; + $this->serviceName = 'mirror'; + + $this->accounts = new Google_Service_Mirror_Accounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'accounts/{userToken}/{accountType}/{accountName}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userToken' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountType' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->contacts = new Google_Service_Mirror_Contacts_Resource( + $this, + $this->serviceName, + 'contacts', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'contacts/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'contacts/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'contacts', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'contacts', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'patch' => array( + 'path' => 'contacts/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'contacts/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->locations = new Google_Service_Mirror_Locations_Resource( + $this, + $this->serviceName, + 'locations', + array( + 'methods' => array( + 'get' => array( + 'path' => 'locations/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'locations', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->settings = new Google_Service_Mirror_Settings_Resource( + $this, + $this->serviceName, + 'settings', + array( + 'methods' => array( + 'get' => array( + 'path' => 'settings/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->subscriptions = new Google_Service_Mirror_Subscriptions_Resource( + $this, + $this->serviceName, + 'subscriptions', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'subscriptions/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'update' => array( + 'path' => 'subscriptions/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->timeline = new Google_Service_Mirror_Timeline_Resource( + $this, + $this->serviceName, + 'timeline', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'timeline/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'timeline/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'timeline', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'timeline', + 'httpMethod' => 'GET', + 'parameters' => array( + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sourceItemId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinnedOnly' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'bundleId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'timeline/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'timeline/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->timeline_attachments = new Google_Service_Mirror_TimelineAttachments_Resource( + $this, + $this->serviceName, + 'attachments', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'timeline/{itemId}/attachments/{attachmentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'itemId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'attachmentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'timeline/{itemId}/attachments/{attachmentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'itemId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'attachmentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'timeline/{itemId}/attachments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'itemId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'timeline/{itemId}/attachments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'itemId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $accounts = $mirrorService->accounts; + * + */ +class Google_Service_Mirror_Accounts_Resource extends Google_Service_Resource +{ + + /** + * Inserts a new account for a user (accounts.insert) + * + * @param string $userToken + * The ID for the user. + * @param string $accountType + * Account type to be passed to Android Account Manager. + * @param string $accountName + * The name of the account to be passed to the Android Account Manager. + * @param Google_Account $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Account + */ + public function insert($userToken, $accountType, $accountName, Google_Service_Mirror_Account $postBody, $optParams = array()) + { + $params = array('userToken' => $userToken, 'accountType' => $accountType, 'accountName' => $accountName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Mirror_Account"); + } +} + +/** + * The "contacts" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $contacts = $mirrorService->contacts; + * + */ +class Google_Service_Mirror_Contacts_Resource extends Google_Service_Resource +{ + + /** + * Deletes a contact. (contacts.delete) + * + * @param string $id + * The ID of the contact. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a single contact by ID. (contacts.get) + * + * @param string $id + * The ID of the contact. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Contact + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Mirror_Contact"); + } + /** + * Inserts a new contact. (contacts.insert) + * + * @param Google_Contact $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Contact + */ + public function insert(Google_Service_Mirror_Contact $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Mirror_Contact"); + } + /** + * Retrieves a list of contacts for the authenticated user. + * (contacts.listContacts) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_ContactsListResponse + */ + public function listContacts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Mirror_ContactsListResponse"); + } + /** + * Updates a contact in place. This method supports patch semantics. + * (contacts.patch) + * + * @param string $id + * The ID of the contact. + * @param Google_Contact $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Contact + */ + public function patch($id, Google_Service_Mirror_Contact $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Mirror_Contact"); + } + /** + * Updates a contact in place. (contacts.update) + * + * @param string $id + * The ID of the contact. + * @param Google_Contact $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Contact + */ + public function update($id, Google_Service_Mirror_Contact $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Mirror_Contact"); + } +} + +/** + * The "locations" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $locations = $mirrorService->locations; + * + */ +class Google_Service_Mirror_Locations_Resource extends Google_Service_Resource +{ + + /** + * Gets a single location by ID. (locations.get) + * + * @param string $id + * The ID of the location or latest for the last known location. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Location + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Mirror_Location"); + } + /** + * Retrieves a list of locations for the user. (locations.listLocations) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_LocationsListResponse + */ + public function listLocations($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Mirror_LocationsListResponse"); + } +} + +/** + * The "settings" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $settings = $mirrorService->settings; + * + */ +class Google_Service_Mirror_Settings_Resource extends Google_Service_Resource +{ + + /** + * Gets a single setting by ID. (settings.get) + * + * @param string $id + * The ID of the setting. The following IDs are valid: + - locale - The key to the user’s + * language/locale (BCP 47 identifier) that Glassware should use to render localized content. + - + * timezone - The key to the user’s current time zone region as defined in the tz database. + * Example: America/Los_Angeles. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Setting + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Mirror_Setting"); + } +} + +/** + * The "subscriptions" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $subscriptions = $mirrorService->subscriptions; + * + */ +class Google_Service_Mirror_Subscriptions_Resource extends Google_Service_Resource +{ + + /** + * Deletes a subscription. (subscriptions.delete) + * + * @param string $id + * The ID of the subscription. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Creates a new subscription. (subscriptions.insert) + * + * @param Google_Subscription $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Subscription + */ + public function insert(Google_Service_Mirror_Subscription $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Mirror_Subscription"); + } + /** + * Retrieves a list of subscriptions for the authenticated user and service. + * (subscriptions.listSubscriptions) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_SubscriptionsListResponse + */ + public function listSubscriptions($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Mirror_SubscriptionsListResponse"); + } + /** + * Updates an existing subscription in place. (subscriptions.update) + * + * @param string $id + * The ID of the subscription. + * @param Google_Subscription $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Subscription + */ + public function update($id, Google_Service_Mirror_Subscription $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Mirror_Subscription"); + } +} + +/** + * The "timeline" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $timeline = $mirrorService->timeline; + * + */ +class Google_Service_Mirror_Timeline_Resource extends Google_Service_Resource +{ + + /** + * Deletes a timeline item. (timeline.delete) + * + * @param string $id + * The ID of the timeline item. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a single timeline item by ID. (timeline.get) + * + * @param string $id + * The ID of the timeline item. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_TimelineItem + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Mirror_TimelineItem"); + } + /** + * Inserts a new item into the timeline. (timeline.insert) + * + * @param Google_TimelineItem $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_TimelineItem + */ + public function insert(Google_Service_Mirror_TimelineItem $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Mirror_TimelineItem"); + } + /** + * Retrieves a list of timeline items for the authenticated user. + * (timeline.listTimeline) + * + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Controls the order in which timeline items are returned. + * @opt_param bool includeDeleted + * If true, tombstone records for deleted items will be returned. + * @opt_param string maxResults + * The maximum number of items to include in the response, used for paging. + * @opt_param string pageToken + * Token for the page of results to return. + * @opt_param string sourceItemId + * If provided, only items with the given sourceItemId will be returned. + * @opt_param bool pinnedOnly + * If true, only pinned items will be returned. + * @opt_param string bundleId + * If provided, only items with the given bundleId will be returned. + * @return Google_Service_Mirror_TimelineListResponse + */ + public function listTimeline($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Mirror_TimelineListResponse"); + } + /** + * Updates a timeline item in place. This method supports patch semantics. + * (timeline.patch) + * + * @param string $id + * The ID of the timeline item. + * @param Google_TimelineItem $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_TimelineItem + */ + public function patch($id, Google_Service_Mirror_TimelineItem $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Mirror_TimelineItem"); + } + /** + * Updates a timeline item in place. (timeline.update) + * + * @param string $id + * The ID of the timeline item. + * @param Google_TimelineItem $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_TimelineItem + */ + public function update($id, Google_Service_Mirror_TimelineItem $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Mirror_TimelineItem"); + } +} + +/** + * The "attachments" collection of methods. + * Typical usage is: + * + * $mirrorService = new Google_Service_Mirror(...); + * $attachments = $mirrorService->attachments; + * + */ +class Google_Service_Mirror_TimelineAttachments_Resource extends Google_Service_Resource +{ + + /** + * Deletes an attachment from a timeline item. (attachments.delete) + * + * @param string $itemId + * The ID of the timeline item the attachment belongs to. + * @param string $attachmentId + * The ID of the attachment. + * @param array $optParams Optional parameters. + */ + public function delete($itemId, $attachmentId, $optParams = array()) + { + $params = array('itemId' => $itemId, 'attachmentId' => $attachmentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves an attachment on a timeline item by item ID and attachment ID. + * (attachments.get) + * + * @param string $itemId + * The ID of the timeline item the attachment belongs to. + * @param string $attachmentId + * The ID of the attachment. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Attachment + */ + public function get($itemId, $attachmentId, $optParams = array()) + { + $params = array('itemId' => $itemId, 'attachmentId' => $attachmentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Mirror_Attachment"); + } + /** + * Adds a new attachment to a timeline item. (attachments.insert) + * + * @param string $itemId + * The ID of the timeline item the attachment belongs to. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_Attachment + */ + public function insert($itemId, $optParams = array()) + { + $params = array('itemId' => $itemId); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Mirror_Attachment"); + } + /** + * Returns a list of attachments for a timeline item. + * (attachments.listTimelineAttachments) + * + * @param string $itemId + * The ID of the timeline item whose attachments should be listed. + * @param array $optParams Optional parameters. + * @return Google_Service_Mirror_AttachmentsListResponse + */ + public function listTimelineAttachments($itemId, $optParams = array()) + { + $params = array('itemId' => $itemId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Mirror_AttachmentsListResponse"); + } +} + + + + +class Google_Service_Mirror_Account extends Google_Collection +{ + protected $collection_key = 'userData'; + protected $internal_gapi_mappings = array( + ); + protected $authTokensType = 'Google_Service_Mirror_AuthToken'; + protected $authTokensDataType = 'array'; + public $features; + public $password; + protected $userDataType = 'Google_Service_Mirror_UserData'; + protected $userDataDataType = 'array'; + + public function setAuthTokens($authTokens) + { + $this->authTokens = $authTokens; + } + + public function getAuthTokens() + { + return $this->authTokens; + } + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setPassword($password) + { + $this->password = $password; + } + + public function getPassword() + { + return $this->password; + } + + public function setUserData($userData) + { + $this->userData = $userData; + } + + public function getUserData() + { + return $this->userData; + } +} + +class Google_Service_Mirror_Attachment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $contentType; + public $contentUrl; + public $id; + public $isProcessingContent; + + public function setContentType($contentType) + { + $this->contentType = $contentType; + } + + public function getContentType() + { + return $this->contentType; + } + + public function setContentUrl($contentUrl) + { + $this->contentUrl = $contentUrl; + } + + public function getContentUrl() + { + return $this->contentUrl; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsProcessingContent($isProcessingContent) + { + $this->isProcessingContent = $isProcessingContent; + } + + public function getIsProcessingContent() + { + return $this->isProcessingContent; + } +} + +class Google_Service_Mirror_AttachmentsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Mirror_Attachment'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Mirror_AuthToken extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $authToken; + public $type; + + public function setAuthToken($authToken) + { + $this->authToken = $authToken; + } + + public function getAuthToken() + { + return $this->authToken; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Mirror_Command extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Mirror_Contact extends Google_Collection +{ + protected $collection_key = 'sharingFeatures'; + protected $internal_gapi_mappings = array( + ); + protected $acceptCommandsType = 'Google_Service_Mirror_Command'; + protected $acceptCommandsDataType = 'array'; + public $acceptTypes; + public $displayName; + public $id; + public $imageUrls; + public $kind; + public $phoneNumber; + public $priority; + public $sharingFeatures; + public $source; + public $speakableName; + public $type; + + public function setAcceptCommands($acceptCommands) + { + $this->acceptCommands = $acceptCommands; + } + + public function getAcceptCommands() + { + return $this->acceptCommands; + } + + public function setAcceptTypes($acceptTypes) + { + $this->acceptTypes = $acceptTypes; + } + + public function getAcceptTypes() + { + return $this->acceptTypes; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImageUrls($imageUrls) + { + $this->imageUrls = $imageUrls; + } + + public function getImageUrls() + { + return $this->imageUrls; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPhoneNumber($phoneNumber) + { + $this->phoneNumber = $phoneNumber; + } + + public function getPhoneNumber() + { + return $this->phoneNumber; + } + + public function setPriority($priority) + { + $this->priority = $priority; + } + + public function getPriority() + { + return $this->priority; + } + + public function setSharingFeatures($sharingFeatures) + { + $this->sharingFeatures = $sharingFeatures; + } + + public function getSharingFeatures() + { + return $this->sharingFeatures; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setSpeakableName($speakableName) + { + $this->speakableName = $speakableName; + } + + public function getSpeakableName() + { + return $this->speakableName; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Mirror_ContactsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Mirror_Contact'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Mirror_Location extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accuracy; + public $address; + public $displayName; + public $id; + public $kind; + public $latitude; + public $longitude; + public $timestamp; + + public function setAccuracy($accuracy) + { + $this->accuracy = $accuracy; + } + + public function getAccuracy() + { + return $this->accuracy; + } + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } +} + +class Google_Service_Mirror_LocationsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Mirror_Location'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Mirror_MenuItem extends Google_Collection +{ + protected $collection_key = 'values'; + protected $internal_gapi_mappings = array( + "contextualCommand" => "contextual_command", + ); + public $action; + public $contextualCommand; + public $id; + public $payload; + public $removeWhenSelected; + protected $valuesType = 'Google_Service_Mirror_MenuValue'; + protected $valuesDataType = 'array'; + + public function setAction($action) + { + $this->action = $action; + } + + public function getAction() + { + return $this->action; + } + + public function setContextualCommand($contextualCommand) + { + $this->contextualCommand = $contextualCommand; + } + + public function getContextualCommand() + { + return $this->contextualCommand; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setRemoveWhenSelected($removeWhenSelected) + { + $this->removeWhenSelected = $removeWhenSelected; + } + + public function getRemoveWhenSelected() + { + return $this->removeWhenSelected; + } + + public function setValues($values) + { + $this->values = $values; + } + + public function getValues() + { + return $this->values; + } +} + +class Google_Service_Mirror_MenuValue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $iconUrl; + public $state; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setIconUrl($iconUrl) + { + $this->iconUrl = $iconUrl; + } + + public function getIconUrl() + { + return $this->iconUrl; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_Mirror_Notification extends Google_Collection +{ + protected $collection_key = 'userActions'; + protected $internal_gapi_mappings = array( + ); + public $collection; + public $itemId; + public $operation; + protected $userActionsType = 'Google_Service_Mirror_UserAction'; + protected $userActionsDataType = 'array'; + public $userToken; + public $verifyToken; + + public function setCollection($collection) + { + $this->collection = $collection; + } + + public function getCollection() + { + return $this->collection; + } + + public function setItemId($itemId) + { + $this->itemId = $itemId; + } + + public function getItemId() + { + return $this->itemId; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } + + public function setUserActions($userActions) + { + $this->userActions = $userActions; + } + + public function getUserActions() + { + return $this->userActions; + } + + public function setUserToken($userToken) + { + $this->userToken = $userToken; + } + + public function getUserToken() + { + return $this->userToken; + } + + public function setVerifyToken($verifyToken) + { + $this->verifyToken = $verifyToken; + } + + public function getVerifyToken() + { + return $this->verifyToken; + } +} + +class Google_Service_Mirror_NotificationConfig extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deliveryTime; + public $level; + + public function setDeliveryTime($deliveryTime) + { + $this->deliveryTime = $deliveryTime; + } + + public function getDeliveryTime() + { + return $this->deliveryTime; + } + + public function setLevel($level) + { + $this->level = $level; + } + + public function getLevel() + { + return $this->level; + } +} + +class Google_Service_Mirror_Setting extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $value; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Mirror_Subscription extends Google_Collection +{ + protected $collection_key = 'operation'; + protected $internal_gapi_mappings = array( + ); + public $callbackUrl; + public $collection; + public $id; + public $kind; + protected $notificationType = 'Google_Service_Mirror_Notification'; + protected $notificationDataType = ''; + public $operation; + public $updated; + public $userToken; + public $verifyToken; + + public function setCallbackUrl($callbackUrl) + { + $this->callbackUrl = $callbackUrl; + } + + public function getCallbackUrl() + { + return $this->callbackUrl; + } + + public function setCollection($collection) + { + $this->collection = $collection; + } + + public function getCollection() + { + return $this->collection; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNotification(Google_Service_Mirror_Notification $notification) + { + $this->notification = $notification; + } + + public function getNotification() + { + return $this->notification; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUserToken($userToken) + { + $this->userToken = $userToken; + } + + public function getUserToken() + { + return $this->userToken; + } + + public function setVerifyToken($verifyToken) + { + $this->verifyToken = $verifyToken; + } + + public function getVerifyToken() + { + return $this->verifyToken; + } +} + +class Google_Service_Mirror_SubscriptionsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Mirror_Subscription'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Mirror_TimelineItem extends Google_Collection +{ + protected $collection_key = 'recipients'; + protected $internal_gapi_mappings = array( + ); + protected $attachmentsType = 'Google_Service_Mirror_Attachment'; + protected $attachmentsDataType = 'array'; + public $bundleId; + public $canonicalUrl; + public $created; + protected $creatorType = 'Google_Service_Mirror_Contact'; + protected $creatorDataType = ''; + public $displayTime; + public $etag; + public $html; + public $id; + public $inReplyTo; + public $isBundleCover; + public $isDeleted; + public $isPinned; + public $kind; + protected $locationType = 'Google_Service_Mirror_Location'; + protected $locationDataType = ''; + protected $menuItemsType = 'Google_Service_Mirror_MenuItem'; + protected $menuItemsDataType = 'array'; + protected $notificationType = 'Google_Service_Mirror_NotificationConfig'; + protected $notificationDataType = ''; + public $pinScore; + protected $recipientsType = 'Google_Service_Mirror_Contact'; + protected $recipientsDataType = 'array'; + public $selfLink; + public $sourceItemId; + public $speakableText; + public $speakableType; + public $text; + public $title; + public $updated; + + public function setAttachments($attachments) + { + $this->attachments = $attachments; + } + + public function getAttachments() + { + return $this->attachments; + } + + public function setBundleId($bundleId) + { + $this->bundleId = $bundleId; + } + + public function getBundleId() + { + return $this->bundleId; + } + + public function setCanonicalUrl($canonicalUrl) + { + $this->canonicalUrl = $canonicalUrl; + } + + public function getCanonicalUrl() + { + return $this->canonicalUrl; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setCreator(Google_Service_Mirror_Contact $creator) + { + $this->creator = $creator; + } + + public function getCreator() + { + return $this->creator; + } + + public function setDisplayTime($displayTime) + { + $this->displayTime = $displayTime; + } + + public function getDisplayTime() + { + return $this->displayTime; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setHtml($html) + { + $this->html = $html; + } + + public function getHtml() + { + return $this->html; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInReplyTo($inReplyTo) + { + $this->inReplyTo = $inReplyTo; + } + + public function getInReplyTo() + { + return $this->inReplyTo; + } + + public function setIsBundleCover($isBundleCover) + { + $this->isBundleCover = $isBundleCover; + } + + public function getIsBundleCover() + { + return $this->isBundleCover; + } + + public function setIsDeleted($isDeleted) + { + $this->isDeleted = $isDeleted; + } + + public function getIsDeleted() + { + return $this->isDeleted; + } + + public function setIsPinned($isPinned) + { + $this->isPinned = $isPinned; + } + + public function getIsPinned() + { + return $this->isPinned; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation(Google_Service_Mirror_Location $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMenuItems($menuItems) + { + $this->menuItems = $menuItems; + } + + public function getMenuItems() + { + return $this->menuItems; + } + + public function setNotification(Google_Service_Mirror_NotificationConfig $notification) + { + $this->notification = $notification; + } + + public function getNotification() + { + return $this->notification; + } + + public function setPinScore($pinScore) + { + $this->pinScore = $pinScore; + } + + public function getPinScore() + { + return $this->pinScore; + } + + public function setRecipients($recipients) + { + $this->recipients = $recipients; + } + + public function getRecipients() + { + return $this->recipients; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSourceItemId($sourceItemId) + { + $this->sourceItemId = $sourceItemId; + } + + public function getSourceItemId() + { + return $this->sourceItemId; + } + + public function setSpeakableText($speakableText) + { + $this->speakableText = $speakableText; + } + + public function getSpeakableText() + { + return $this->speakableText; + } + + public function setSpeakableType($speakableType) + { + $this->speakableType = $speakableType; + } + + public function getSpeakableType() + { + return $this->speakableType; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Mirror_TimelineListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Mirror_TimelineItem'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Mirror_UserAction extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $payload; + public $type; + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Mirror_UserData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Oauth2.php b/vendor/google/apiclient/src/Google/Service/Oauth2.php new file mode 100644 index 0000000..d2d19b3 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Oauth2.php @@ -0,0 +1,424 @@ + + * Lets you access OAuth2 protocol related APIs. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Oauth2 extends Google_Service +{ + /** Know your basic profile info and list of people in your circles.. */ + const PLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; + /** Know who you are on Google. */ + const PLUS_ME = "https://www.googleapis.com/auth/plus.me"; + /** View your email address. */ + const USERINFO_EMAIL = "https://www.googleapis.com/auth/userinfo.email"; + /** View your basic profile info. */ + const USERINFO_PROFILE = "https://www.googleapis.com/auth/userinfo.profile"; + + public $userinfo; + public $userinfo_v2_me; + private $base_methods; + + /** + * Constructs the internal representation of the Oauth2 service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = ''; + $this->version = 'v2'; + $this->serviceName = 'oauth2'; + + $this->userinfo = new Google_Service_Oauth2_Userinfo_Resource( + $this, + $this->serviceName, + 'userinfo', + array( + 'methods' => array( + 'get' => array( + 'path' => 'oauth2/v2/userinfo', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->userinfo_v2_me = new Google_Service_Oauth2_UserinfoV2Me_Resource( + $this, + $this->serviceName, + 'me', + array( + 'methods' => array( + 'get' => array( + 'path' => 'userinfo/v2/me', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->base_methods = new Google_Service_Resource( + $this, + $this->serviceName, + '', + array( + 'methods' => array( + 'tokeninfo' => array( + 'path' => 'oauth2/v2/tokeninfo', + 'httpMethod' => 'POST', + 'parameters' => array( + 'access_token' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id_token' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } + /** + * (tokeninfo) + * + * @param array $optParams Optional parameters. + * + * @opt_param string access_token + * + * @opt_param string id_token + * + * @return Google_Service_Oauth2_Tokeninfo + */ + public function tokeninfo($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->base_methods->call('tokeninfo', array($params), "Google_Service_Oauth2_Tokeninfo"); + } +} + + +/** + * The "userinfo" collection of methods. + * Typical usage is: + * + * $oauth2Service = new Google_Service_Oauth2(...); + * $userinfo = $oauth2Service->userinfo; + * + */ +class Google_Service_Oauth2_Userinfo_Resource extends Google_Service_Resource +{ + + /** + * (userinfo.get) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Oauth2_Userinfoplus + */ + public function get($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Oauth2_Userinfoplus"); + } +} + +/** + * The "v2" collection of methods. + * Typical usage is: + * + * $oauth2Service = new Google_Service_Oauth2(...); + * $v2 = $oauth2Service->v2; + * + */ +class Google_Service_Oauth2_UserinfoV2_Resource extends Google_Service_Resource +{ + +} + +/** + * The "me" collection of methods. + * Typical usage is: + * + * $oauth2Service = new Google_Service_Oauth2(...); + * $me = $oauth2Service->me; + * + */ +class Google_Service_Oauth2_UserinfoV2Me_Resource extends Google_Service_Resource +{ + + /** + * (me.get) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Oauth2_Userinfoplus + */ + public function get($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Oauth2_Userinfoplus"); + } +} + + + + +class Google_Service_Oauth2_Tokeninfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + "accessType" => "access_type", + "expiresIn" => "expires_in", + "issuedTo" => "issued_to", + "userId" => "user_id", + "verifiedEmail" => "verified_email", + ); + public $accessType; + public $audience; + public $email; + public $expiresIn; + public $issuedTo; + public $scope; + public $userId; + public $verifiedEmail; + + public function setAccessType($accessType) + { + $this->accessType = $accessType; + } + + public function getAccessType() + { + return $this->accessType; + } + + public function setAudience($audience) + { + $this->audience = $audience; + } + + public function getAudience() + { + return $this->audience; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setExpiresIn($expiresIn) + { + $this->expiresIn = $expiresIn; + } + + public function getExpiresIn() + { + return $this->expiresIn; + } + + public function setIssuedTo($issuedTo) + { + $this->issuedTo = $issuedTo; + } + + public function getIssuedTo() + { + return $this->issuedTo; + } + + public function setScope($scope) + { + $this->scope = $scope; + } + + public function getScope() + { + return $this->scope; + } + + public function setUserId($userId) + { + $this->userId = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function setVerifiedEmail($verifiedEmail) + { + $this->verifiedEmail = $verifiedEmail; + } + + public function getVerifiedEmail() + { + return $this->verifiedEmail; + } +} + +class Google_Service_Oauth2_Userinfoplus extends Google_Model +{ + protected $internal_gapi_mappings = array( + "familyName" => "family_name", + "givenName" => "given_name", + "verifiedEmail" => "verified_email", + ); + public $email; + public $familyName; + public $gender; + public $givenName; + public $hd; + public $id; + public $link; + public $locale; + public $name; + public $picture; + public $verifiedEmail; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGender($gender) + { + $this->gender = $gender; + } + + public function getGender() + { + return $this->gender; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } + + public function setHd($hd) + { + $this->hd = $hd; + } + + public function getHd() + { + return $this->hd; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setLocale($locale) + { + $this->locale = $locale; + } + + public function getLocale() + { + return $this->locale; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPicture($picture) + { + $this->picture = $picture; + } + + public function getPicture() + { + return $this->picture; + } + + public function setVerifiedEmail($verifiedEmail) + { + $this->verifiedEmail = $verifiedEmail; + } + + public function getVerifiedEmail() + { + return $this->verifiedEmail; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Orkut.php b/vendor/google/apiclient/src/Google/Service/Orkut.php new file mode 100644 index 0000000..cc5a62c --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Orkut.php @@ -0,0 +1,4127 @@ + + * Lets you manage activities, comments and badges in Orkut. More stuff coming in time. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Orkut extends Google_Service +{ + /** Manage your Orkut activity. */ + const ORKUT = "https://www.googleapis.com/auth/orkut"; + /** View your Orkut data. */ + const ORKUT_READONLY = "https://www.googleapis.com/auth/orkut.readonly"; + + public $acl; + public $activities; + public $activityVisibility; + public $badges; + public $comments; + public $communities; + public $communityFollow; + public $communityMembers; + public $communityMessages; + public $communityPollComments; + public $communityPollVotes; + public $communityPolls; + public $communityRelated; + public $communityTopics; + public $counters; + public $scraps; + + + /** + * Constructs the internal representation of the Orkut service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'orkut/v2/'; + $this->version = 'v2'; + $this->serviceName = 'orkut'; + + $this->acl = new Google_Service_Orkut_Acl_Resource( + $this, + $this->serviceName, + 'acl', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'activities/{activityId}/acl/{userId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->activities = new Google_Service_Orkut_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'activities/{activityId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/activities/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->activityVisibility = new Google_Service_Orkut_ActivityVisibility_Resource( + $this, + $this->serviceName, + 'activityVisibility', + array( + 'methods' => array( + 'get' => array( + 'path' => 'activities/{activityId}/visibility', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'activities/{activityId}/visibility', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'activities/{activityId}/visibility', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->badges = new Google_Service_Orkut_Badges_Resource( + $this, + $this->serviceName, + 'badges', + array( + 'methods' => array( + 'get' => array( + 'path' => 'people/{userId}/badges/{badgeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'badgeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/badges', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->comments = new Google_Service_Orkut_Comments_Resource( + $this, + $this->serviceName, + 'comments', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'comments/{commentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'comments/{commentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'activities/{activityId}/comments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'activities/{activityId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communities = new Google_Service_Orkut_Communities_Resource( + $this, + $this->serviceName, + 'communities', + array( + 'methods' => array( + 'get' => array( + 'path' => 'communities/{communityId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/communities', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communityFollow = new Google_Service_Orkut_CommunityFollow_Resource( + $this, + $this->serviceName, + 'communityFollow', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'communities/{communityId}/followers/{userId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'communities/{communityId}/followers/{userId}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->communityMembers = new Google_Service_Orkut_CommunityMembers_Resource( + $this, + $this->serviceName, + 'communityMembers', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'communities/{communityId}/members/{userId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'communities/{communityId}/members/{userId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'communities/{communityId}/members/{userId}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'communities/{communityId}/members', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'friendsOnly' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communityMessages = new Google_Service_Orkut_CommunityMessages_Resource( + $this, + $this->serviceName, + 'communityMessages', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'communities/{communityId}/topics/{topicId}/messages/{messageId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'topicId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'messageId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'communities/{communityId}/topics/{topicId}/messages', + 'httpMethod' => 'POST', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'topicId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'communities/{communityId}/topics/{topicId}/messages', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'topicId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communityPollComments = new Google_Service_Orkut_CommunityPollComments_Resource( + $this, + $this->serviceName, + 'communityPollComments', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'communities/{communityId}/polls/{pollId}/comments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pollId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'communities/{communityId}/polls/{pollId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pollId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communityPollVotes = new Google_Service_Orkut_CommunityPollVotes_Resource( + $this, + $this->serviceName, + 'communityPollVotes', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'communities/{communityId}/polls/{pollId}/votes', + 'httpMethod' => 'POST', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pollId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->communityPolls = new Google_Service_Orkut_CommunityPolls_Resource( + $this, + $this->serviceName, + 'communityPolls', + array( + 'methods' => array( + 'get' => array( + 'path' => 'communities/{communityId}/polls/{pollId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pollId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'communities/{communityId}/polls', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communityRelated = new Google_Service_Orkut_CommunityRelated_Resource( + $this, + $this->serviceName, + 'communityRelated', + array( + 'methods' => array( + 'list' => array( + 'path' => 'communities/{communityId}/related', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->communityTopics = new Google_Service_Orkut_CommunityTopics_Resource( + $this, + $this->serviceName, + 'communityTopics', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'communities/{communityId}/topics/{topicId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'topicId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'communities/{communityId}/topics/{topicId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'topicId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'communities/{communityId}/topics', + 'httpMethod' => 'POST', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'isShout' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'communities/{communityId}/topics', + 'httpMethod' => 'GET', + 'parameters' => array( + 'communityId' => array( + 'location' => 'path', + 'type' => 'integer', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->counters = new Google_Service_Orkut_Counters_Resource( + $this, + $this->serviceName, + 'counters', + array( + 'methods' => array( + 'list' => array( + 'path' => 'people/{userId}/counters', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->scraps = new Google_Service_Orkut_Scraps_Resource( + $this, + $this->serviceName, + 'scraps', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'activities/scraps', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "acl" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $acl = $orkutService->acl; + * + */ +class Google_Service_Orkut_Acl_Resource extends Google_Service_Resource +{ + + /** + * Excludes an element from the ACL of the activity. (acl.delete) + * + * @param string $activityId + * ID of the activity. + * @param string $userId + * ID of the user to be removed from the activity. + * @param array $optParams Optional parameters. + */ + public function delete($activityId, $userId, $optParams = array()) + { + $params = array('activityId' => $activityId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } +} + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $activities = $orkutService->activities; + * + */ +class Google_Service_Orkut_Activities_Resource extends Google_Service_Resource +{ + + /** + * Deletes an existing activity, if the access controls allow it. + * (activities.delete) + * + * @param string $activityId + * ID of the activity to remove. + * @param array $optParams Optional parameters. + */ + public function delete($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a list of activities. (activities.listActivities) + * + * @param string $userId + * The ID of the user whose activities will be listed. Can be me to refer to the viewer (i.e. the + * authenticated user). + * @param string $collection + * The collection of activities to list. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param string maxResults + * The maximum number of activities to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_ActivityList + */ + public function listActivities($userId, $collection, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_ActivityList"); + } +} + +/** + * The "activityVisibility" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $activityVisibility = $orkutService->activityVisibility; + * + */ +class Google_Service_Orkut_ActivityVisibility_Resource extends Google_Service_Resource +{ + + /** + * Gets the visibility of an existing activity. (activityVisibility.get) + * + * @param string $activityId + * ID of the activity to get the visibility. + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Visibility + */ + public function get($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_Visibility"); + } + /** + * Updates the visibility of an existing activity. This method supports patch + * semantics. (activityVisibility.patch) + * + * @param string $activityId + * ID of the activity. + * @param Google_Visibility $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Visibility + */ + public function patch($activityId, Google_Service_Orkut_Visibility $postBody, $optParams = array()) + { + $params = array('activityId' => $activityId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Orkut_Visibility"); + } + /** + * Updates the visibility of an existing activity. (activityVisibility.update) + * + * @param string $activityId + * ID of the activity. + * @param Google_Visibility $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Visibility + */ + public function update($activityId, Google_Service_Orkut_Visibility $postBody, $optParams = array()) + { + $params = array('activityId' => $activityId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Orkut_Visibility"); + } +} + +/** + * The "badges" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $badges = $orkutService->badges; + * + */ +class Google_Service_Orkut_Badges_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a badge from a user. (badges.get) + * + * @param string $userId + * The ID of the user whose badges will be listed. Can be me to refer to caller. + * @param string $badgeId + * The ID of the badge that will be retrieved. + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Badge + */ + public function get($userId, $badgeId, $optParams = array()) + { + $params = array('userId' => $userId, 'badgeId' => $badgeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_Badge"); + } + /** + * Retrieves the list of visible badges of a user. (badges.listBadges) + * + * @param string $userId + * The id of the user whose badges will be listed. Can be me to refer to caller. + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_BadgeList + */ + public function listBadges($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_BadgeList"); + } +} + +/** + * The "comments" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $comments = $orkutService->comments; + * + */ +class Google_Service_Orkut_Comments_Resource extends Google_Service_Resource +{ + + /** + * Deletes an existing comment. (comments.delete) + * + * @param string $commentId + * ID of the comment to remove. + * @param array $optParams Optional parameters. + */ + public function delete($commentId, $optParams = array()) + { + $params = array('commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves an existing comment. (comments.get) + * + * @param string $commentId + * ID of the comment to get. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_Comment + */ + public function get($commentId, $optParams = array()) + { + $params = array('commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_Comment"); + } + /** + * Inserts a new comment to an activity. (comments.insert) + * + * @param string $activityId + * The ID of the activity to contain the new comment. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Comment + */ + public function insert($activityId, Google_Service_Orkut_Comment $postBody, $optParams = array()) + { + $params = array('activityId' => $activityId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_Comment"); + } + /** + * Retrieves a list of comments, possibly filtered. (comments.listComments) + * + * @param string $activityId + * The ID of the activity containing the comments. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Sort search results. + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param string maxResults + * The maximum number of activities to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommentList + */ + public function listComments($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommentList"); + } +} + +/** + * The "communities" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communities = $orkutService->communities; + * + */ +class Google_Service_Orkut_Communities_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the basic information (aka. profile) of a community. + * (communities.get) + * + * @param int $communityId + * The ID of the community to get. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_Community + */ + public function get($communityId, $optParams = array()) + { + $params = array('communityId' => $communityId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_Community"); + } + /** + * Retrieves the list of communities the current user is a member of. + * (communities.listCommunities) + * + * @param string $userId + * The ID of the user whose communities will be listed. Can be me to refer to caller. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * How to order the communities by. + * @opt_param string maxResults + * The maximum number of communities to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityList + */ + public function listCommunities($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityList"); + } +} + +/** + * The "communityFollow" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityFollow = $orkutService->communityFollow; + * + */ +class Google_Service_Orkut_CommunityFollow_Resource extends Google_Service_Resource +{ + + /** + * Removes a user from the followers of a community. (communityFollow.delete) + * + * @param int $communityId + * ID of the community. + * @param string $userId + * ID of the user. + * @param array $optParams Optional parameters. + */ + public function delete($communityId, $userId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a user as a follower of a community. (communityFollow.insert) + * + * @param int $communityId + * ID of the community. + * @param string $userId + * ID of the user. + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_CommunityMembers + */ + public function insert($communityId, $userId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_CommunityMembers"); + } +} + +/** + * The "communityMembers" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityMembers = $orkutService->communityMembers; + * + */ +class Google_Service_Orkut_CommunityMembers_Resource extends Google_Service_Resource +{ + + /** + * Makes the user leave a community. (communityMembers.delete) + * + * @param int $communityId + * ID of the community. + * @param string $userId + * ID of the user. + * @param array $optParams Optional parameters. + */ + public function delete($communityId, $userId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the relationship between a user and a community. + * (communityMembers.get) + * + * @param int $communityId + * ID of the community. + * @param string $userId + * ID of the user. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityMembers + */ + public function get($communityId, $userId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_CommunityMembers"); + } + /** + * Makes the user join a community. (communityMembers.insert) + * + * @param int $communityId + * ID of the community. + * @param string $userId + * ID of the user. + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_CommunityMembers + */ + public function insert($communityId, $userId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_CommunityMembers"); + } + /** + * Lists members of a community. Use the pagination tokens to retrieve the full + * list; do not rely on the member count available in the community profile + * information to know when to stop iterating, as that count may be approximate. + * (communityMembers.listCommunityMembers) + * + * @param int $communityId + * The ID of the community whose members will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param bool friendsOnly + * Whether to list only community members who are friends of the user. + * @opt_param string maxResults + * The maximum number of members to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityMembersList + */ + public function listCommunityMembers($communityId, $optParams = array()) + { + $params = array('communityId' => $communityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityMembersList"); + } +} + +/** + * The "communityMessages" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityMessages = $orkutService->communityMessages; + * + */ +class Google_Service_Orkut_CommunityMessages_Resource extends Google_Service_Resource +{ + + /** + * Moves a message of the community to the trash folder. + * (communityMessages.delete) + * + * @param int $communityId + * The ID of the community whose message will be moved to the trash folder. + * @param string $topicId + * The ID of the topic whose message will be moved to the trash folder. + * @param string $messageId + * The ID of the message to be moved to the trash folder. + * @param array $optParams Optional parameters. + */ + public function delete($communityId, $topicId, $messageId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'topicId' => $topicId, 'messageId' => $messageId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a message to a given community topic. (communityMessages.insert) + * + * @param int $communityId + * The ID of the community the message should be added to. + * @param string $topicId + * The ID of the topic the message should be added to. + * @param Google_CommunityMessage $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_CommunityMessage + */ + public function insert($communityId, $topicId, Google_Service_Orkut_CommunityMessage $postBody, $optParams = array()) + { + $params = array('communityId' => $communityId, 'topicId' => $topicId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_CommunityMessage"); + } + /** + * Retrieves the messages of a topic of a community. + * (communityMessages.listCommunityMessages) + * + * @param int $communityId + * The ID of the community which messages will be listed. + * @param string $topicId + * The ID of the topic which messages will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param string maxResults + * The maximum number of messages to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityMessageList + */ + public function listCommunityMessages($communityId, $topicId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'topicId' => $topicId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityMessageList"); + } +} + +/** + * The "communityPollComments" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityPollComments = $orkutService->communityPollComments; + * + */ +class Google_Service_Orkut_CommunityPollComments_Resource extends Google_Service_Resource +{ + + /** + * Adds a comment on a community poll. (communityPollComments.insert) + * + * @param int $communityId + * The ID of the community whose poll is being commented. + * @param string $pollId + * The ID of the poll being commented. + * @param Google_CommunityPollComment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_CommunityPollComment + */ + public function insert($communityId, $pollId, Google_Service_Orkut_CommunityPollComment $postBody, $optParams = array()) + { + $params = array('communityId' => $communityId, 'pollId' => $pollId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_CommunityPollComment"); + } + /** + * Retrieves the comments of a community poll. + * (communityPollComments.listCommunityPollComments) + * + * @param int $communityId + * The ID of the community whose poll is having its comments listed. + * @param string $pollId + * The ID of the community whose polls will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param string maxResults + * The maximum number of comments to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityPollCommentList + */ + public function listCommunityPollComments($communityId, $pollId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'pollId' => $pollId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityPollCommentList"); + } +} + +/** + * The "communityPollVotes" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityPollVotes = $orkutService->communityPollVotes; + * + */ +class Google_Service_Orkut_CommunityPollVotes_Resource extends Google_Service_Resource +{ + + /** + * Votes on a community poll. (communityPollVotes.insert) + * + * @param int $communityId + * The ID of the community whose poll is being voted. + * @param string $pollId + * The ID of the poll being voted. + * @param Google_CommunityPollVote $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_CommunityPollVote + */ + public function insert($communityId, $pollId, Google_Service_Orkut_CommunityPollVote $postBody, $optParams = array()) + { + $params = array('communityId' => $communityId, 'pollId' => $pollId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_CommunityPollVote"); + } +} + +/** + * The "communityPolls" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityPolls = $orkutService->communityPolls; + * + */ +class Google_Service_Orkut_CommunityPolls_Resource extends Google_Service_Resource +{ + + /** + * Retrieves one specific poll of a community. (communityPolls.get) + * + * @param int $communityId + * The ID of the community for whose poll will be retrieved. + * @param string $pollId + * The ID of the poll to get. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityPoll + */ + public function get($communityId, $pollId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'pollId' => $pollId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_CommunityPoll"); + } + /** + * Retrieves the polls of a community. (communityPolls.listCommunityPolls) + * + * @param int $communityId + * The ID of the community which polls will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param string maxResults + * The maximum number of polls to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityPollList + */ + public function listCommunityPolls($communityId, $optParams = array()) + { + $params = array('communityId' => $communityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityPollList"); + } +} + +/** + * The "communityRelated" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityRelated = $orkutService->communityRelated; + * + */ +class Google_Service_Orkut_CommunityRelated_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the communities related to another one. + * (communityRelated.listCommunityRelated) + * + * @param int $communityId + * The ID of the community whose related communities will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityList + */ + public function listCommunityRelated($communityId, $optParams = array()) + { + $params = array('communityId' => $communityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityList"); + } +} + +/** + * The "communityTopics" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $communityTopics = $orkutService->communityTopics; + * + */ +class Google_Service_Orkut_CommunityTopics_Resource extends Google_Service_Resource +{ + + /** + * Moves a topic of the community to the trash folder. (communityTopics.delete) + * + * @param int $communityId + * The ID of the community whose topic will be moved to the trash folder. + * @param string $topicId + * The ID of the topic to be moved to the trash folder. + * @param array $optParams Optional parameters. + */ + public function delete($communityId, $topicId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'topicId' => $topicId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a topic of a community. (communityTopics.get) + * + * @param int $communityId + * The ID of the community whose topic will be retrieved. + * @param string $topicId + * The ID of the topic to get. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityTopic + */ + public function get($communityId, $topicId, $optParams = array()) + { + $params = array('communityId' => $communityId, 'topicId' => $topicId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Orkut_CommunityTopic"); + } + /** + * Adds a topic to a given community. (communityTopics.insert) + * + * @param int $communityId + * The ID of the community the topic should be added to. + * @param Google_CommunityTopic $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool isShout + * Whether this topic is a shout. + * @return Google_Service_Orkut_CommunityTopic + */ + public function insert($communityId, Google_Service_Orkut_CommunityTopic $postBody, $optParams = array()) + { + $params = array('communityId' => $communityId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_CommunityTopic"); + } + /** + * Retrieves the topics of a community. (communityTopics.listCommunityTopics) + * + * @param int $communityId + * The ID of the community which topics will be listed. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A continuation token that allows pagination. + * @opt_param string maxResults + * The maximum number of topics to include in the response. + * @opt_param string hl + * Specifies the interface language (host language) of your user interface. + * @return Google_Service_Orkut_CommunityTopicList + */ + public function listCommunityTopics($communityId, $optParams = array()) + { + $params = array('communityId' => $communityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_CommunityTopicList"); + } +} + +/** + * The "counters" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $counters = $orkutService->counters; + * + */ +class Google_Service_Orkut_Counters_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the counters of a user. (counters.listCounters) + * + * @param string $userId + * The ID of the user whose counters will be listed. Can be me to refer to caller. + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Counters + */ + public function listCounters($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Orkut_Counters"); + } +} + +/** + * The "scraps" collection of methods. + * Typical usage is: + * + * $orkutService = new Google_Service_Orkut(...); + * $scraps = $orkutService->scraps; + * + */ +class Google_Service_Orkut_Scraps_Resource extends Google_Service_Resource +{ + + /** + * Creates a new scrap. (scraps.insert) + * + * @param Google_Activity $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Orkut_Activity + */ + public function insert(Google_Service_Orkut_Activity $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Orkut_Activity"); + } +} + + + + +class Google_Service_Orkut_Acl extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $description; + protected $itemsType = 'Google_Service_Orkut_AclItems'; + protected $itemsDataType = 'array'; + public $kind; + public $totalParticipants; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTotalParticipants($totalParticipants) + { + $this->totalParticipants = $totalParticipants; + } + + public function getTotalParticipants() + { + return $this->totalParticipants; + } +} + +class Google_Service_Orkut_AclItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Orkut_Activity extends Google_Collection +{ + protected $collection_key = 'links'; + protected $internal_gapi_mappings = array( + ); + protected $accessType = 'Google_Service_Orkut_Acl'; + protected $accessDataType = ''; + protected $actorType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $actorDataType = ''; + public $id; + public $kind; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + protected $objectType = 'Google_Service_Orkut_ActivityObject'; + protected $objectDataType = ''; + public $published; + public $title; + public $updated; + public $verb; + + public function setAccess(Google_Service_Orkut_Acl $access) + { + $this->access = $access; + } + + public function getAccess() + { + return $this->access; + } + + public function setActor(Google_Service_Orkut_OrkutAuthorResource $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setObject(Google_Service_Orkut_ActivityObject $object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_Orkut_ActivityList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Orkut_Activity'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Orkut_ActivityObject extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $content; + protected $itemsType = 'Google_Service_Orkut_OrkutActivityobjectsResource'; + protected $itemsDataType = 'array'; + public $objectType; + protected $repliesType = 'Google_Service_Orkut_ActivityObjectReplies'; + protected $repliesDataType = ''; + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setReplies(Google_Service_Orkut_ActivityObjectReplies $replies) + { + $this->replies = $replies; + } + + public function getReplies() + { + return $this->replies; + } +} + +class Google_Service_Orkut_ActivityObjectReplies extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Orkut_Comment'; + protected $itemsDataType = 'array'; + public $totalItems; + public $url; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_Badge extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $badgeLargeLogo; + public $badgeSmallLogo; + public $caption; + public $description; + public $id; + public $kind; + public $sponsorLogo; + public $sponsorName; + public $sponsorUrl; + + public function setBadgeLargeLogo($badgeLargeLogo) + { + $this->badgeLargeLogo = $badgeLargeLogo; + } + + public function getBadgeLargeLogo() + { + return $this->badgeLargeLogo; + } + + public function setBadgeSmallLogo($badgeSmallLogo) + { + $this->badgeSmallLogo = $badgeSmallLogo; + } + + public function getBadgeSmallLogo() + { + return $this->badgeSmallLogo; + } + + public function setCaption($caption) + { + $this->caption = $caption; + } + + public function getCaption() + { + return $this->caption; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSponsorLogo($sponsorLogo) + { + $this->sponsorLogo = $sponsorLogo; + } + + public function getSponsorLogo() + { + return $this->sponsorLogo; + } + + public function setSponsorName($sponsorName) + { + $this->sponsorName = $sponsorName; + } + + public function getSponsorName() + { + return $this->sponsorName; + } + + public function setSponsorUrl($sponsorUrl) + { + $this->sponsorUrl = $sponsorUrl; + } + + public function getSponsorUrl() + { + return $this->sponsorUrl; + } +} + +class Google_Service_Orkut_BadgeList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Orkut_Badge'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Orkut_Comment extends Google_Collection +{ + protected $collection_key = 'links'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $actorDataType = ''; + public $content; + public $id; + protected $inReplyToType = 'Google_Service_Orkut_CommentInReplyTo'; + protected $inReplyToDataType = ''; + public $kind; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + public $published; + + public function setActor(Google_Service_Orkut_OrkutAuthorResource $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInReplyTo(Google_Service_Orkut_CommentInReplyTo $inReplyTo) + { + $this->inReplyTo = $inReplyTo; + } + + public function getInReplyTo() + { + return $this->inReplyTo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } +} + +class Google_Service_Orkut_CommentInReplyTo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $ref; + public $rel; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setRef($ref) + { + $this->ref = $ref; + } + + public function getRef() + { + return $this->ref; + } + + public function setRel($rel) + { + $this->rel = $rel; + } + + public function getRel() + { + return $this->rel; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Orkut_CommentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Orkut_Comment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $previousPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPreviousPageToken($previousPageToken) + { + $this->previousPageToken = $previousPageToken; + } + + public function getPreviousPageToken() + { + return $this->previousPageToken; + } +} + +class Google_Service_Orkut_Community extends Google_Collection +{ + protected $collection_key = 'moderators'; + protected $internal_gapi_mappings = array( + "coOwners" => "co_owners", + "creationDate" => "creation_date", + "memberCount" => "member_count", + "photoUrl" => "photo_url", + ); + public $category; + protected $coOwnersType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $coOwnersDataType = 'array'; + public $creationDate; + public $description; + public $id; + public $kind; + public $language; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + public $location; + public $memberCount; + protected $moderatorsType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $moderatorsDataType = 'array'; + public $name; + protected $ownerType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $ownerDataType = ''; + public $photoUrl; + + public function setCategory($category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setCoOwners($coOwners) + { + $this->coOwners = $coOwners; + } + + public function getCoOwners() + { + return $this->coOwners; + } + + public function setCreationDate($creationDate) + { + $this->creationDate = $creationDate; + } + + public function getCreationDate() + { + return $this->creationDate; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMemberCount($memberCount) + { + $this->memberCount = $memberCount; + } + + public function getMemberCount() + { + return $this->memberCount; + } + + public function setModerators($moderators) + { + $this->moderators = $moderators; + } + + public function getModerators() + { + return $this->moderators; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOwner(Google_Service_Orkut_OrkutAuthorResource $owner) + { + $this->owner = $owner; + } + + public function getOwner() + { + return $this->owner; + } + + public function setPhotoUrl($photoUrl) + { + $this->photoUrl = $photoUrl; + } + + public function getPhotoUrl() + { + return $this->photoUrl; + } +} + +class Google_Service_Orkut_CommunityList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Orkut_Community'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Orkut_CommunityMembers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $communityMembershipStatusType = 'Google_Service_Orkut_CommunityMembershipStatus'; + protected $communityMembershipStatusDataType = ''; + public $kind; + protected $personType = 'Google_Service_Orkut_OrkutActivitypersonResource'; + protected $personDataType = ''; + + public function setCommunityMembershipStatus(Google_Service_Orkut_CommunityMembershipStatus $communityMembershipStatus) + { + $this->communityMembershipStatus = $communityMembershipStatus; + } + + public function getCommunityMembershipStatus() + { + return $this->communityMembershipStatus; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPerson(Google_Service_Orkut_OrkutActivitypersonResource $person) + { + $this->person = $person; + } + + public function getPerson() + { + return $this->person; + } +} + +class Google_Service_Orkut_CommunityMembersList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $firstPageToken; + protected $itemsType = 'Google_Service_Orkut_CommunityMembers'; + protected $itemsDataType = 'array'; + public $kind; + public $lastPageToken; + public $nextPageToken; + public $prevPageToken; + + public function setFirstPageToken($firstPageToken) + { + $this->firstPageToken = $firstPageToken; + } + + public function getFirstPageToken() + { + return $this->firstPageToken; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPageToken($lastPageToken) + { + $this->lastPageToken = $lastPageToken; + } + + public function getLastPageToken() + { + return $this->lastPageToken; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Orkut_CommunityMembershipStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $canCreatePoll; + public $canCreateTopic; + public $canShout; + public $isCoOwner; + public $isFollowing; + public $isModerator; + public $isOwner; + public $isRestoreAvailable; + public $isTakebackAvailable; + public $kind; + public $status; + + public function setCanCreatePoll($canCreatePoll) + { + $this->canCreatePoll = $canCreatePoll; + } + + public function getCanCreatePoll() + { + return $this->canCreatePoll; + } + + public function setCanCreateTopic($canCreateTopic) + { + $this->canCreateTopic = $canCreateTopic; + } + + public function getCanCreateTopic() + { + return $this->canCreateTopic; + } + + public function setCanShout($canShout) + { + $this->canShout = $canShout; + } + + public function getCanShout() + { + return $this->canShout; + } + + public function setIsCoOwner($isCoOwner) + { + $this->isCoOwner = $isCoOwner; + } + + public function getIsCoOwner() + { + return $this->isCoOwner; + } + + public function setIsFollowing($isFollowing) + { + $this->isFollowing = $isFollowing; + } + + public function getIsFollowing() + { + return $this->isFollowing; + } + + public function setIsModerator($isModerator) + { + $this->isModerator = $isModerator; + } + + public function getIsModerator() + { + return $this->isModerator; + } + + public function setIsOwner($isOwner) + { + $this->isOwner = $isOwner; + } + + public function getIsOwner() + { + return $this->isOwner; + } + + public function setIsRestoreAvailable($isRestoreAvailable) + { + $this->isRestoreAvailable = $isRestoreAvailable; + } + + public function getIsRestoreAvailable() + { + return $this->isRestoreAvailable; + } + + public function setIsTakebackAvailable($isTakebackAvailable) + { + $this->isTakebackAvailable = $isTakebackAvailable; + } + + public function getIsTakebackAvailable() + { + return $this->isTakebackAvailable; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Orkut_CommunityMessage extends Google_Collection +{ + protected $collection_key = 'links'; + protected $internal_gapi_mappings = array( + ); + public $addedDate; + protected $authorType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $authorDataType = ''; + public $body; + public $id; + public $isSpam; + public $kind; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + public $subject; + + public function setAddedDate($addedDate) + { + $this->addedDate = $addedDate; + } + + public function getAddedDate() + { + return $this->addedDate; + } + + public function setAuthor(Google_Service_Orkut_OrkutAuthorResource $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBody($body) + { + $this->body = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsSpam($isSpam) + { + $this->isSpam = $isSpam; + } + + public function getIsSpam() + { + return $this->isSpam; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setSubject($subject) + { + $this->subject = $subject; + } + + public function getSubject() + { + return $this->subject; + } +} + +class Google_Service_Orkut_CommunityMessageList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $firstPageToken; + protected $itemsType = 'Google_Service_Orkut_CommunityMessage'; + protected $itemsDataType = 'array'; + public $kind; + public $lastPageToken; + public $nextPageToken; + public $prevPageToken; + + public function setFirstPageToken($firstPageToken) + { + $this->firstPageToken = $firstPageToken; + } + + public function getFirstPageToken() + { + return $this->firstPageToken; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPageToken($lastPageToken) + { + $this->lastPageToken = $lastPageToken; + } + + public function getLastPageToken() + { + return $this->lastPageToken; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Orkut_CommunityPoll extends Google_Collection +{ + protected $collection_key = 'votedOptions'; + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $authorDataType = ''; + public $communityId; + public $creationTime; + public $description; + public $endingTime; + public $hasVoted; + public $id; + protected $imageType = 'Google_Service_Orkut_CommunityPollImage'; + protected $imageDataType = ''; + public $isClosed; + public $isMultipleAnswers; + public $isOpenForVoting; + public $isRestricted; + public $isSpam; + public $isUsersVotePublic; + public $isVotingAllowedForNonMembers; + public $kind; + public $lastUpdate; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + protected $optionsType = 'Google_Service_Orkut_OrkutCommunitypolloptionResource'; + protected $optionsDataType = 'array'; + public $question; + public $totalNumberOfVotes; + public $votedOptions; + + public function setAuthor(Google_Service_Orkut_OrkutAuthorResource $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setCommunityId($communityId) + { + $this->communityId = $communityId; + } + + public function getCommunityId() + { + return $this->communityId; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEndingTime($endingTime) + { + $this->endingTime = $endingTime; + } + + public function getEndingTime() + { + return $this->endingTime; + } + + public function setHasVoted($hasVoted) + { + $this->hasVoted = $hasVoted; + } + + public function getHasVoted() + { + return $this->hasVoted; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Orkut_CommunityPollImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setIsClosed($isClosed) + { + $this->isClosed = $isClosed; + } + + public function getIsClosed() + { + return $this->isClosed; + } + + public function setIsMultipleAnswers($isMultipleAnswers) + { + $this->isMultipleAnswers = $isMultipleAnswers; + } + + public function getIsMultipleAnswers() + { + return $this->isMultipleAnswers; + } + + public function setIsOpenForVoting($isOpenForVoting) + { + $this->isOpenForVoting = $isOpenForVoting; + } + + public function getIsOpenForVoting() + { + return $this->isOpenForVoting; + } + + public function setIsRestricted($isRestricted) + { + $this->isRestricted = $isRestricted; + } + + public function getIsRestricted() + { + return $this->isRestricted; + } + + public function setIsSpam($isSpam) + { + $this->isSpam = $isSpam; + } + + public function getIsSpam() + { + return $this->isSpam; + } + + public function setIsUsersVotePublic($isUsersVotePublic) + { + $this->isUsersVotePublic = $isUsersVotePublic; + } + + public function getIsUsersVotePublic() + { + return $this->isUsersVotePublic; + } + + public function setIsVotingAllowedForNonMembers($isVotingAllowedForNonMembers) + { + $this->isVotingAllowedForNonMembers = $isVotingAllowedForNonMembers; + } + + public function getIsVotingAllowedForNonMembers() + { + return $this->isVotingAllowedForNonMembers; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdate($lastUpdate) + { + $this->lastUpdate = $lastUpdate; + } + + public function getLastUpdate() + { + return $this->lastUpdate; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setOptions($options) + { + $this->options = $options; + } + + public function getOptions() + { + return $this->options; + } + + public function setQuestion($question) + { + $this->question = $question; + } + + public function getQuestion() + { + return $this->question; + } + + public function setTotalNumberOfVotes($totalNumberOfVotes) + { + $this->totalNumberOfVotes = $totalNumberOfVotes; + } + + public function getTotalNumberOfVotes() + { + return $this->totalNumberOfVotes; + } + + public function setVotedOptions($votedOptions) + { + $this->votedOptions = $votedOptions; + } + + public function getVotedOptions() + { + return $this->votedOptions; + } +} + +class Google_Service_Orkut_CommunityPollComment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $addedDate; + protected $authorType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $authorDataType = ''; + public $body; + public $id; + public $kind; + + public function setAddedDate($addedDate) + { + $this->addedDate = $addedDate; + } + + public function getAddedDate() + { + return $this->addedDate; + } + + public function setAuthor(Google_Service_Orkut_OrkutAuthorResource $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBody($body) + { + $this->body = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Orkut_CommunityPollCommentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $firstPageToken; + protected $itemsType = 'Google_Service_Orkut_CommunityPollComment'; + protected $itemsDataType = 'array'; + public $kind; + public $lastPageToken; + public $nextPageToken; + public $prevPageToken; + + public function setFirstPageToken($firstPageToken) + { + $this->firstPageToken = $firstPageToken; + } + + public function getFirstPageToken() + { + return $this->firstPageToken; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPageToken($lastPageToken) + { + $this->lastPageToken = $lastPageToken; + } + + public function getLastPageToken() + { + return $this->lastPageToken; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Orkut_CommunityPollImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_CommunityPollList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $firstPageToken; + protected $itemsType = 'Google_Service_Orkut_CommunityPoll'; + protected $itemsDataType = 'array'; + public $kind; + public $lastPageToken; + public $nextPageToken; + public $prevPageToken; + + public function setFirstPageToken($firstPageToken) + { + $this->firstPageToken = $firstPageToken; + } + + public function getFirstPageToken() + { + return $this->firstPageToken; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPageToken($lastPageToken) + { + $this->lastPageToken = $lastPageToken; + } + + public function getLastPageToken() + { + return $this->lastPageToken; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Orkut_CommunityPollVote extends Google_Collection +{ + protected $collection_key = 'optionIds'; + protected $internal_gapi_mappings = array( + ); + public $isVotevisible; + public $kind; + public $optionIds; + + public function setIsVotevisible($isVotevisible) + { + $this->isVotevisible = $isVotevisible; + } + + public function getIsVotevisible() + { + return $this->isVotevisible; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOptionIds($optionIds) + { + $this->optionIds = $optionIds; + } + + public function getOptionIds() + { + return $this->optionIds; + } +} + +class Google_Service_Orkut_CommunityTopic extends Google_Collection +{ + protected $collection_key = 'messages'; + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Orkut_OrkutAuthorResource'; + protected $authorDataType = ''; + public $body; + public $id; + public $isClosed; + public $kind; + public $lastUpdate; + public $latestMessageSnippet; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + protected $messagesType = 'Google_Service_Orkut_CommunityMessage'; + protected $messagesDataType = 'array'; + public $numberOfReplies; + public $title; + + public function setAuthor(Google_Service_Orkut_OrkutAuthorResource $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBody($body) + { + $this->body = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsClosed($isClosed) + { + $this->isClosed = $isClosed; + } + + public function getIsClosed() + { + return $this->isClosed; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastUpdate($lastUpdate) + { + $this->lastUpdate = $lastUpdate; + } + + public function getLastUpdate() + { + return $this->lastUpdate; + } + + public function setLatestMessageSnippet($latestMessageSnippet) + { + $this->latestMessageSnippet = $latestMessageSnippet; + } + + public function getLatestMessageSnippet() + { + return $this->latestMessageSnippet; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setMessages($messages) + { + $this->messages = $messages; + } + + public function getMessages() + { + return $this->messages; + } + + public function setNumberOfReplies($numberOfReplies) + { + $this->numberOfReplies = $numberOfReplies; + } + + public function getNumberOfReplies() + { + return $this->numberOfReplies; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Orkut_CommunityTopicList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $firstPageToken; + protected $itemsType = 'Google_Service_Orkut_CommunityTopic'; + protected $itemsDataType = 'array'; + public $kind; + public $lastPageToken; + public $nextPageToken; + public $prevPageToken; + + public function setFirstPageToken($firstPageToken) + { + $this->firstPageToken = $firstPageToken; + } + + public function getFirstPageToken() + { + return $this->firstPageToken; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastPageToken($lastPageToken) + { + $this->lastPageToken = $lastPageToken; + } + + public function getLastPageToken() + { + return $this->lastPageToken; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } +} + +class Google_Service_Orkut_Counters extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Orkut_OrkutCounterResource'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Orkut_OrkutActivityobjectsResource extends Google_Collection +{ + protected $collection_key = 'links'; + protected $internal_gapi_mappings = array( + ); + protected $communityType = 'Google_Service_Orkut_Community'; + protected $communityDataType = ''; + public $content; + public $displayName; + public $id; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + public $objectType; + protected $personType = 'Google_Service_Orkut_OrkutActivitypersonResource'; + protected $personDataType = ''; + + public function setCommunity(Google_Service_Orkut_Community $community) + { + $this->community = $community; + } + + public function getCommunity() + { + return $this->community; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setPerson(Google_Service_Orkut_OrkutActivitypersonResource $person) + { + $this->person = $person; + } + + public function getPerson() + { + return $this->person; + } +} + +class Google_Service_Orkut_OrkutActivitypersonResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $birthday; + public $gender; + public $id; + protected $imageType = 'Google_Service_Orkut_OrkutActivitypersonResourceImage'; + protected $imageDataType = ''; + protected $nameType = 'Google_Service_Orkut_OrkutActivitypersonResourceName'; + protected $nameDataType = ''; + public $url; + + public function setBirthday($birthday) + { + $this->birthday = $birthday; + } + + public function getBirthday() + { + return $this->birthday; + } + + public function setGender($gender) + { + $this->gender = $gender; + } + + public function getGender() + { + return $this->gender; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Orkut_OrkutActivitypersonResourceImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setName(Google_Service_Orkut_OrkutActivitypersonResourceName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_OrkutActivitypersonResourceImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_OrkutActivitypersonResourceName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $givenName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } +} + +class Google_Service_Orkut_OrkutAuthorResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Orkut_OrkutAuthorResourceImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Orkut_OrkutAuthorResourceImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_OrkutAuthorResourceImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_OrkutCommunitypolloptionResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + protected $imageType = 'Google_Service_Orkut_OrkutCommunitypolloptionResourceImage'; + protected $imageDataType = ''; + public $numberOfVotes; + public $optionId; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setImage(Google_Service_Orkut_OrkutCommunitypolloptionResourceImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setNumberOfVotes($numberOfVotes) + { + $this->numberOfVotes = $numberOfVotes; + } + + public function getNumberOfVotes() + { + return $this->numberOfVotes; + } + + public function setOptionId($optionId) + { + $this->optionId = $optionId; + } + + public function getOptionId() + { + return $this->optionId; + } +} + +class Google_Service_Orkut_OrkutCommunitypolloptionResourceImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Orkut_OrkutCounterResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $linkType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linkDataType = ''; + public $name; + public $total; + + public function setLink(Google_Service_Orkut_OrkutLinkResource $link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setTotal($total) + { + $this->total = $total; + } + + public function getTotal() + { + return $this->total; + } +} + +class Google_Service_Orkut_OrkutLinkResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $href; + public $rel; + public $title; + public $type; + + public function setHref($href) + { + $this->href = $href; + } + + public function getHref() + { + return $this->href; + } + + public function setRel($rel) + { + $this->rel = $rel; + } + + public function getRel() + { + return $this->rel; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Orkut_Visibility extends Google_Collection +{ + protected $collection_key = 'links'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $linksType = 'Google_Service_Orkut_OrkutLinkResource'; + protected $linksDataType = 'array'; + public $visibility; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Pagespeedonline.php b/vendor/google/apiclient/src/Google/Service/Pagespeedonline.php new file mode 100644 index 0000000..4b5c3d5 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Pagespeedonline.php @@ -0,0 +1,798 @@ + + * Lets you analyze the performance of a web page and get tailored suggestions to make that page faster. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Pagespeedonline extends Google_Service +{ + + + public $pagespeedapi; + + + /** + * Constructs the internal representation of the Pagespeedonline service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'pagespeedonline/v1/'; + $this->version = 'v1'; + $this->serviceName = 'pagespeedonline'; + + $this->pagespeedapi = new Google_Service_Pagespeedonline_Pagespeedapi_Resource( + $this, + $this->serviceName, + 'pagespeedapi', + array( + 'methods' => array( + 'runpagespeed' => array( + 'path' => 'runPagespeed', + 'httpMethod' => 'GET', + 'parameters' => array( + 'url' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'screenshot' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'rule' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'strategy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filter_third_party_resources' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "pagespeedapi" collection of methods. + * Typical usage is: + * + * $pagespeedonlineService = new Google_Service_Pagespeedonline(...); + * $pagespeedapi = $pagespeedonlineService->pagespeedapi; + * + */ +class Google_Service_Pagespeedonline_Pagespeedapi_Resource extends Google_Service_Resource +{ + + /** + * Runs Page Speed analysis on the page at the specified URL, and returns a Page + * Speed score, a list of suggestions to make that page faster, and other + * information. (pagespeedapi.runpagespeed) + * + * @param string $url + * The URL to fetch and analyze + * @param array $optParams Optional parameters. + * + * @opt_param bool screenshot + * Indicates if binary data containing a screenshot should be included + * @opt_param string locale + * The locale used to localize formatted results + * @opt_param string rule + * A Page Speed rule to run; if none are given, all rules are run + * @opt_param string strategy + * The analysis strategy to use + * @opt_param bool filter_third_party_resources + * Indicates if third party resources should be filtered out before PageSpeed analysis. + * @return Google_Service_Pagespeedonline_Result + */ + public function runpagespeed($url, $optParams = array()) + { + $params = array('url' => $url); + $params = array_merge($params, $optParams); + return $this->call('runpagespeed', array($params), "Google_Service_Pagespeedonline_Result"); + } +} + + + + +class Google_Service_Pagespeedonline_Result extends Google_Collection +{ + protected $collection_key = 'invalidRules'; + protected $internal_gapi_mappings = array( + ); + protected $formattedResultsType = 'Google_Service_Pagespeedonline_ResultFormattedResults'; + protected $formattedResultsDataType = ''; + public $id; + public $invalidRules; + public $kind; + protected $pageStatsType = 'Google_Service_Pagespeedonline_ResultPageStats'; + protected $pageStatsDataType = ''; + public $responseCode; + public $score; + protected $screenshotType = 'Google_Service_Pagespeedonline_ResultScreenshot'; + protected $screenshotDataType = ''; + public $title; + protected $versionType = 'Google_Service_Pagespeedonline_ResultVersion'; + protected $versionDataType = ''; + + public function setFormattedResults(Google_Service_Pagespeedonline_ResultFormattedResults $formattedResults) + { + $this->formattedResults = $formattedResults; + } + + public function getFormattedResults() + { + return $this->formattedResults; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInvalidRules($invalidRules) + { + $this->invalidRules = $invalidRules; + } + + public function getInvalidRules() + { + return $this->invalidRules; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPageStats(Google_Service_Pagespeedonline_ResultPageStats $pageStats) + { + $this->pageStats = $pageStats; + } + + public function getPageStats() + { + return $this->pageStats; + } + + public function setResponseCode($responseCode) + { + $this->responseCode = $responseCode; + } + + public function getResponseCode() + { + return $this->responseCode; + } + + public function setScore($score) + { + $this->score = $score; + } + + public function getScore() + { + return $this->score; + } + + public function setScreenshot(Google_Service_Pagespeedonline_ResultScreenshot $screenshot) + { + $this->screenshot = $screenshot; + } + + public function getScreenshot() + { + return $this->screenshot; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setVersion(Google_Service_Pagespeedonline_ResultVersion $version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResults extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $locale; + protected $ruleResultsType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElement'; + protected $ruleResultsDataType = 'map'; + + public function setLocale($locale) + { + $this->locale = $locale; + } + + public function getLocale() + { + return $this->locale; + } + + public function setRuleResults($ruleResults) + { + $this->ruleResults = $ruleResults; + } + + public function getRuleResults() + { + return $this->ruleResults; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResults extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElement extends Google_Collection +{ + protected $collection_key = 'urlBlocks'; + protected $internal_gapi_mappings = array( + ); + public $localizedRuleName; + public $ruleImpact; + protected $urlBlocksType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocks'; + protected $urlBlocksDataType = 'array'; + + public function setLocalizedRuleName($localizedRuleName) + { + $this->localizedRuleName = $localizedRuleName; + } + + public function getLocalizedRuleName() + { + return $this->localizedRuleName; + } + + public function setRuleImpact($ruleImpact) + { + $this->ruleImpact = $ruleImpact; + } + + public function getRuleImpact() + { + return $this->ruleImpact; + } + + public function setUrlBlocks($urlBlocks) + { + $this->urlBlocks = $urlBlocks; + } + + public function getUrlBlocks() + { + return $this->urlBlocks; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocks extends Google_Collection +{ + protected $collection_key = 'urls'; + protected $internal_gapi_mappings = array( + ); + protected $headerType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksHeader'; + protected $headerDataType = ''; + protected $urlsType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrls'; + protected $urlsDataType = 'array'; + + public function setHeader(Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksHeader $header) + { + $this->header = $header; + } + + public function getHeader() + { + return $this->header; + } + + public function setUrls($urls) + { + $this->urls = $urls; + } + + public function getUrls() + { + return $this->urls; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksHeader extends Google_Collection +{ + protected $collection_key = 'args'; + protected $internal_gapi_mappings = array( + ); + protected $argsType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksHeaderArgs'; + protected $argsDataType = 'array'; + public $format; + + public function setArgs($args) + { + $this->args = $args; + } + + public function getArgs() + { + return $this->args; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksHeaderArgs extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrls extends Google_Collection +{ + protected $collection_key = 'details'; + protected $internal_gapi_mappings = array( + ); + protected $detailsType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetails'; + protected $detailsDataType = 'array'; + protected $resultType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResult'; + protected $resultDataType = ''; + + public function setDetails($details) + { + $this->details = $details; + } + + public function getDetails() + { + return $this->details; + } + + public function setResult(Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResult $result) + { + $this->result = $result; + } + + public function getResult() + { + return $this->result; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetails extends Google_Collection +{ + protected $collection_key = 'args'; + protected $internal_gapi_mappings = array( + ); + protected $argsType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetailsArgs'; + protected $argsDataType = 'array'; + public $format; + + public function setArgs($args) + { + $this->args = $args; + } + + public function getArgs() + { + return $this->args; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetailsArgs extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResult extends Google_Collection +{ + protected $collection_key = 'args'; + protected $internal_gapi_mappings = array( + ); + protected $argsType = 'Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResultArgs'; + protected $argsDataType = 'array'; + public $format; + + public function setArgs($args) + { + $this->args = $args; + } + + public function getArgs() + { + return $this->args; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } +} + +class Google_Service_Pagespeedonline_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResultArgs extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Pagespeedonline_ResultPageStats extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $cssResponseBytes; + public $flashResponseBytes; + public $htmlResponseBytes; + public $imageResponseBytes; + public $javascriptResponseBytes; + public $numberCssResources; + public $numberHosts; + public $numberJsResources; + public $numberResources; + public $numberStaticResources; + public $otherResponseBytes; + public $textResponseBytes; + public $totalRequestBytes; + + public function setCssResponseBytes($cssResponseBytes) + { + $this->cssResponseBytes = $cssResponseBytes; + } + + public function getCssResponseBytes() + { + return $this->cssResponseBytes; + } + + public function setFlashResponseBytes($flashResponseBytes) + { + $this->flashResponseBytes = $flashResponseBytes; + } + + public function getFlashResponseBytes() + { + return $this->flashResponseBytes; + } + + public function setHtmlResponseBytes($htmlResponseBytes) + { + $this->htmlResponseBytes = $htmlResponseBytes; + } + + public function getHtmlResponseBytes() + { + return $this->htmlResponseBytes; + } + + public function setImageResponseBytes($imageResponseBytes) + { + $this->imageResponseBytes = $imageResponseBytes; + } + + public function getImageResponseBytes() + { + return $this->imageResponseBytes; + } + + public function setJavascriptResponseBytes($javascriptResponseBytes) + { + $this->javascriptResponseBytes = $javascriptResponseBytes; + } + + public function getJavascriptResponseBytes() + { + return $this->javascriptResponseBytes; + } + + public function setNumberCssResources($numberCssResources) + { + $this->numberCssResources = $numberCssResources; + } + + public function getNumberCssResources() + { + return $this->numberCssResources; + } + + public function setNumberHosts($numberHosts) + { + $this->numberHosts = $numberHosts; + } + + public function getNumberHosts() + { + return $this->numberHosts; + } + + public function setNumberJsResources($numberJsResources) + { + $this->numberJsResources = $numberJsResources; + } + + public function getNumberJsResources() + { + return $this->numberJsResources; + } + + public function setNumberResources($numberResources) + { + $this->numberResources = $numberResources; + } + + public function getNumberResources() + { + return $this->numberResources; + } + + public function setNumberStaticResources($numberStaticResources) + { + $this->numberStaticResources = $numberStaticResources; + } + + public function getNumberStaticResources() + { + return $this->numberStaticResources; + } + + public function setOtherResponseBytes($otherResponseBytes) + { + $this->otherResponseBytes = $otherResponseBytes; + } + + public function getOtherResponseBytes() + { + return $this->otherResponseBytes; + } + + public function setTextResponseBytes($textResponseBytes) + { + $this->textResponseBytes = $textResponseBytes; + } + + public function getTextResponseBytes() + { + return $this->textResponseBytes; + } + + public function setTotalRequestBytes($totalRequestBytes) + { + $this->totalRequestBytes = $totalRequestBytes; + } + + public function getTotalRequestBytes() + { + return $this->totalRequestBytes; + } +} + +class Google_Service_Pagespeedonline_ResultScreenshot extends Google_Model +{ + protected $internal_gapi_mappings = array( + "mimeType" => "mime_type", + ); + public $data; + public $height; + public $mimeType; + public $width; + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Pagespeedonline_ResultVersion extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $major; + public $minor; + + public function setMajor($major) + { + $this->major = $major; + } + + public function getMajor() + { + return $this->major; + } + + public function setMinor($minor) + { + $this->minor = $minor; + } + + public function getMinor() + { + return $this->minor; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Plus.php b/vendor/google/apiclient/src/Google/Service/Plus.php new file mode 100644 index 0000000..3cbf0b4 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Plus.php @@ -0,0 +1,3956 @@ + + * The Google+ API enables developers to build on top of the Google+ platform. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Plus extends Google_Service +{ + /** Know your basic profile info and list of people in your circles.. */ + const PLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; + /** Know who you are on Google. */ + const PLUS_ME = "https://www.googleapis.com/auth/plus.me"; + /** View your email address. */ + const USERINFO_EMAIL = "https://www.googleapis.com/auth/userinfo.email"; + /** View your basic profile info. */ + const USERINFO_PROFILE = "https://www.googleapis.com/auth/userinfo.profile"; + + public $activities; + public $comments; + public $moments; + public $people; + + + /** + * Constructs the internal representation of the Plus service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'plus/v1/'; + $this->version = 'v1'; + $this->serviceName = 'plus'; + + $this->activities = new Google_Service_Plus_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'get' => array( + 'path' => 'activities/{activityId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/activities/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'search' => array( + 'path' => 'activities', + 'httpMethod' => 'GET', + 'parameters' => array( + 'query' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->comments = new Google_Service_Plus_Comments_Resource( + $this, + $this->serviceName, + 'comments', + array( + 'methods' => array( + 'get' => array( + 'path' => 'comments/{commentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'activities/{activityId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->moments = new Google_Service_Plus_Moments_Resource( + $this, + $this->serviceName, + 'moments', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'people/{userId}/moments/{collection}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'debug' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/moments/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'targetUrl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'remove' => array( + 'path' => 'moments/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->people = new Google_Service_Plus_People_Resource( + $this, + $this->serviceName, + 'people', + array( + 'methods' => array( + 'get' => array( + 'path' => 'people/{userId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/people/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'listByActivity' => array( + 'path' => 'activities/{activityId}/people/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'search' => array( + 'path' => 'people', + 'httpMethod' => 'GET', + 'parameters' => array( + 'query' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'language' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $plusService = new Google_Service_Plus(...); + * $activities = $plusService->activities; + * + */ +class Google_Service_Plus_Activities_Resource extends Google_Service_Resource +{ + + /** + * Get an activity. (activities.get) + * + * @param string $activityId + * The ID of the activity to get. + * @param array $optParams Optional parameters. + * @return Google_Service_Plus_Activity + */ + public function get($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Plus_Activity"); + } + /** + * List all of the activities in the specified collection for a particular user. + * (activities.listActivities) + * + * @param string $userId + * The ID of the user to get activities for. The special value "me" can be used to indicate the + * authenticated user. + * @param string $collection + * The collection of activities to list. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of activities to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_Plus_ActivityFeed + */ + public function listActivities($userId, $collection, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Plus_ActivityFeed"); + } + /** + * Search public activities. (activities.search) + * + * @param string $query + * Full-text search query string. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * Specifies how to order search results. + * @opt_param string 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. This + * token can be of any length. + * @opt_param string maxResults + * The maximum number of activities to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @opt_param string language + * Specify the preferred language to search with. See search language codes for available values. + * @return Google_Service_Plus_ActivityFeed + */ + public function search($query, $optParams = array()) + { + $params = array('query' => $query); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Plus_ActivityFeed"); + } +} + +/** + * The "comments" collection of methods. + * Typical usage is: + * + * $plusService = new Google_Service_Plus(...); + * $comments = $plusService->comments; + * + */ +class Google_Service_Plus_Comments_Resource extends Google_Service_Resource +{ + + /** + * Get a comment. (comments.get) + * + * @param string $commentId + * The ID of the comment to get. + * @param array $optParams Optional parameters. + * @return Google_Service_Plus_Comment + */ + public function get($commentId, $optParams = array()) + { + $params = array('commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Plus_Comment"); + } + /** + * List all of the comments for an activity. (comments.listComments) + * + * @param string $activityId + * The ID of the activity to get comments for. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string sortOrder + * The order in which to sort the list of comments. + * @opt_param string maxResults + * The maximum number of comments to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_Plus_CommentFeed + */ + public function listComments($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Plus_CommentFeed"); + } +} + +/** + * The "moments" collection of methods. + * Typical usage is: + * + * $plusService = new Google_Service_Plus(...); + * $moments = $plusService->moments; + * + */ +class Google_Service_Plus_Moments_Resource extends Google_Service_Resource +{ + + /** + * Record a moment representing a user's action such as making a purchase or + * commenting on a blog. (moments.insert) + * + * @param string $userId + * The ID of the user to record actions for. The only valid values are "me" and the ID of the + * authenticated user. + * @param string $collection + * The collection to which to write moments. + * @param Google_Moment $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool debug + * Return the moment as written. Should be used only for debugging. + * @return Google_Service_Plus_Moment + */ + public function insert($userId, $collection, Google_Service_Plus_Moment $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Plus_Moment"); + } + /** + * List all of the moments for a particular user. (moments.listMoments) + * + * @param string $userId + * The ID of the user to get moments for. The special value "me" can be used to indicate the + * authenticated user. + * @param string $collection + * The collection of moments to list. + * @param array $optParams Optional parameters. + * + * @opt_param string maxResults + * The maximum number of moments to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @opt_param string 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. + * @opt_param string targetUrl + * Only moments containing this targetUrl will be returned. + * @opt_param string type + * Only moments of this type will be returned. + * @return Google_Service_Plus_MomentsFeed + */ + public function listMoments($userId, $collection, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Plus_MomentsFeed"); + } + /** + * Delete a moment. (moments.remove) + * + * @param string $id + * The ID of the moment to delete. + * @param array $optParams Optional parameters. + */ + public function remove($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('remove', array($params)); + } +} + +/** + * The "people" collection of methods. + * Typical usage is: + * + * $plusService = new Google_Service_Plus(...); + * $people = $plusService->people; + * + */ +class Google_Service_Plus_People_Resource extends Google_Service_Resource +{ + + /** + * Get a person's profile. If your app uses scope + * https://www.googleapis.com/auth/plus.login, this method is guaranteed to + * return ageRange and language. (people.get) + * + * @param string $userId + * The ID of the person to get the profile for. The special value "me" can be used to indicate the + * authenticated user. + * @param array $optParams Optional parameters. + * @return Google_Service_Plus_Person + */ + public function get($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Plus_Person"); + } + /** + * List all of the people in the specified collection. (people.listPeople) + * + * @param string $userId + * Get the collection of people for the person identified. Use "me" to indicate the authenticated + * user. + * @param string $collection + * The collection of people to list. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * The order to return people in. + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of people to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_Plus_PeopleFeed + */ + public function listPeople($userId, $collection, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Plus_PeopleFeed"); + } + /** + * List all of the people in the specified collection for a particular activity. + * (people.listByActivity) + * + * @param string $activityId + * The ID of the activity to get the list of people for. + * @param string $collection + * The collection of people to list. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of people to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_Plus_PeopleFeed + */ + public function listByActivity($activityId, $collection, $optParams = array()) + { + $params = array('activityId' => $activityId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('listByActivity', array($params), "Google_Service_Plus_PeopleFeed"); + } + /** + * Search all public profiles. (people.search) + * + * @param string $query + * Specify a query string for full text search of public text in all profiles. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. This + * token can be of any length. + * @opt_param string maxResults + * The maximum number of people to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @opt_param string language + * Specify the preferred language to search with. See search language codes for available values. + * @return Google_Service_Plus_PeopleFeed + */ + public function search($query, $optParams = array()) + { + $params = array('query' => $query); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_Plus_PeopleFeed"); + } +} + + + + +class Google_Service_Plus_Acl extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $description; + protected $itemsType = 'Google_Service_Plus_PlusAclentryResource'; + protected $itemsDataType = 'array'; + public $kind; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Plus_Activity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accessType = 'Google_Service_Plus_Acl'; + protected $accessDataType = ''; + protected $actorType = 'Google_Service_Plus_ActivityActor'; + protected $actorDataType = ''; + public $address; + public $annotation; + public $crosspostSource; + public $etag; + public $geocode; + public $id; + public $kind; + protected $locationType = 'Google_Service_Plus_Place'; + protected $locationDataType = ''; + protected $objectType = 'Google_Service_Plus_ActivityObject'; + protected $objectDataType = ''; + public $placeId; + public $placeName; + protected $providerType = 'Google_Service_Plus_ActivityProvider'; + protected $providerDataType = ''; + public $published; + public $radius; + public $title; + public $updated; + public $url; + public $verb; + + public function setAccess(Google_Service_Plus_Acl $access) + { + $this->access = $access; + } + + public function getAccess() + { + return $this->access; + } + + public function setActor(Google_Service_Plus_ActivityActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setAnnotation($annotation) + { + $this->annotation = $annotation; + } + + public function getAnnotation() + { + return $this->annotation; + } + + public function setCrosspostSource($crosspostSource) + { + $this->crosspostSource = $crosspostSource; + } + + public function getCrosspostSource() + { + return $this->crosspostSource; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGeocode($geocode) + { + $this->geocode = $geocode; + } + + public function getGeocode() + { + return $this->geocode; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation(Google_Service_Plus_Place $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setObject(Google_Service_Plus_ActivityObject $object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setPlaceId($placeId) + { + $this->placeId = $placeId; + } + + public function getPlaceId() + { + return $this->placeId; + } + + public function setPlaceName($placeName) + { + $this->placeName = $placeName; + } + + public function getPlaceName() + { + return $this->placeName; + } + + public function setProvider(Google_Service_Plus_ActivityProvider $provider) + { + $this->provider = $provider; + } + + public function getProvider() + { + return $this->provider; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setRadius($radius) + { + $this->radius = $radius; + } + + public function getRadius() + { + return $this->radius; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_Plus_ActivityActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Plus_ActivityActorImage'; + protected $imageDataType = ''; + protected $nameType = 'Google_Service_Plus_ActivityActorName'; + protected $nameDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Plus_ActivityActorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setName(Google_Service_Plus_ActivityActorName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityActorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityActorName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $givenName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } +} + +class Google_Service_Plus_ActivityFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + protected $itemsType = 'Google_Service_Plus_Activity'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + public $title; + public $updated; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Plus_ActivityObject extends Google_Collection +{ + protected $collection_key = 'attachments'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_Plus_ActivityObjectActor'; + protected $actorDataType = ''; + protected $attachmentsType = 'Google_Service_Plus_ActivityObjectAttachments'; + protected $attachmentsDataType = 'array'; + public $content; + public $id; + public $objectType; + public $originalContent; + protected $plusonersType = 'Google_Service_Plus_ActivityObjectPlusoners'; + protected $plusonersDataType = ''; + protected $repliesType = 'Google_Service_Plus_ActivityObjectReplies'; + protected $repliesDataType = ''; + protected $resharersType = 'Google_Service_Plus_ActivityObjectResharers'; + protected $resharersDataType = ''; + public $url; + + public function setActor(Google_Service_Plus_ActivityObjectActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setAttachments($attachments) + { + $this->attachments = $attachments; + } + + public function getAttachments() + { + return $this->attachments; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOriginalContent($originalContent) + { + $this->originalContent = $originalContent; + } + + public function getOriginalContent() + { + return $this->originalContent; + } + + public function setPlusoners(Google_Service_Plus_ActivityObjectPlusoners $plusoners) + { + $this->plusoners = $plusoners; + } + + public function getPlusoners() + { + return $this->plusoners; + } + + public function setReplies(Google_Service_Plus_ActivityObjectReplies $replies) + { + $this->replies = $replies; + } + + public function getReplies() + { + return $this->replies; + } + + public function setResharers(Google_Service_Plus_ActivityObjectResharers $resharers) + { + $this->resharers = $resharers; + } + + public function getResharers() + { + return $this->resharers; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityObjectActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Plus_ActivityObjectActorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Plus_ActivityObjectActorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityObjectActorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityObjectAttachments extends Google_Collection +{ + protected $collection_key = 'thumbnails'; + protected $internal_gapi_mappings = array( + ); + public $content; + public $displayName; + protected $embedType = 'Google_Service_Plus_ActivityObjectAttachmentsEmbed'; + protected $embedDataType = ''; + protected $fullImageType = 'Google_Service_Plus_ActivityObjectAttachmentsFullImage'; + protected $fullImageDataType = ''; + public $id; + protected $imageType = 'Google_Service_Plus_ActivityObjectAttachmentsImage'; + protected $imageDataType = ''; + public $objectType; + protected $thumbnailsType = 'Google_Service_Plus_ActivityObjectAttachmentsThumbnails'; + protected $thumbnailsDataType = 'array'; + public $url; + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmbed(Google_Service_Plus_ActivityObjectAttachmentsEmbed $embed) + { + $this->embed = $embed; + } + + public function getEmbed() + { + return $this->embed; + } + + public function setFullImage(Google_Service_Plus_ActivityObjectAttachmentsFullImage $fullImage) + { + $this->fullImage = $fullImage; + } + + public function getFullImage() + { + return $this->fullImage; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Plus_ActivityObjectAttachmentsImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setThumbnails($thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityObjectAttachmentsEmbed extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $url; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityObjectAttachmentsFullImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Plus_ActivityObjectAttachmentsImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Plus_ActivityObjectAttachmentsThumbnails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + protected $imageType = 'Google_Service_Plus_ActivityObjectAttachmentsThumbnailsImage'; + protected $imageDataType = ''; + public $url; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setImage(Google_Service_Plus_ActivityObjectAttachmentsThumbnailsImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_ActivityObjectAttachmentsThumbnailsImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Plus_ActivityObjectPlusoners extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Plus_ActivityObjectReplies extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Plus_ActivityObjectResharers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Plus_ActivityProvider extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $title; + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_Plus_Comment extends Google_Collection +{ + protected $collection_key = 'inReplyTo'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_Plus_CommentActor'; + protected $actorDataType = ''; + public $etag; + public $id; + protected $inReplyToType = 'Google_Service_Plus_CommentInReplyTo'; + protected $inReplyToDataType = 'array'; + public $kind; + protected $objectType = 'Google_Service_Plus_CommentObject'; + protected $objectDataType = ''; + protected $plusonersType = 'Google_Service_Plus_CommentPlusoners'; + protected $plusonersDataType = ''; + public $published; + public $selfLink; + public $updated; + public $verb; + + public function setActor(Google_Service_Plus_CommentActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInReplyTo($inReplyTo) + { + $this->inReplyTo = $inReplyTo; + } + + public function getInReplyTo() + { + return $this->inReplyTo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setObject(Google_Service_Plus_CommentObject $object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setPlusoners(Google_Service_Plus_CommentPlusoners $plusoners) + { + $this->plusoners = $plusoners; + } + + public function getPlusoners() + { + return $this->plusoners; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_Plus_CommentActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_Plus_CommentActorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Plus_CommentActorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_CommentActorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_CommentFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + protected $itemsType = 'Google_Service_Plus_Comment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $title; + public $updated; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Plus_CommentInReplyTo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $url; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_CommentObject extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $content; + public $objectType; + public $originalContent; + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOriginalContent($originalContent) + { + $this->originalContent = $originalContent; + } + + public function getOriginalContent() + { + return $this->originalContent; + } +} + +class Google_Service_Plus_CommentPlusoners extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $totalItems; + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Plus_ItemScope extends Google_Collection +{ + protected $collection_key = 'performers'; + protected $internal_gapi_mappings = array( + "associatedMedia" => "associated_media", + ); + protected $aboutType = 'Google_Service_Plus_ItemScope'; + protected $aboutDataType = ''; + public $additionalName; + protected $addressType = 'Google_Service_Plus_ItemScope'; + protected $addressDataType = ''; + public $addressCountry; + public $addressLocality; + public $addressRegion; + protected $associatedMediaType = 'Google_Service_Plus_ItemScope'; + protected $associatedMediaDataType = 'array'; + public $attendeeCount; + protected $attendeesType = 'Google_Service_Plus_ItemScope'; + protected $attendeesDataType = 'array'; + protected $audioType = 'Google_Service_Plus_ItemScope'; + protected $audioDataType = ''; + protected $authorType = 'Google_Service_Plus_ItemScope'; + protected $authorDataType = 'array'; + public $bestRating; + public $birthDate; + protected $byArtistType = 'Google_Service_Plus_ItemScope'; + protected $byArtistDataType = ''; + public $caption; + public $contentSize; + public $contentUrl; + protected $contributorType = 'Google_Service_Plus_ItemScope'; + protected $contributorDataType = 'array'; + public $dateCreated; + public $dateModified; + public $datePublished; + public $description; + public $duration; + public $embedUrl; + public $endDate; + public $familyName; + public $gender; + protected $geoType = 'Google_Service_Plus_ItemScope'; + protected $geoDataType = ''; + public $givenName; + public $height; + public $id; + public $image; + protected $inAlbumType = 'Google_Service_Plus_ItemScope'; + protected $inAlbumDataType = ''; + public $kind; + public $latitude; + protected $locationType = 'Google_Service_Plus_ItemScope'; + protected $locationDataType = ''; + public $longitude; + public $name; + protected $partOfTVSeriesType = 'Google_Service_Plus_ItemScope'; + protected $partOfTVSeriesDataType = ''; + protected $performersType = 'Google_Service_Plus_ItemScope'; + protected $performersDataType = 'array'; + public $playerType; + public $postOfficeBoxNumber; + public $postalCode; + public $ratingValue; + protected $reviewRatingType = 'Google_Service_Plus_ItemScope'; + protected $reviewRatingDataType = ''; + public $startDate; + public $streetAddress; + public $text; + protected $thumbnailType = 'Google_Service_Plus_ItemScope'; + protected $thumbnailDataType = ''; + public $thumbnailUrl; + public $tickerSymbol; + public $type; + public $url; + public $width; + public $worstRating; + + public function setAbout(Google_Service_Plus_ItemScope $about) + { + $this->about = $about; + } + + public function getAbout() + { + return $this->about; + } + + public function setAdditionalName($additionalName) + { + $this->additionalName = $additionalName; + } + + public function getAdditionalName() + { + return $this->additionalName; + } + + public function setAddress(Google_Service_Plus_ItemScope $address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setAddressCountry($addressCountry) + { + $this->addressCountry = $addressCountry; + } + + public function getAddressCountry() + { + return $this->addressCountry; + } + + public function setAddressLocality($addressLocality) + { + $this->addressLocality = $addressLocality; + } + + public function getAddressLocality() + { + return $this->addressLocality; + } + + public function setAddressRegion($addressRegion) + { + $this->addressRegion = $addressRegion; + } + + public function getAddressRegion() + { + return $this->addressRegion; + } + + public function setAssociatedMedia($associatedMedia) + { + $this->associatedMedia = $associatedMedia; + } + + public function getAssociatedMedia() + { + return $this->associatedMedia; + } + + public function setAttendeeCount($attendeeCount) + { + $this->attendeeCount = $attendeeCount; + } + + public function getAttendeeCount() + { + return $this->attendeeCount; + } + + public function setAttendees($attendees) + { + $this->attendees = $attendees; + } + + public function getAttendees() + { + return $this->attendees; + } + + public function setAudio(Google_Service_Plus_ItemScope $audio) + { + $this->audio = $audio; + } + + public function getAudio() + { + return $this->audio; + } + + public function setAuthor($author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setBestRating($bestRating) + { + $this->bestRating = $bestRating; + } + + public function getBestRating() + { + return $this->bestRating; + } + + public function setBirthDate($birthDate) + { + $this->birthDate = $birthDate; + } + + public function getBirthDate() + { + return $this->birthDate; + } + + public function setByArtist(Google_Service_Plus_ItemScope $byArtist) + { + $this->byArtist = $byArtist; + } + + public function getByArtist() + { + return $this->byArtist; + } + + public function setCaption($caption) + { + $this->caption = $caption; + } + + public function getCaption() + { + return $this->caption; + } + + public function setContentSize($contentSize) + { + $this->contentSize = $contentSize; + } + + public function getContentSize() + { + return $this->contentSize; + } + + public function setContentUrl($contentUrl) + { + $this->contentUrl = $contentUrl; + } + + public function getContentUrl() + { + return $this->contentUrl; + } + + public function setContributor($contributor) + { + $this->contributor = $contributor; + } + + public function getContributor() + { + return $this->contributor; + } + + public function setDateCreated($dateCreated) + { + $this->dateCreated = $dateCreated; + } + + public function getDateCreated() + { + return $this->dateCreated; + } + + public function setDateModified($dateModified) + { + $this->dateModified = $dateModified; + } + + public function getDateModified() + { + return $this->dateModified; + } + + public function setDatePublished($datePublished) + { + $this->datePublished = $datePublished; + } + + public function getDatePublished() + { + return $this->datePublished; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDuration($duration) + { + $this->duration = $duration; + } + + public function getDuration() + { + return $this->duration; + } + + public function setEmbedUrl($embedUrl) + { + $this->embedUrl = $embedUrl; + } + + public function getEmbedUrl() + { + return $this->embedUrl; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGender($gender) + { + $this->gender = $gender; + } + + public function getGender() + { + return $this->gender; + } + + public function setGeo(Google_Service_Plus_ItemScope $geo) + { + $this->geo = $geo; + } + + public function getGeo() + { + return $this->geo; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage($image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setInAlbum(Google_Service_Plus_ItemScope $inAlbum) + { + $this->inAlbum = $inAlbum; + } + + public function getInAlbum() + { + return $this->inAlbum; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLocation(Google_Service_Plus_ItemScope $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPartOfTVSeries(Google_Service_Plus_ItemScope $partOfTVSeries) + { + $this->partOfTVSeries = $partOfTVSeries; + } + + public function getPartOfTVSeries() + { + return $this->partOfTVSeries; + } + + public function setPerformers($performers) + { + $this->performers = $performers; + } + + public function getPerformers() + { + return $this->performers; + } + + public function setPlayerType($playerType) + { + $this->playerType = $playerType; + } + + public function getPlayerType() + { + return $this->playerType; + } + + public function setPostOfficeBoxNumber($postOfficeBoxNumber) + { + $this->postOfficeBoxNumber = $postOfficeBoxNumber; + } + + public function getPostOfficeBoxNumber() + { + return $this->postOfficeBoxNumber; + } + + public function setPostalCode($postalCode) + { + $this->postalCode = $postalCode; + } + + public function getPostalCode() + { + return $this->postalCode; + } + + public function setRatingValue($ratingValue) + { + $this->ratingValue = $ratingValue; + } + + public function getRatingValue() + { + return $this->ratingValue; + } + + public function setReviewRating(Google_Service_Plus_ItemScope $reviewRating) + { + $this->reviewRating = $reviewRating; + } + + public function getReviewRating() + { + return $this->reviewRating; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setStreetAddress($streetAddress) + { + $this->streetAddress = $streetAddress; + } + + public function getStreetAddress() + { + return $this->streetAddress; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } + + public function setThumbnail(Google_Service_Plus_ItemScope $thumbnail) + { + $this->thumbnail = $thumbnail; + } + + public function getThumbnail() + { + return $this->thumbnail; + } + + public function setThumbnailUrl($thumbnailUrl) + { + $this->thumbnailUrl = $thumbnailUrl; + } + + public function getThumbnailUrl() + { + return $this->thumbnailUrl; + } + + public function setTickerSymbol($tickerSymbol) + { + $this->tickerSymbol = $tickerSymbol; + } + + public function getTickerSymbol() + { + return $this->tickerSymbol; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } + + public function setWorstRating($worstRating) + { + $this->worstRating = $worstRating; + } + + public function getWorstRating() + { + return $this->worstRating; + } +} + +class Google_Service_Plus_Moment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + protected $objectType = 'Google_Service_Plus_ItemScope'; + protected $objectDataType = ''; + protected $resultType = 'Google_Service_Plus_ItemScope'; + protected $resultDataType = ''; + public $startDate; + protected $targetType = 'Google_Service_Plus_ItemScope'; + protected $targetDataType = ''; + public $type; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setObject(Google_Service_Plus_ItemScope $object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setResult(Google_Service_Plus_ItemScope $result) + { + $this->result = $result; + } + + public function getResult() + { + return $this->result; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setTarget(Google_Service_Plus_ItemScope $target) + { + $this->target = $target; + } + + public function getTarget() + { + return $this->target; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Plus_MomentsFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Plus_Moment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + public $title; + public $updated; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Plus_PeopleFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Plus_Person'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + public $title; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_Plus_Person extends Google_Collection +{ + protected $collection_key = 'urls'; + protected $internal_gapi_mappings = array( + ); + public $aboutMe; + protected $ageRangeType = 'Google_Service_Plus_PersonAgeRange'; + protected $ageRangeDataType = ''; + public $birthday; + public $braggingRights; + public $circledByCount; + protected $coverType = 'Google_Service_Plus_PersonCover'; + protected $coverDataType = ''; + public $currentLocation; + public $displayName; + public $domain; + protected $emailsType = 'Google_Service_Plus_PersonEmails'; + protected $emailsDataType = 'array'; + public $etag; + public $gender; + public $id; + protected $imageType = 'Google_Service_Plus_PersonImage'; + protected $imageDataType = ''; + public $isPlusUser; + public $kind; + public $language; + protected $nameType = 'Google_Service_Plus_PersonName'; + protected $nameDataType = ''; + public $nickname; + public $objectType; + public $occupation; + protected $organizationsType = 'Google_Service_Plus_PersonOrganizations'; + protected $organizationsDataType = 'array'; + protected $placesLivedType = 'Google_Service_Plus_PersonPlacesLived'; + protected $placesLivedDataType = 'array'; + public $plusOneCount; + public $relationshipStatus; + public $skills; + public $tagline; + public $url; + protected $urlsType = 'Google_Service_Plus_PersonUrls'; + protected $urlsDataType = 'array'; + public $verified; + + public function setAboutMe($aboutMe) + { + $this->aboutMe = $aboutMe; + } + + public function getAboutMe() + { + return $this->aboutMe; + } + + public function setAgeRange(Google_Service_Plus_PersonAgeRange $ageRange) + { + $this->ageRange = $ageRange; + } + + public function getAgeRange() + { + return $this->ageRange; + } + + public function setBirthday($birthday) + { + $this->birthday = $birthday; + } + + public function getBirthday() + { + return $this->birthday; + } + + public function setBraggingRights($braggingRights) + { + $this->braggingRights = $braggingRights; + } + + public function getBraggingRights() + { + return $this->braggingRights; + } + + public function setCircledByCount($circledByCount) + { + $this->circledByCount = $circledByCount; + } + + public function getCircledByCount() + { + return $this->circledByCount; + } + + public function setCover(Google_Service_Plus_PersonCover $cover) + { + $this->cover = $cover; + } + + public function getCover() + { + return $this->cover; + } + + public function setCurrentLocation($currentLocation) + { + $this->currentLocation = $currentLocation; + } + + public function getCurrentLocation() + { + return $this->currentLocation; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setEmails($emails) + { + $this->emails = $emails; + } + + public function getEmails() + { + return $this->emails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGender($gender) + { + $this->gender = $gender; + } + + public function getGender() + { + return $this->gender; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_Plus_PersonImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setIsPlusUser($isPlusUser) + { + $this->isPlusUser = $isPlusUser; + } + + public function getIsPlusUser() + { + return $this->isPlusUser; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setName(Google_Service_Plus_PersonName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNickname($nickname) + { + $this->nickname = $nickname; + } + + public function getNickname() + { + return $this->nickname; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOccupation($occupation) + { + $this->occupation = $occupation; + } + + public function getOccupation() + { + return $this->occupation; + } + + public function setOrganizations($organizations) + { + $this->organizations = $organizations; + } + + public function getOrganizations() + { + return $this->organizations; + } + + public function setPlacesLived($placesLived) + { + $this->placesLived = $placesLived; + } + + public function getPlacesLived() + { + return $this->placesLived; + } + + public function setPlusOneCount($plusOneCount) + { + $this->plusOneCount = $plusOneCount; + } + + public function getPlusOneCount() + { + return $this->plusOneCount; + } + + public function setRelationshipStatus($relationshipStatus) + { + $this->relationshipStatus = $relationshipStatus; + } + + public function getRelationshipStatus() + { + return $this->relationshipStatus; + } + + public function setSkills($skills) + { + $this->skills = $skills; + } + + public function getSkills() + { + return $this->skills; + } + + public function setTagline($tagline) + { + $this->tagline = $tagline; + } + + public function getTagline() + { + return $this->tagline; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setUrls($urls) + { + $this->urls = $urls; + } + + public function getUrls() + { + return $this->urls; + } + + public function setVerified($verified) + { + $this->verified = $verified; + } + + public function getVerified() + { + return $this->verified; + } +} + +class Google_Service_Plus_PersonAgeRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $max; + public $min; + + public function setMax($max) + { + $this->max = $max; + } + + public function getMax() + { + return $this->max; + } + + public function setMin($min) + { + $this->min = $min; + } + + public function getMin() + { + return $this->min; + } +} + +class Google_Service_Plus_PersonCover extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $coverInfoType = 'Google_Service_Plus_PersonCoverCoverInfo'; + protected $coverInfoDataType = ''; + protected $coverPhotoType = 'Google_Service_Plus_PersonCoverCoverPhoto'; + protected $coverPhotoDataType = ''; + public $layout; + + public function setCoverInfo(Google_Service_Plus_PersonCoverCoverInfo $coverInfo) + { + $this->coverInfo = $coverInfo; + } + + public function getCoverInfo() + { + return $this->coverInfo; + } + + public function setCoverPhoto(Google_Service_Plus_PersonCoverCoverPhoto $coverPhoto) + { + $this->coverPhoto = $coverPhoto; + } + + public function getCoverPhoto() + { + return $this->coverPhoto; + } + + public function setLayout($layout) + { + $this->layout = $layout; + } + + public function getLayout() + { + return $this->layout; + } +} + +class Google_Service_Plus_PersonCoverCoverInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $leftImageOffset; + public $topImageOffset; + + public function setLeftImageOffset($leftImageOffset) + { + $this->leftImageOffset = $leftImageOffset; + } + + public function getLeftImageOffset() + { + return $this->leftImageOffset; + } + + public function setTopImageOffset($topImageOffset) + { + $this->topImageOffset = $topImageOffset; + } + + public function getTopImageOffset() + { + return $this->topImageOffset; + } +} + +class Google_Service_Plus_PersonCoverCoverPhoto extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Plus_PersonEmails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Plus_PersonImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $isDefault; + public $url; + + public function setIsDefault($isDefault) + { + $this->isDefault = $isDefault; + } + + public function getIsDefault() + { + return $this->isDefault; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_Plus_PersonName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $formatted; + public $givenName; + public $honorificPrefix; + public $honorificSuffix; + public $middleName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setFormatted($formatted) + { + $this->formatted = $formatted; + } + + public function getFormatted() + { + return $this->formatted; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } + + public function setHonorificPrefix($honorificPrefix) + { + $this->honorificPrefix = $honorificPrefix; + } + + public function getHonorificPrefix() + { + return $this->honorificPrefix; + } + + public function setHonorificSuffix($honorificSuffix) + { + $this->honorificSuffix = $honorificSuffix; + } + + public function getHonorificSuffix() + { + return $this->honorificSuffix; + } + + public function setMiddleName($middleName) + { + $this->middleName = $middleName; + } + + public function getMiddleName() + { + return $this->middleName; + } +} + +class Google_Service_Plus_PersonOrganizations extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $department; + public $description; + public $endDate; + public $location; + public $name; + public $primary; + public $startDate; + public $title; + public $type; + + public function setDepartment($department) + { + $this->department = $department; + } + + public function getDepartment() + { + return $this->department; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Plus_PersonPlacesLived extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $primary; + public $value; + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Plus_PersonUrls extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $label; + public $type; + public $value; + + public function setLabel($label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Plus_Place extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $addressType = 'Google_Service_Plus_PlaceAddress'; + protected $addressDataType = ''; + public $displayName; + public $id; + public $kind; + protected $positionType = 'Google_Service_Plus_PlacePosition'; + protected $positionDataType = ''; + + public function setAddress(Google_Service_Plus_PlaceAddress $address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPosition(Google_Service_Plus_PlacePosition $position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } +} + +class Google_Service_Plus_PlaceAddress extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formatted; + + public function setFormatted($formatted) + { + $this->formatted = $formatted; + } + + public function getFormatted() + { + return $this->formatted; + } +} + +class Google_Service_Plus_PlacePosition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $latitude; + public $longitude; + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Plus_PlusAclentryResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + public $type; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/PlusDomains.php b/vendor/google/apiclient/src/Google/Service/PlusDomains.php new file mode 100644 index 0000000..d2b4d35 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/PlusDomains.php @@ -0,0 +1,4127 @@ + + * The Google+ API enables developers to build on top of the Google+ platform. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_PlusDomains extends Google_Service +{ + /** View your circles and the people and pages in them. */ + const PLUS_CIRCLES_READ = "https://www.googleapis.com/auth/plus.circles.read"; + /** Manage your circles and add people and pages. People and pages you add to your circles will be notified. Others may see this information publicly. People you add to circles can use Hangouts with you.. */ + const PLUS_CIRCLES_WRITE = "https://www.googleapis.com/auth/plus.circles.write"; + /** Know your basic profile info and list of people in your circles.. */ + const PLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; + /** Know who you are on Google. */ + const PLUS_ME = "https://www.googleapis.com/auth/plus.me"; + /** Send your photos and videos to Google+. */ + const PLUS_MEDIA_UPLOAD = "https://www.googleapis.com/auth/plus.media.upload"; + /** View your own Google+ profile and profiles visible to you. */ + const PLUS_PROFILES_READ = "https://www.googleapis.com/auth/plus.profiles.read"; + /** View your Google+ posts, comments, and stream. */ + const PLUS_STREAM_READ = "https://www.googleapis.com/auth/plus.stream.read"; + /** Manage your Google+ posts, comments, and stream. */ + const PLUS_STREAM_WRITE = "https://www.googleapis.com/auth/plus.stream.write"; + /** View your email address. */ + const USERINFO_EMAIL = "https://www.googleapis.com/auth/userinfo.email"; + /** View your basic profile info. */ + const USERINFO_PROFILE = "https://www.googleapis.com/auth/userinfo.profile"; + + public $activities; + public $audiences; + public $circles; + public $comments; + public $media; + public $people; + + + /** + * Constructs the internal representation of the PlusDomains service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'plusDomains/v1/'; + $this->version = 'v1'; + $this->serviceName = 'plusDomains'; + + $this->activities = new Google_Service_PlusDomains_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'get' => array( + 'path' => 'activities/{activityId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'people/{userId}/activities', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'preview' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/activities/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->audiences = new Google_Service_PlusDomains_Audiences_Resource( + $this, + $this->serviceName, + 'audiences', + array( + 'methods' => array( + 'list' => array( + 'path' => 'people/{userId}/audiences', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->circles = new Google_Service_PlusDomains_Circles_Resource( + $this, + $this->serviceName, + 'circles', + array( + 'methods' => array( + 'addPeople' => array( + 'path' => 'circles/{circleId}/people', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'email' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'get' => array( + 'path' => 'circles/{circleId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'people/{userId}/circles', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/circles', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'circles/{circleId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'remove' => array( + 'path' => 'circles/{circleId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'removePeople' => array( + 'path' => 'circles/{circleId}/people', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'userId' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + 'email' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ),'update' => array( + 'path' => 'circles/{circleId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->comments = new Google_Service_PlusDomains_Comments_Resource( + $this, + $this->serviceName, + 'comments', + array( + 'methods' => array( + 'get' => array( + 'path' => 'comments/{commentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'activities/{activityId}/comments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'activities/{activityId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sortOrder' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->media = new Google_Service_PlusDomains_Media_Resource( + $this, + $this->serviceName, + 'media', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'people/{userId}/media/{collection}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->people = new Google_Service_PlusDomains_People_Resource( + $this, + $this->serviceName, + 'people', + array( + 'methods' => array( + 'get' => array( + 'path' => 'people/{userId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'people/{userId}/people/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'orderBy' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'listByActivity' => array( + 'path' => 'activities/{activityId}/people/{collection}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'activityId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'collection' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'listByCircle' => array( + 'path' => 'circles/{circleId}/people', + 'httpMethod' => 'GET', + 'parameters' => array( + 'circleId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $plusDomainsService = new Google_Service_PlusDomains(...); + * $activities = $plusDomainsService->activities; + * + */ +class Google_Service_PlusDomains_Activities_Resource extends Google_Service_Resource +{ + + /** + * Get an activity. (activities.get) + * + * @param string $activityId + * The ID of the activity to get. + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Activity + */ + public function get($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_PlusDomains_Activity"); + } + /** + * Create a new activity for the authenticated user. (activities.insert) + * + * @param string $userId + * The ID of the user to create the activity on behalf of. Its value should be "me", to indicate + * the authenticated user. + * @param Google_Activity $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool preview + * If "true", extract the potential media attachments for a URL. The response will include all + * possible attachments for a URL, including video, photos, and articles based on the content of + * the page. + * @return Google_Service_PlusDomains_Activity + */ + public function insert($userId, Google_Service_PlusDomains_Activity $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_PlusDomains_Activity"); + } + /** + * List all of the activities in the specified collection for a particular user. + * (activities.listActivities) + * + * @param string $userId + * The ID of the user to get activities for. The special value "me" can be used to indicate the + * authenticated user. + * @param string $collection + * The collection of activities to list. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of activities to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_ActivityFeed + */ + public function listActivities($userId, $collection, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_PlusDomains_ActivityFeed"); + } +} + +/** + * The "audiences" collection of methods. + * Typical usage is: + * + * $plusDomainsService = new Google_Service_PlusDomains(...); + * $audiences = $plusDomainsService->audiences; + * + */ +class Google_Service_PlusDomains_Audiences_Resource extends Google_Service_Resource +{ + + /** + * List all of the audiences to which a user can share. + * (audiences.listAudiences) + * + * @param string $userId + * The ID of the user to get audiences for. The special value "me" can be used to indicate the + * authenticated user. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of circles to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_AudiencesFeed + */ + public function listAudiences($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_PlusDomains_AudiencesFeed"); + } +} + +/** + * The "circles" collection of methods. + * Typical usage is: + * + * $plusDomainsService = new Google_Service_PlusDomains(...); + * $circles = $plusDomainsService->circles; + * + */ +class Google_Service_PlusDomains_Circles_Resource extends Google_Service_Resource +{ + + /** + * Add a person to a circle. Google+ limits certain circle operations, including + * the number of circle adds. Learn More. (circles.addPeople) + * + * @param string $circleId + * The ID of the circle to add the person to. + * @param array $optParams Optional parameters. + * + * @opt_param string userId + * IDs of the people to add to the circle. Optional, can be repeated. + * @opt_param string email + * Email of the people to add to the circle. Optional, can be repeated. + * @return Google_Service_PlusDomains_Circle + */ + public function addPeople($circleId, $optParams = array()) + { + $params = array('circleId' => $circleId); + $params = array_merge($params, $optParams); + return $this->call('addPeople', array($params), "Google_Service_PlusDomains_Circle"); + } + /** + * Get a circle. (circles.get) + * + * @param string $circleId + * The ID of the circle to get. + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Circle + */ + public function get($circleId, $optParams = array()) + { + $params = array('circleId' => $circleId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_PlusDomains_Circle"); + } + /** + * Create a new circle for the authenticated user. (circles.insert) + * + * @param string $userId + * The ID of the user to create the circle on behalf of. The value "me" can be used to indicate the + * authenticated user. + * @param Google_Circle $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Circle + */ + public function insert($userId, Google_Service_PlusDomains_Circle $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_PlusDomains_Circle"); + } + /** + * List all of the circles for a user. (circles.listCircles) + * + * @param string $userId + * The ID of the user to get circles for. The special value "me" can be used to indicate the + * authenticated user. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of circles to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_CircleFeed + */ + public function listCircles($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_PlusDomains_CircleFeed"); + } + /** + * Update a circle's description. This method supports patch semantics. + * (circles.patch) + * + * @param string $circleId + * The ID of the circle to update. + * @param Google_Circle $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Circle + */ + public function patch($circleId, Google_Service_PlusDomains_Circle $postBody, $optParams = array()) + { + $params = array('circleId' => $circleId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_PlusDomains_Circle"); + } + /** + * Delete a circle. (circles.remove) + * + * @param string $circleId + * The ID of the circle to delete. + * @param array $optParams Optional parameters. + */ + public function remove($circleId, $optParams = array()) + { + $params = array('circleId' => $circleId); + $params = array_merge($params, $optParams); + return $this->call('remove', array($params)); + } + /** + * Remove a person from a circle. (circles.removePeople) + * + * @param string $circleId + * The ID of the circle to remove the person from. + * @param array $optParams Optional parameters. + * + * @opt_param string userId + * IDs of the people to remove from the circle. Optional, can be repeated. + * @opt_param string email + * Email of the people to add to the circle. Optional, can be repeated. + */ + public function removePeople($circleId, $optParams = array()) + { + $params = array('circleId' => $circleId); + $params = array_merge($params, $optParams); + return $this->call('removePeople', array($params)); + } + /** + * Update a circle's description. (circles.update) + * + * @param string $circleId + * The ID of the circle to update. + * @param Google_Circle $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Circle + */ + public function update($circleId, Google_Service_PlusDomains_Circle $postBody, $optParams = array()) + { + $params = array('circleId' => $circleId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_PlusDomains_Circle"); + } +} + +/** + * The "comments" collection of methods. + * Typical usage is: + * + * $plusDomainsService = new Google_Service_PlusDomains(...); + * $comments = $plusDomainsService->comments; + * + */ +class Google_Service_PlusDomains_Comments_Resource extends Google_Service_Resource +{ + + /** + * Get a comment. (comments.get) + * + * @param string $commentId + * The ID of the comment to get. + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Comment + */ + public function get($commentId, $optParams = array()) + { + $params = array('commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_PlusDomains_Comment"); + } + /** + * Create a new comment in reply to an activity. (comments.insert) + * + * @param string $activityId + * The ID of the activity to reply to. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Comment + */ + public function insert($activityId, Google_Service_PlusDomains_Comment $postBody, $optParams = array()) + { + $params = array('activityId' => $activityId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_PlusDomains_Comment"); + } + /** + * List all of the comments for an activity. (comments.listComments) + * + * @param string $activityId + * The ID of the activity to get comments for. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string sortOrder + * The order in which to sort the list of comments. + * @opt_param string maxResults + * The maximum number of comments to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_CommentFeed + */ + public function listComments($activityId, $optParams = array()) + { + $params = array('activityId' => $activityId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_PlusDomains_CommentFeed"); + } +} + +/** + * The "media" collection of methods. + * Typical usage is: + * + * $plusDomainsService = new Google_Service_PlusDomains(...); + * $media = $plusDomainsService->media; + * + */ +class Google_Service_PlusDomains_Media_Resource extends Google_Service_Resource +{ + + /** + * Add a new media item to an album. The current upload size limitations are + * 36MB for a photo and 1GB for a video. Uploads do not count against quota if + * photos are less than 2048 pixels on their longest side or videos are less + * than 15 minutes in length. (media.insert) + * + * @param string $userId + * The ID of the user to create the activity on behalf of. + * @param string $collection + * + * @param Google_Media $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Media + */ + public function insert($userId, $collection, Google_Service_PlusDomains_Media $postBody, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_PlusDomains_Media"); + } +} + +/** + * The "people" collection of methods. + * Typical usage is: + * + * $plusDomainsService = new Google_Service_PlusDomains(...); + * $people = $plusDomainsService->people; + * + */ +class Google_Service_PlusDomains_People_Resource extends Google_Service_Resource +{ + + /** + * Get a person's profile. (people.get) + * + * @param string $userId + * The ID of the person to get the profile for. The special value "me" can be used to indicate the + * authenticated user. + * @param array $optParams Optional parameters. + * @return Google_Service_PlusDomains_Person + */ + public function get($userId, $optParams = array()) + { + $params = array('userId' => $userId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_PlusDomains_Person"); + } + /** + * List all of the people in the specified collection. (people.listPeople) + * + * @param string $userId + * Get the collection of people for the person identified. Use "me" to indicate the authenticated + * user. + * @param string $collection + * The collection of people to list. + * @param array $optParams Optional parameters. + * + * @opt_param string orderBy + * The order to return people in. + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of people to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_PeopleFeed + */ + public function listPeople($userId, $collection, $optParams = array()) + { + $params = array('userId' => $userId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_PlusDomains_PeopleFeed"); + } + /** + * List all of the people in the specified collection for a particular activity. + * (people.listByActivity) + * + * @param string $activityId + * The ID of the activity to get the list of people for. + * @param string $collection + * The collection of people to list. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of people to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_PeopleFeed + */ + public function listByActivity($activityId, $collection, $optParams = array()) + { + $params = array('activityId' => $activityId, 'collection' => $collection); + $params = array_merge($params, $optParams); + return $this->call('listByActivity', array($params), "Google_Service_PlusDomains_PeopleFeed"); + } + /** + * List all of the people who are members of a circle. (people.listByCircle) + * + * @param string $circleId + * The ID of the circle to get the members of. + * @param array $optParams Optional parameters. + * + * @opt_param string 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. + * @opt_param string maxResults + * The maximum number of people to include in the response, which is used for paging. For any + * response, the actual number returned might be less than the specified maxResults. + * @return Google_Service_PlusDomains_PeopleFeed + */ + public function listByCircle($circleId, $optParams = array()) + { + $params = array('circleId' => $circleId); + $params = array_merge($params, $optParams); + return $this->call('listByCircle', array($params), "Google_Service_PlusDomains_PeopleFeed"); + } +} + + + + +class Google_Service_PlusDomains_Acl extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $description; + public $domainRestricted; + protected $itemsType = 'Google_Service_PlusDomains_PlusDomainsAclentryResource'; + protected $itemsDataType = 'array'; + public $kind; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDomainRestricted($domainRestricted) + { + $this->domainRestricted = $domainRestricted; + } + + public function getDomainRestricted() + { + return $this->domainRestricted; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_PlusDomains_Activity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accessType = 'Google_Service_PlusDomains_Acl'; + protected $accessDataType = ''; + protected $actorType = 'Google_Service_PlusDomains_ActivityActor'; + protected $actorDataType = ''; + public $address; + public $annotation; + public $crosspostSource; + public $etag; + public $geocode; + public $id; + public $kind; + protected $locationType = 'Google_Service_PlusDomains_Place'; + protected $locationDataType = ''; + protected $objectType = 'Google_Service_PlusDomains_ActivityObject'; + protected $objectDataType = ''; + public $placeId; + public $placeName; + protected $providerType = 'Google_Service_PlusDomains_ActivityProvider'; + protected $providerDataType = ''; + public $published; + public $radius; + public $title; + public $updated; + public $url; + public $verb; + + public function setAccess(Google_Service_PlusDomains_Acl $access) + { + $this->access = $access; + } + + public function getAccess() + { + return $this->access; + } + + public function setActor(Google_Service_PlusDomains_ActivityActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setAnnotation($annotation) + { + $this->annotation = $annotation; + } + + public function getAnnotation() + { + return $this->annotation; + } + + public function setCrosspostSource($crosspostSource) + { + $this->crosspostSource = $crosspostSource; + } + + public function getCrosspostSource() + { + return $this->crosspostSource; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGeocode($geocode) + { + $this->geocode = $geocode; + } + + public function getGeocode() + { + return $this->geocode; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocation(Google_Service_PlusDomains_Place $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setObject(Google_Service_PlusDomains_ActivityObject $object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setPlaceId($placeId) + { + $this->placeId = $placeId; + } + + public function getPlaceId() + { + return $this->placeId; + } + + public function setPlaceName($placeName) + { + $this->placeName = $placeName; + } + + public function getPlaceName() + { + return $this->placeName; + } + + public function setProvider(Google_Service_PlusDomains_ActivityProvider $provider) + { + $this->provider = $provider; + } + + public function getProvider() + { + return $this->provider; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setRadius($radius) + { + $this->radius = $radius; + } + + public function getRadius() + { + return $this->radius; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_PlusDomains_ActivityActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_PlusDomains_ActivityActorImage'; + protected $imageDataType = ''; + protected $nameType = 'Google_Service_PlusDomains_ActivityActorName'; + protected $nameDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_PlusDomains_ActivityActorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setName(Google_Service_PlusDomains_ActivityActorName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityActorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityActorName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $givenName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } +} + +class Google_Service_PlusDomains_ActivityFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + protected $itemsType = 'Google_Service_PlusDomains_Activity'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + public $title; + public $updated; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_PlusDomains_ActivityObject extends Google_Collection +{ + protected $collection_key = 'attachments'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_PlusDomains_ActivityObjectActor'; + protected $actorDataType = ''; + protected $attachmentsType = 'Google_Service_PlusDomains_ActivityObjectAttachments'; + protected $attachmentsDataType = 'array'; + public $content; + public $id; + public $objectType; + public $originalContent; + protected $plusonersType = 'Google_Service_PlusDomains_ActivityObjectPlusoners'; + protected $plusonersDataType = ''; + protected $repliesType = 'Google_Service_PlusDomains_ActivityObjectReplies'; + protected $repliesDataType = ''; + protected $resharersType = 'Google_Service_PlusDomains_ActivityObjectResharers'; + protected $resharersDataType = ''; + protected $statusForViewerType = 'Google_Service_PlusDomains_ActivityObjectStatusForViewer'; + protected $statusForViewerDataType = ''; + public $url; + + public function setActor(Google_Service_PlusDomains_ActivityObjectActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setAttachments($attachments) + { + $this->attachments = $attachments; + } + + public function getAttachments() + { + return $this->attachments; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOriginalContent($originalContent) + { + $this->originalContent = $originalContent; + } + + public function getOriginalContent() + { + return $this->originalContent; + } + + public function setPlusoners(Google_Service_PlusDomains_ActivityObjectPlusoners $plusoners) + { + $this->plusoners = $plusoners; + } + + public function getPlusoners() + { + return $this->plusoners; + } + + public function setReplies(Google_Service_PlusDomains_ActivityObjectReplies $replies) + { + $this->replies = $replies; + } + + public function getReplies() + { + return $this->replies; + } + + public function setResharers(Google_Service_PlusDomains_ActivityObjectResharers $resharers) + { + $this->resharers = $resharers; + } + + public function getResharers() + { + return $this->resharers; + } + + public function setStatusForViewer(Google_Service_PlusDomains_ActivityObjectStatusForViewer $statusForViewer) + { + $this->statusForViewer = $statusForViewer; + } + + public function getStatusForViewer() + { + return $this->statusForViewer; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_PlusDomains_ActivityObjectActorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_PlusDomains_ActivityObjectActorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectActorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachments extends Google_Collection +{ + protected $collection_key = 'thumbnails'; + protected $internal_gapi_mappings = array( + ); + public $content; + public $displayName; + protected $embedType = 'Google_Service_PlusDomains_ActivityObjectAttachmentsEmbed'; + protected $embedDataType = ''; + protected $fullImageType = 'Google_Service_PlusDomains_ActivityObjectAttachmentsFullImage'; + protected $fullImageDataType = ''; + public $id; + protected $imageType = 'Google_Service_PlusDomains_ActivityObjectAttachmentsImage'; + protected $imageDataType = ''; + public $objectType; + protected $previewThumbnailsType = 'Google_Service_PlusDomains_ActivityObjectAttachmentsPreviewThumbnails'; + protected $previewThumbnailsDataType = 'array'; + protected $thumbnailsType = 'Google_Service_PlusDomains_ActivityObjectAttachmentsThumbnails'; + protected $thumbnailsDataType = 'array'; + public $url; + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmbed(Google_Service_PlusDomains_ActivityObjectAttachmentsEmbed $embed) + { + $this->embed = $embed; + } + + public function getEmbed() + { + return $this->embed; + } + + public function setFullImage(Google_Service_PlusDomains_ActivityObjectAttachmentsFullImage $fullImage) + { + $this->fullImage = $fullImage; + } + + public function getFullImage() + { + return $this->fullImage; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_PlusDomains_ActivityObjectAttachmentsImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setPreviewThumbnails($previewThumbnails) + { + $this->previewThumbnails = $previewThumbnails; + } + + public function getPreviewThumbnails() + { + return $this->previewThumbnails; + } + + public function setThumbnails($thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachmentsEmbed extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $url; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachmentsFullImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachmentsImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachmentsPreviewThumbnails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachmentsThumbnails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + protected $imageType = 'Google_Service_PlusDomains_ActivityObjectAttachmentsThumbnailsImage'; + protected $imageDataType = ''; + public $url; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setImage(Google_Service_PlusDomains_ActivityObjectAttachmentsThumbnailsImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_ActivityObjectAttachmentsThumbnailsImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_PlusDomains_ActivityObjectPlusoners extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_ActivityObjectReplies extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_ActivityObjectResharers extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $selfLink; + public $totalItems; + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_ActivityObjectStatusForViewer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $canComment; + public $canPlusone; + public $canUpdate; + public $isPlusOned; + public $resharingDisabled; + + public function setCanComment($canComment) + { + $this->canComment = $canComment; + } + + public function getCanComment() + { + return $this->canComment; + } + + public function setCanPlusone($canPlusone) + { + $this->canPlusone = $canPlusone; + } + + public function getCanPlusone() + { + return $this->canPlusone; + } + + public function setCanUpdate($canUpdate) + { + $this->canUpdate = $canUpdate; + } + + public function getCanUpdate() + { + return $this->canUpdate; + } + + public function setIsPlusOned($isPlusOned) + { + $this->isPlusOned = $isPlusOned; + } + + public function getIsPlusOned() + { + return $this->isPlusOned; + } + + public function setResharingDisabled($resharingDisabled) + { + $this->resharingDisabled = $resharingDisabled; + } + + public function getResharingDisabled() + { + return $this->resharingDisabled; + } +} + +class Google_Service_PlusDomains_ActivityProvider extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $title; + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_PlusDomains_Audience extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemType = 'Google_Service_PlusDomains_PlusDomainsAclentryResource'; + protected $itemDataType = ''; + public $kind; + public $memberCount; + public $visibility; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItem(Google_Service_PlusDomains_PlusDomainsAclentryResource $item) + { + $this->item = $item; + } + + public function getItem() + { + return $this->item; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMemberCount($memberCount) + { + $this->memberCount = $memberCount; + } + + public function getMemberCount() + { + return $this->memberCount; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_PlusDomains_AudiencesFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_PlusDomains_Audience'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_Circle extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $displayName; + public $etag; + public $id; + public $kind; + protected $peopleType = 'Google_Service_PlusDomains_CirclePeople'; + protected $peopleDataType = ''; + public $selfLink; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPeople(Google_Service_PlusDomains_CirclePeople $people) + { + $this->people = $people; + } + + public function getPeople() + { + return $this->people; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_PlusDomains_CircleFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_PlusDomains_Circle'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + public $title; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_CirclePeople extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $totalItems; + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_Comment extends Google_Collection +{ + protected $collection_key = 'inReplyTo'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_PlusDomains_CommentActor'; + protected $actorDataType = ''; + public $etag; + public $id; + protected $inReplyToType = 'Google_Service_PlusDomains_CommentInReplyTo'; + protected $inReplyToDataType = 'array'; + public $kind; + protected $objectType = 'Google_Service_PlusDomains_CommentObject'; + protected $objectDataType = ''; + protected $plusonersType = 'Google_Service_PlusDomains_CommentPlusoners'; + protected $plusonersDataType = ''; + public $published; + public $selfLink; + public $updated; + public $verb; + + public function setActor(Google_Service_PlusDomains_CommentActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInReplyTo($inReplyTo) + { + $this->inReplyTo = $inReplyTo; + } + + public function getInReplyTo() + { + return $this->inReplyTo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setObject(Google_Service_PlusDomains_CommentObject $object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setPlusoners(Google_Service_PlusDomains_CommentPlusoners $plusoners) + { + $this->plusoners = $plusoners; + } + + public function getPlusoners() + { + return $this->plusoners; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_PlusDomains_CommentActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_PlusDomains_CommentActorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_PlusDomains_CommentActorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_CommentActorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_CommentFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + protected $itemsType = 'Google_Service_PlusDomains_Comment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $title; + public $updated; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_PlusDomains_CommentInReplyTo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $url; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_CommentObject extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $content; + public $objectType; + public $originalContent; + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOriginalContent($originalContent) + { + $this->originalContent = $originalContent; + } + + public function getOriginalContent() + { + return $this->originalContent; + } +} + +class Google_Service_PlusDomains_CommentPlusoners extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $totalItems; + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_Media extends Google_Collection +{ + protected $collection_key = 'streams'; + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_PlusDomains_MediaAuthor'; + protected $authorDataType = ''; + public $displayName; + public $etag; + protected $exifType = 'Google_Service_PlusDomains_MediaExif'; + protected $exifDataType = ''; + public $height; + public $id; + public $kind; + public $mediaCreatedTime; + public $mediaUrl; + public $published; + public $sizeBytes; + protected $streamsType = 'Google_Service_PlusDomains_Videostream'; + protected $streamsDataType = 'array'; + public $summary; + public $updated; + public $url; + public $videoDuration; + public $videoStatus; + public $width; + + public function setAuthor(Google_Service_PlusDomains_MediaAuthor $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExif(Google_Service_PlusDomains_MediaExif $exif) + { + $this->exif = $exif; + } + + public function getExif() + { + return $this->exif; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMediaCreatedTime($mediaCreatedTime) + { + $this->mediaCreatedTime = $mediaCreatedTime; + } + + public function getMediaCreatedTime() + { + return $this->mediaCreatedTime; + } + + public function setMediaUrl($mediaUrl) + { + $this->mediaUrl = $mediaUrl; + } + + public function getMediaUrl() + { + return $this->mediaUrl; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setSizeBytes($sizeBytes) + { + $this->sizeBytes = $sizeBytes; + } + + public function getSizeBytes() + { + return $this->sizeBytes; + } + + public function setStreams($streams) + { + $this->streams = $streams; + } + + public function getStreams() + { + return $this->streams; + } + + public function setSummary($summary) + { + $this->summary = $summary; + } + + public function getSummary() + { + return $this->summary; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setVideoDuration($videoDuration) + { + $this->videoDuration = $videoDuration; + } + + public function getVideoDuration() + { + return $this->videoDuration; + } + + public function setVideoStatus($videoStatus) + { + $this->videoStatus = $videoStatus; + } + + public function getVideoStatus() + { + return $this->videoStatus; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_PlusDomains_MediaAuthor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + protected $imageType = 'Google_Service_PlusDomains_MediaAuthorImage'; + protected $imageDataType = ''; + public $url; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_PlusDomains_MediaAuthorImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_MediaAuthorImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_MediaExif extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $time; + + public function setTime($time) + { + $this->time = $time; + } + + public function getTime() + { + return $this->time; + } +} + +class Google_Service_PlusDomains_PeopleFeed extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_PlusDomains_Person'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + public $title; + public $totalItems; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} + +class Google_Service_PlusDomains_Person extends Google_Collection +{ + protected $collection_key = 'urls'; + protected $internal_gapi_mappings = array( + ); + public $aboutMe; + public $birthday; + public $braggingRights; + public $circledByCount; + protected $coverType = 'Google_Service_PlusDomains_PersonCover'; + protected $coverDataType = ''; + public $currentLocation; + public $displayName; + public $domain; + protected $emailsType = 'Google_Service_PlusDomains_PersonEmails'; + protected $emailsDataType = 'array'; + public $etag; + public $gender; + public $id; + protected $imageType = 'Google_Service_PlusDomains_PersonImage'; + protected $imageDataType = ''; + public $isPlusUser; + public $kind; + protected $nameType = 'Google_Service_PlusDomains_PersonName'; + protected $nameDataType = ''; + public $nickname; + public $objectType; + public $occupation; + protected $organizationsType = 'Google_Service_PlusDomains_PersonOrganizations'; + protected $organizationsDataType = 'array'; + protected $placesLivedType = 'Google_Service_PlusDomains_PersonPlacesLived'; + protected $placesLivedDataType = 'array'; + public $plusOneCount; + public $relationshipStatus; + public $skills; + public $tagline; + public $url; + protected $urlsType = 'Google_Service_PlusDomains_PersonUrls'; + protected $urlsDataType = 'array'; + public $verified; + + public function setAboutMe($aboutMe) + { + $this->aboutMe = $aboutMe; + } + + public function getAboutMe() + { + return $this->aboutMe; + } + + public function setBirthday($birthday) + { + $this->birthday = $birthday; + } + + public function getBirthday() + { + return $this->birthday; + } + + public function setBraggingRights($braggingRights) + { + $this->braggingRights = $braggingRights; + } + + public function getBraggingRights() + { + return $this->braggingRights; + } + + public function setCircledByCount($circledByCount) + { + $this->circledByCount = $circledByCount; + } + + public function getCircledByCount() + { + return $this->circledByCount; + } + + public function setCover(Google_Service_PlusDomains_PersonCover $cover) + { + $this->cover = $cover; + } + + public function getCover() + { + return $this->cover; + } + + public function setCurrentLocation($currentLocation) + { + $this->currentLocation = $currentLocation; + } + + public function getCurrentLocation() + { + return $this->currentLocation; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setEmails($emails) + { + $this->emails = $emails; + } + + public function getEmails() + { + return $this->emails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGender($gender) + { + $this->gender = $gender; + } + + public function getGender() + { + return $this->gender; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImage(Google_Service_PlusDomains_PersonImage $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setIsPlusUser($isPlusUser) + { + $this->isPlusUser = $isPlusUser; + } + + public function getIsPlusUser() + { + return $this->isPlusUser; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName(Google_Service_PlusDomains_PersonName $name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNickname($nickname) + { + $this->nickname = $nickname; + } + + public function getNickname() + { + return $this->nickname; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOccupation($occupation) + { + $this->occupation = $occupation; + } + + public function getOccupation() + { + return $this->occupation; + } + + public function setOrganizations($organizations) + { + $this->organizations = $organizations; + } + + public function getOrganizations() + { + return $this->organizations; + } + + public function setPlacesLived($placesLived) + { + $this->placesLived = $placesLived; + } + + public function getPlacesLived() + { + return $this->placesLived; + } + + public function setPlusOneCount($plusOneCount) + { + $this->plusOneCount = $plusOneCount; + } + + public function getPlusOneCount() + { + return $this->plusOneCount; + } + + public function setRelationshipStatus($relationshipStatus) + { + $this->relationshipStatus = $relationshipStatus; + } + + public function getRelationshipStatus() + { + return $this->relationshipStatus; + } + + public function setSkills($skills) + { + $this->skills = $skills; + } + + public function getSkills() + { + return $this->skills; + } + + public function setTagline($tagline) + { + $this->tagline = $tagline; + } + + public function getTagline() + { + return $this->tagline; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setUrls($urls) + { + $this->urls = $urls; + } + + public function getUrls() + { + return $this->urls; + } + + public function setVerified($verified) + { + $this->verified = $verified; + } + + public function getVerified() + { + return $this->verified; + } +} + +class Google_Service_PlusDomains_PersonCover extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $coverInfoType = 'Google_Service_PlusDomains_PersonCoverCoverInfo'; + protected $coverInfoDataType = ''; + protected $coverPhotoType = 'Google_Service_PlusDomains_PersonCoverCoverPhoto'; + protected $coverPhotoDataType = ''; + public $layout; + + public function setCoverInfo(Google_Service_PlusDomains_PersonCoverCoverInfo $coverInfo) + { + $this->coverInfo = $coverInfo; + } + + public function getCoverInfo() + { + return $this->coverInfo; + } + + public function setCoverPhoto(Google_Service_PlusDomains_PersonCoverCoverPhoto $coverPhoto) + { + $this->coverPhoto = $coverPhoto; + } + + public function getCoverPhoto() + { + return $this->coverPhoto; + } + + public function setLayout($layout) + { + $this->layout = $layout; + } + + public function getLayout() + { + return $this->layout; + } +} + +class Google_Service_PlusDomains_PersonCoverCoverInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $leftImageOffset; + public $topImageOffset; + + public function setLeftImageOffset($leftImageOffset) + { + $this->leftImageOffset = $leftImageOffset; + } + + public function getLeftImageOffset() + { + return $this->leftImageOffset; + } + + public function setTopImageOffset($topImageOffset) + { + $this->topImageOffset = $topImageOffset; + } + + public function getTopImageOffset() + { + return $this->topImageOffset; + } +} + +class Google_Service_PlusDomains_PersonCoverCoverPhoto extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_PlusDomains_PersonEmails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_PlusDomains_PersonImage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $isDefault; + public $url; + + public function setIsDefault($isDefault) + { + $this->isDefault = $isDefault; + } + + public function getIsDefault() + { + return $this->isDefault; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_PlusDomains_PersonName extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $familyName; + public $formatted; + public $givenName; + public $honorificPrefix; + public $honorificSuffix; + public $middleName; + + public function setFamilyName($familyName) + { + $this->familyName = $familyName; + } + + public function getFamilyName() + { + return $this->familyName; + } + + public function setFormatted($formatted) + { + $this->formatted = $formatted; + } + + public function getFormatted() + { + return $this->formatted; + } + + public function setGivenName($givenName) + { + $this->givenName = $givenName; + } + + public function getGivenName() + { + return $this->givenName; + } + + public function setHonorificPrefix($honorificPrefix) + { + $this->honorificPrefix = $honorificPrefix; + } + + public function getHonorificPrefix() + { + return $this->honorificPrefix; + } + + public function setHonorificSuffix($honorificSuffix) + { + $this->honorificSuffix = $honorificSuffix; + } + + public function getHonorificSuffix() + { + return $this->honorificSuffix; + } + + public function setMiddleName($middleName) + { + $this->middleName = $middleName; + } + + public function getMiddleName() + { + return $this->middleName; + } +} + +class Google_Service_PlusDomains_PersonOrganizations extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $department; + public $description; + public $endDate; + public $location; + public $name; + public $primary; + public $startDate; + public $title; + public $type; + + public function setDepartment($department) + { + $this->department = $department; + } + + public function getDepartment() + { + return $this->department; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEndDate($endDate) + { + $this->endDate = $endDate; + } + + public function getEndDate() + { + return $this->endDate; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_PlusDomains_PersonPlacesLived extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $primary; + public $value; + + public function setPrimary($primary) + { + $this->primary = $primary; + } + + public function getPrimary() + { + return $this->primary; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_PlusDomains_PersonUrls extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $label; + public $type; + public $value; + + public function setLabel($label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_PlusDomains_Place extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $addressType = 'Google_Service_PlusDomains_PlaceAddress'; + protected $addressDataType = ''; + public $displayName; + public $id; + public $kind; + protected $positionType = 'Google_Service_PlusDomains_PlacePosition'; + protected $positionDataType = ''; + + public function setAddress(Google_Service_PlusDomains_PlaceAddress $address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPosition(Google_Service_PlusDomains_PlacePosition $position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } +} + +class Google_Service_PlusDomains_PlaceAddress extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $formatted; + + public function setFormatted($formatted) + { + $this->formatted = $formatted; + } + + public function getFormatted() + { + return $this->formatted; + } +} + +class Google_Service_PlusDomains_PlacePosition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $latitude; + public $longitude; + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_PlusDomains_PlusDomainsAclentryResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $id; + public $type; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_PlusDomains_Videostream extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $type; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Prediction.php b/vendor/google/apiclient/src/Google/Service/Prediction.php new file mode 100644 index 0000000..b0745f9 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Prediction.php @@ -0,0 +1,1347 @@ + + * Lets you access a cloud hosted machine learning service that makes it easy to build smart apps + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Prediction extends Google_Service +{ + /** Manage your data and permissions in Google Cloud Storage. */ + const DEVSTORAGE_FULL_CONTROL = "https://www.googleapis.com/auth/devstorage.full_control"; + /** View your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_ONLY = "https://www.googleapis.com/auth/devstorage.read_only"; + /** Manage your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_WRITE = "https://www.googleapis.com/auth/devstorage.read_write"; + /** Manage your data in the Google Prediction API. */ + const PREDICTION = "https://www.googleapis.com/auth/prediction"; + + public $hostedmodels; + public $trainedmodels; + + + /** + * Constructs the internal representation of the Prediction service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'prediction/v1.6/projects/'; + $this->version = 'v1.6'; + $this->serviceName = 'prediction'; + + $this->hostedmodels = new Google_Service_Prediction_Hostedmodels_Resource( + $this, + $this->serviceName, + 'hostedmodels', + array( + 'methods' => array( + 'predict' => array( + 'path' => '{project}/hostedmodels/{hostedModelName}/predict', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'hostedModelName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->trainedmodels = new Google_Service_Prediction_Trainedmodels_Resource( + $this, + $this->serviceName, + 'trainedmodels', + array( + 'methods' => array( + 'analyze' => array( + 'path' => '{project}/trainedmodels/{id}/analyze', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{project}/trainedmodels/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/trainedmodels/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/trainedmodels', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/trainedmodels/list', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'predict' => array( + 'path' => '{project}/trainedmodels/{id}/predict', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{project}/trainedmodels/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "hostedmodels" collection of methods. + * Typical usage is: + * + * $predictionService = new Google_Service_Prediction(...); + * $hostedmodels = $predictionService->hostedmodels; + * + */ +class Google_Service_Prediction_Hostedmodels_Resource extends Google_Service_Resource +{ + + /** + * Submit input and request an output against a hosted model. + * (hostedmodels.predict) + * + * @param string $project + * The project associated with the model. + * @param string $hostedModelName + * The name of a hosted model. + * @param Google_Input $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Prediction_Output + */ + public function predict($project, $hostedModelName, Google_Service_Prediction_Input $postBody, $optParams = array()) + { + $params = array('project' => $project, 'hostedModelName' => $hostedModelName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('predict', array($params), "Google_Service_Prediction_Output"); + } +} + +/** + * The "trainedmodels" collection of methods. + * Typical usage is: + * + * $predictionService = new Google_Service_Prediction(...); + * $trainedmodels = $predictionService->trainedmodels; + * + */ +class Google_Service_Prediction_Trainedmodels_Resource extends Google_Service_Resource +{ + + /** + * Get analysis of the model and the data the model was trained on. + * (trainedmodels.analyze) + * + * @param string $project + * The project associated with the model. + * @param string $id + * The unique name for the predictive model. + * @param array $optParams Optional parameters. + * @return Google_Service_Prediction_Analyze + */ + public function analyze($project, $id, $optParams = array()) + { + $params = array('project' => $project, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('analyze', array($params), "Google_Service_Prediction_Analyze"); + } + /** + * Delete a trained model. (trainedmodels.delete) + * + * @param string $project + * The project associated with the model. + * @param string $id + * The unique name for the predictive model. + * @param array $optParams Optional parameters. + */ + public function delete($project, $id, $optParams = array()) + { + $params = array('project' => $project, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Check training status of your model. (trainedmodels.get) + * + * @param string $project + * The project associated with the model. + * @param string $id + * The unique name for the predictive model. + * @param array $optParams Optional parameters. + * @return Google_Service_Prediction_Insert2 + */ + public function get($project, $id, $optParams = array()) + { + $params = array('project' => $project, 'id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Prediction_Insert2"); + } + /** + * Train a Prediction API model. (trainedmodels.insert) + * + * @param string $project + * The project associated with the model. + * @param Google_Insert $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Prediction_Insert2 + */ + public function insert($project, Google_Service_Prediction_Insert $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Prediction_Insert2"); + } + /** + * List available models. (trainedmodels.listTrainedmodels) + * + * @param string $project + * The project associated with the model. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Pagination token. + * @opt_param string maxResults + * Maximum number of results to return. + * @return Google_Service_Prediction_PredictionList + */ + public function listTrainedmodels($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Prediction_PredictionList"); + } + /** + * Submit model id and request a prediction. (trainedmodels.predict) + * + * @param string $project + * The project associated with the model. + * @param string $id + * The unique name for the predictive model. + * @param Google_Input $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Prediction_Output + */ + public function predict($project, $id, Google_Service_Prediction_Input $postBody, $optParams = array()) + { + $params = array('project' => $project, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('predict', array($params), "Google_Service_Prediction_Output"); + } + /** + * Add new data to a trained model. (trainedmodels.update) + * + * @param string $project + * The project associated with the model. + * @param string $id + * The unique name for the predictive model. + * @param Google_Update $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Prediction_Insert2 + */ + public function update($project, $id, Google_Service_Prediction_Update $postBody, $optParams = array()) + { + $params = array('project' => $project, 'id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Prediction_Insert2"); + } +} + + + + +class Google_Service_Prediction_Analyze extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $dataDescriptionType = 'Google_Service_Prediction_AnalyzeDataDescription'; + protected $dataDescriptionDataType = ''; + public $errors; + public $id; + public $kind; + protected $modelDescriptionType = 'Google_Service_Prediction_AnalyzeModelDescription'; + protected $modelDescriptionDataType = ''; + public $selfLink; + + public function setDataDescription(Google_Service_Prediction_AnalyzeDataDescription $dataDescription) + { + $this->dataDescription = $dataDescription; + } + + public function getDataDescription() + { + return $this->dataDescription; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModelDescription(Google_Service_Prediction_AnalyzeModelDescription $modelDescription) + { + $this->modelDescription = $modelDescription; + } + + public function getModelDescription() + { + return $this->modelDescription; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Prediction_AnalyzeDataDescription extends Google_Collection +{ + protected $collection_key = 'features'; + protected $internal_gapi_mappings = array( + ); + protected $featuresType = 'Google_Service_Prediction_AnalyzeDataDescriptionFeatures'; + protected $featuresDataType = 'array'; + protected $outputFeatureType = 'Google_Service_Prediction_AnalyzeDataDescriptionOutputFeature'; + protected $outputFeatureDataType = ''; + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setOutputFeature(Google_Service_Prediction_AnalyzeDataDescriptionOutputFeature $outputFeature) + { + $this->outputFeature = $outputFeature; + } + + public function getOutputFeature() + { + return $this->outputFeature; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionFeatures extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $categoricalType = 'Google_Service_Prediction_AnalyzeDataDescriptionFeaturesCategorical'; + protected $categoricalDataType = ''; + public $index; + protected $numericType = 'Google_Service_Prediction_AnalyzeDataDescriptionFeaturesNumeric'; + protected $numericDataType = ''; + protected $textType = 'Google_Service_Prediction_AnalyzeDataDescriptionFeaturesText'; + protected $textDataType = ''; + + public function setCategorical(Google_Service_Prediction_AnalyzeDataDescriptionFeaturesCategorical $categorical) + { + $this->categorical = $categorical; + } + + public function getCategorical() + { + return $this->categorical; + } + + public function setIndex($index) + { + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } + + public function setNumeric(Google_Service_Prediction_AnalyzeDataDescriptionFeaturesNumeric $numeric) + { + $this->numeric = $numeric; + } + + public function getNumeric() + { + return $this->numeric; + } + + public function setText(Google_Service_Prediction_AnalyzeDataDescriptionFeaturesText $text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionFeaturesCategorical extends Google_Collection +{ + protected $collection_key = 'values'; + protected $internal_gapi_mappings = array( + ); + public $count; + protected $valuesType = 'Google_Service_Prediction_AnalyzeDataDescriptionFeaturesCategoricalValues'; + protected $valuesDataType = 'array'; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setValues($values) + { + $this->values = $values; + } + + public function getValues() + { + return $this->values; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionFeaturesCategoricalValues extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $value; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionFeaturesNumeric extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $mean; + public $variance; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setMean($mean) + { + $this->mean = $mean; + } + + public function getMean() + { + return $this->mean; + } + + public function setVariance($variance) + { + $this->variance = $variance; + } + + public function getVariance() + { + return $this->variance; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionFeaturesText extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionOutputFeature extends Google_Collection +{ + protected $collection_key = 'text'; + protected $internal_gapi_mappings = array( + ); + protected $numericType = 'Google_Service_Prediction_AnalyzeDataDescriptionOutputFeatureNumeric'; + protected $numericDataType = ''; + protected $textType = 'Google_Service_Prediction_AnalyzeDataDescriptionOutputFeatureText'; + protected $textDataType = 'array'; + + public function setNumeric(Google_Service_Prediction_AnalyzeDataDescriptionOutputFeatureNumeric $numeric) + { + $this->numeric = $numeric; + } + + public function getNumeric() + { + return $this->numeric; + } + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionOutputFeatureNumeric extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $mean; + public $variance; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setMean($mean) + { + $this->mean = $mean; + } + + public function getMean() + { + return $this->mean; + } + + public function setVariance($variance) + { + $this->variance = $variance; + } + + public function getVariance() + { + return $this->variance; + } +} + +class Google_Service_Prediction_AnalyzeDataDescriptionOutputFeatureText extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $value; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Prediction_AnalyzeErrors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Prediction_AnalyzeModelDescription extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $confusionMatrix; + public $confusionMatrixRowTotals; + protected $modelinfoType = 'Google_Service_Prediction_Insert2'; + protected $modelinfoDataType = ''; + + public function setConfusionMatrix($confusionMatrix) + { + $this->confusionMatrix = $confusionMatrix; + } + + public function getConfusionMatrix() + { + return $this->confusionMatrix; + } + + public function setConfusionMatrixRowTotals($confusionMatrixRowTotals) + { + $this->confusionMatrixRowTotals = $confusionMatrixRowTotals; + } + + public function getConfusionMatrixRowTotals() + { + return $this->confusionMatrixRowTotals; + } + + public function setModelinfo(Google_Service_Prediction_Insert2 $modelinfo) + { + $this->modelinfo = $modelinfo; + } + + public function getModelinfo() + { + return $this->modelinfo; + } +} + +class Google_Service_Prediction_AnalyzeModelDescriptionConfusionMatrix extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Prediction_AnalyzeModelDescriptionConfusionMatrixElement extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Prediction_AnalyzeModelDescriptionConfusionMatrixRowTotals extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Prediction_Input extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $inputType = 'Google_Service_Prediction_InputInput'; + protected $inputDataType = ''; + + public function setInput(Google_Service_Prediction_InputInput $input) + { + $this->input = $input; + } + + public function getInput() + { + return $this->input; + } +} + +class Google_Service_Prediction_InputInput extends Google_Collection +{ + protected $collection_key = 'csvInstance'; + protected $internal_gapi_mappings = array( + ); + public $csvInstance; + + public function setCsvInstance($csvInstance) + { + $this->csvInstance = $csvInstance; + } + + public function getCsvInstance() + { + return $this->csvInstance; + } +} + +class Google_Service_Prediction_Insert extends Google_Collection +{ + protected $collection_key = 'utility'; + protected $internal_gapi_mappings = array( + ); + public $id; + public $modelType; + public $sourceModel; + public $storageDataLocation; + public $storagePMMLLocation; + public $storagePMMLModelLocation; + protected $trainingInstancesType = 'Google_Service_Prediction_InsertTrainingInstances'; + protected $trainingInstancesDataType = 'array'; + public $utility; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setModelType($modelType) + { + $this->modelType = $modelType; + } + + public function getModelType() + { + return $this->modelType; + } + + public function setSourceModel($sourceModel) + { + $this->sourceModel = $sourceModel; + } + + public function getSourceModel() + { + return $this->sourceModel; + } + + public function setStorageDataLocation($storageDataLocation) + { + $this->storageDataLocation = $storageDataLocation; + } + + public function getStorageDataLocation() + { + return $this->storageDataLocation; + } + + public function setStoragePMMLLocation($storagePMMLLocation) + { + $this->storagePMMLLocation = $storagePMMLLocation; + } + + public function getStoragePMMLLocation() + { + return $this->storagePMMLLocation; + } + + public function setStoragePMMLModelLocation($storagePMMLModelLocation) + { + $this->storagePMMLModelLocation = $storagePMMLModelLocation; + } + + public function getStoragePMMLModelLocation() + { + return $this->storagePMMLModelLocation; + } + + public function setTrainingInstances($trainingInstances) + { + $this->trainingInstances = $trainingInstances; + } + + public function getTrainingInstances() + { + return $this->trainingInstances; + } + + public function setUtility($utility) + { + $this->utility = $utility; + } + + public function getUtility() + { + return $this->utility; + } +} + +class Google_Service_Prediction_Insert2 extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $created; + public $id; + public $kind; + protected $modelInfoType = 'Google_Service_Prediction_Insert2ModelInfo'; + protected $modelInfoDataType = ''; + public $modelType; + public $selfLink; + public $storageDataLocation; + public $storagePMMLLocation; + public $storagePMMLModelLocation; + public $trainingComplete; + public $trainingStatus; + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModelInfo(Google_Service_Prediction_Insert2ModelInfo $modelInfo) + { + $this->modelInfo = $modelInfo; + } + + public function getModelInfo() + { + return $this->modelInfo; + } + + public function setModelType($modelType) + { + $this->modelType = $modelType; + } + + public function getModelType() + { + return $this->modelType; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStorageDataLocation($storageDataLocation) + { + $this->storageDataLocation = $storageDataLocation; + } + + public function getStorageDataLocation() + { + return $this->storageDataLocation; + } + + public function setStoragePMMLLocation($storagePMMLLocation) + { + $this->storagePMMLLocation = $storagePMMLLocation; + } + + public function getStoragePMMLLocation() + { + return $this->storagePMMLLocation; + } + + public function setStoragePMMLModelLocation($storagePMMLModelLocation) + { + $this->storagePMMLModelLocation = $storagePMMLModelLocation; + } + + public function getStoragePMMLModelLocation() + { + return $this->storagePMMLModelLocation; + } + + public function setTrainingComplete($trainingComplete) + { + $this->trainingComplete = $trainingComplete; + } + + public function getTrainingComplete() + { + return $this->trainingComplete; + } + + public function setTrainingStatus($trainingStatus) + { + $this->trainingStatus = $trainingStatus; + } + + public function getTrainingStatus() + { + return $this->trainingStatus; + } +} + +class Google_Service_Prediction_Insert2ModelInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $classWeightedAccuracy; + public $classificationAccuracy; + public $meanSquaredError; + public $modelType; + public $numberInstances; + public $numberLabels; + + public function setClassWeightedAccuracy($classWeightedAccuracy) + { + $this->classWeightedAccuracy = $classWeightedAccuracy; + } + + public function getClassWeightedAccuracy() + { + return $this->classWeightedAccuracy; + } + + public function setClassificationAccuracy($classificationAccuracy) + { + $this->classificationAccuracy = $classificationAccuracy; + } + + public function getClassificationAccuracy() + { + return $this->classificationAccuracy; + } + + public function setMeanSquaredError($meanSquaredError) + { + $this->meanSquaredError = $meanSquaredError; + } + + public function getMeanSquaredError() + { + return $this->meanSquaredError; + } + + public function setModelType($modelType) + { + $this->modelType = $modelType; + } + + public function getModelType() + { + return $this->modelType; + } + + public function setNumberInstances($numberInstances) + { + $this->numberInstances = $numberInstances; + } + + public function getNumberInstances() + { + return $this->numberInstances; + } + + public function setNumberLabels($numberLabels) + { + $this->numberLabels = $numberLabels; + } + + public function getNumberLabels() + { + return $this->numberLabels; + } +} + +class Google_Service_Prediction_InsertTrainingInstances extends Google_Collection +{ + protected $collection_key = 'csvInstance'; + protected $internal_gapi_mappings = array( + ); + public $csvInstance; + public $output; + + public function setCsvInstance($csvInstance) + { + $this->csvInstance = $csvInstance; + } + + public function getCsvInstance() + { + return $this->csvInstance; + } + + public function setOutput($output) + { + $this->output = $output; + } + + public function getOutput() + { + return $this->output; + } +} + +class Google_Service_Prediction_InsertUtility extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Prediction_Output extends Google_Collection +{ + protected $collection_key = 'outputMulti'; + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $outputLabel; + protected $outputMultiType = 'Google_Service_Prediction_OutputOutputMulti'; + protected $outputMultiDataType = 'array'; + public $outputValue; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOutputLabel($outputLabel) + { + $this->outputLabel = $outputLabel; + } + + public function getOutputLabel() + { + return $this->outputLabel; + } + + public function setOutputMulti($outputMulti) + { + $this->outputMulti = $outputMulti; + } + + public function getOutputMulti() + { + return $this->outputMulti; + } + + public function setOutputValue($outputValue) + { + $this->outputValue = $outputValue; + } + + public function getOutputValue() + { + return $this->outputValue; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Prediction_OutputOutputMulti extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $label; + public $score; + + public function setLabel($label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } + + public function setScore($score) + { + $this->score = $score; + } + + public function getScore() + { + return $this->score; + } +} + +class Google_Service_Prediction_PredictionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Prediction_Insert2'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Prediction_Update extends Google_Collection +{ + protected $collection_key = 'csvInstance'; + protected $internal_gapi_mappings = array( + ); + public $csvInstance; + public $output; + + public function setCsvInstance($csvInstance) + { + $this->csvInstance = $csvInstance; + } + + public function getCsvInstance() + { + return $this->csvInstance; + } + + public function setOutput($output) + { + $this->output = $output; + } + + public function getOutput() + { + return $this->output; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Pubsub.php b/vendor/google/apiclient/src/Google/Service/Pubsub.php new file mode 100644 index 0000000..e1af471 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Pubsub.php @@ -0,0 +1,859 @@ + + * Provides reliable, many-to-many, asynchronous messaging between applications. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Pubsub extends Google_Service +{ + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** View and manage Pub/Sub topics and subscriptions. */ + const PUBSUB = "https://www.googleapis.com/auth/pubsub"; + + public $subscriptions; + public $topics; + + + /** + * Constructs the internal representation of the Pubsub service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'pubsub/v1beta1/'; + $this->version = 'v1beta1'; + $this->serviceName = 'pubsub'; + + $this->subscriptions = new Google_Service_Pubsub_Subscriptions_Resource( + $this, + $this->serviceName, + 'subscriptions', + array( + 'methods' => array( + 'acknowledge' => array( + 'path' => 'subscriptions/acknowledge', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'create' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'subscriptions/{+subscription}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'subscription' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'subscriptions/{+subscription}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'subscription' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'modifyAckDeadline' => array( + 'path' => 'subscriptions/modifyAckDeadline', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'modifyPushConfig' => array( + 'path' => 'subscriptions/modifyPushConfig', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'pull' => array( + 'path' => 'subscriptions/pull', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->topics = new Google_Service_Pubsub_Topics_Resource( + $this, + $this->serviceName, + 'topics', + array( + 'methods' => array( + 'create' => array( + 'path' => 'topics', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => 'topics/{+topic}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'topic' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'topics/{+topic}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'topic' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'topics', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'query' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'publish' => array( + 'path' => 'topics/publish', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "subscriptions" collection of methods. + * Typical usage is: + * + * $pubsubService = new Google_Service_Pubsub(...); + * $subscriptions = $pubsubService->subscriptions; + * + */ +class Google_Service_Pubsub_Subscriptions_Resource extends Google_Service_Resource +{ + + /** + * Acknowledges a particular received message: the Pub/Sub system can remove the + * given message from the subscription. Acknowledging a message whose Ack + * deadline has expired may succeed, but the message could have been already + * redelivered. Acknowledging a message more than once will not result in an + * error. This is only used for messages received via pull. + * (subscriptions.acknowledge) + * + * @param Google_AcknowledgeRequest $postBody + * @param array $optParams Optional parameters. + */ + public function acknowledge(Google_Service_Pubsub_AcknowledgeRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('acknowledge', array($params)); + } + /** + * Creates a subscription on a given topic for a given subscriber. If the + * subscription already exists, returns ALREADY_EXISTS. If the corresponding + * topic doesn't exist, returns NOT_FOUND. (subscriptions.create) + * + * @param Google_Subscription $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Pubsub_Subscription + */ + public function create(Google_Service_Pubsub_Subscription $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Pubsub_Subscription"); + } + /** + * Deletes an existing subscription. All pending messages in the subscription + * are immediately dropped. Calls to Pull after deletion will return NOT_FOUND. + * (subscriptions.delete) + * + * @param string $subscription + * The subscription to delete. + * @param array $optParams Optional parameters. + */ + public function delete($subscription, $optParams = array()) + { + $params = array('subscription' => $subscription); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the configuration details of a subscription. (subscriptions.get) + * + * @param string $subscription + * The name of the subscription to get. + * @param array $optParams Optional parameters. + * @return Google_Service_Pubsub_Subscription + */ + public function get($subscription, $optParams = array()) + { + $params = array('subscription' => $subscription); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Pubsub_Subscription"); + } + /** + * Lists matching subscriptions. (subscriptions.listSubscriptions) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The value obtained in the last ListSubscriptionsResponse for continuation. + * @opt_param int maxResults + * Maximum number of subscriptions to return. + * @opt_param string query + * A valid label query expression. + * @return Google_Service_Pubsub_ListSubscriptionsResponse + */ + public function listSubscriptions($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Pubsub_ListSubscriptionsResponse"); + } + /** + * Modifies the Ack deadline for a message received from a pull request. + * (subscriptions.modifyAckDeadline) + * + * @param Google_ModifyAckDeadlineRequest $postBody + * @param array $optParams Optional parameters. + */ + public function modifyAckDeadline(Google_Service_Pubsub_ModifyAckDeadlineRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('modifyAckDeadline', array($params)); + } + /** + * Modifies the PushConfig for a specified subscription. This method can be used + * to suspend the flow of messages to an end point by clearing the PushConfig + * field in the request. Messages will be accumulated for delivery even if no + * push configuration is defined or while the configuration is modified. + * (subscriptions.modifyPushConfig) + * + * @param Google_ModifyPushConfigRequest $postBody + * @param array $optParams Optional parameters. + */ + public function modifyPushConfig(Google_Service_Pubsub_ModifyPushConfigRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('modifyPushConfig', array($params)); + } + /** + * Pulls a single message from the server. If return_immediately is true, and no + * messages are available in the subscription, this method returns + * FAILED_PRECONDITION. The system is free to return an UNAVAILABLE error if no + * messages are available in a reasonable amount of time (to reduce system + * load). (subscriptions.pull) + * + * @param Google_PullRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Pubsub_PullResponse + */ + public function pull(Google_Service_Pubsub_PullRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('pull', array($params), "Google_Service_Pubsub_PullResponse"); + } +} + +/** + * The "topics" collection of methods. + * Typical usage is: + * + * $pubsubService = new Google_Service_Pubsub(...); + * $topics = $pubsubService->topics; + * + */ +class Google_Service_Pubsub_Topics_Resource extends Google_Service_Resource +{ + + /** + * Creates the given topic with the given name. (topics.create) + * + * @param Google_Topic $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Pubsub_Topic + */ + public function create(Google_Service_Pubsub_Topic $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('create', array($params), "Google_Service_Pubsub_Topic"); + } + /** + * Deletes the topic with the given name. All subscriptions to this topic are + * also deleted. Returns NOT_FOUND if the topic does not exist. After a topic is + * deleted, a new topic may be created with the same name. (topics.delete) + * + * @param string $topic + * Name of the topic to delete. + * @param array $optParams Optional parameters. + */ + public function delete($topic, $optParams = array()) + { + $params = array('topic' => $topic); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets the configuration of a topic. Since the topic only has the name + * attribute, this method is only useful to check the existence of a topic. If + * other attributes are added in the future, they will be returned here. + * (topics.get) + * + * @param string $topic + * The name of the topic to get. + * @param array $optParams Optional parameters. + * @return Google_Service_Pubsub_Topic + */ + public function get($topic, $optParams = array()) + { + $params = array('topic' => $topic); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Pubsub_Topic"); + } + /** + * Lists matching topics. (topics.listTopics) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The value obtained in the last ListTopicsResponse for continuation. + * @opt_param int maxResults + * Maximum number of topics to return. + * @opt_param string query + * A valid label query expression. + * @return Google_Service_Pubsub_ListTopicsResponse + */ + public function listTopics($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Pubsub_ListTopicsResponse"); + } + /** + * Adds a message to the topic. Returns NOT_FOUND if the topic does not exist. + * (topics.publish) + * + * @param Google_PublishRequest $postBody + * @param array $optParams Optional parameters. + */ + public function publish(Google_Service_Pubsub_PublishRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('publish', array($params)); + } +} + + + + +class Google_Service_Pubsub_AcknowledgeRequest extends Google_Collection +{ + protected $collection_key = 'ackId'; + protected $internal_gapi_mappings = array( + ); + public $ackId; + public $subscription; + + public function setAckId($ackId) + { + $this->ackId = $ackId; + } + + public function getAckId() + { + return $this->ackId; + } + + public function setSubscription($subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } +} + +class Google_Service_Pubsub_Label extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $numValue; + public $strValue; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setNumValue($numValue) + { + $this->numValue = $numValue; + } + + public function getNumValue() + { + return $this->numValue; + } + + public function setStrValue($strValue) + { + $this->strValue = $strValue; + } + + public function getStrValue() + { + return $this->strValue; + } +} + +class Google_Service_Pubsub_ListSubscriptionsResponse extends Google_Collection +{ + protected $collection_key = 'subscription'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $subscriptionType = 'Google_Service_Pubsub_Subscription'; + protected $subscriptionDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSubscription($subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } +} + +class Google_Service_Pubsub_ListTopicsResponse extends Google_Collection +{ + protected $collection_key = 'topic'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $topicType = 'Google_Service_Pubsub_Topic'; + protected $topicDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTopic($topic) + { + $this->topic = $topic; + } + + public function getTopic() + { + return $this->topic; + } +} + +class Google_Service_Pubsub_ModifyAckDeadlineRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $ackDeadlineSeconds; + public $ackId; + public $subscription; + + public function setAckDeadlineSeconds($ackDeadlineSeconds) + { + $this->ackDeadlineSeconds = $ackDeadlineSeconds; + } + + public function getAckDeadlineSeconds() + { + return $this->ackDeadlineSeconds; + } + + public function setAckId($ackId) + { + $this->ackId = $ackId; + } + + public function getAckId() + { + return $this->ackId; + } + + public function setSubscription($subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } +} + +class Google_Service_Pubsub_ModifyPushConfigRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $pushConfigType = 'Google_Service_Pubsub_PushConfig'; + protected $pushConfigDataType = ''; + public $subscription; + + public function setPushConfig(Google_Service_Pubsub_PushConfig $pushConfig) + { + $this->pushConfig = $pushConfig; + } + + public function getPushConfig() + { + return $this->pushConfig; + } + + public function setSubscription($subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } +} + +class Google_Service_Pubsub_PublishRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $messageType = 'Google_Service_Pubsub_PubsubMessage'; + protected $messageDataType = ''; + public $topic; + + public function setMessage(Google_Service_Pubsub_PubsubMessage $message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setTopic($topic) + { + $this->topic = $topic; + } + + public function getTopic() + { + return $this->topic; + } +} + +class Google_Service_Pubsub_PubsubEvent extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deleted; + protected $messageType = 'Google_Service_Pubsub_PubsubMessage'; + protected $messageDataType = ''; + public $subscription; + public $truncated; + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setMessage(Google_Service_Pubsub_PubsubMessage $message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setSubscription($subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } + + public function setTruncated($truncated) + { + $this->truncated = $truncated; + } + + public function getTruncated() + { + return $this->truncated; + } +} + +class Google_Service_Pubsub_PubsubMessage extends Google_Collection +{ + protected $collection_key = 'label'; + protected $internal_gapi_mappings = array( + ); + public $data; + protected $labelType = 'Google_Service_Pubsub_Label'; + protected $labelDataType = 'array'; + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setLabel($label) + { + $this->label = $label; + } + + public function getLabel() + { + return $this->label; + } +} + +class Google_Service_Pubsub_PullRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $returnImmediately; + public $subscription; + + public function setReturnImmediately($returnImmediately) + { + $this->returnImmediately = $returnImmediately; + } + + public function getReturnImmediately() + { + return $this->returnImmediately; + } + + public function setSubscription($subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } +} + +class Google_Service_Pubsub_PullResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $ackId; + protected $pubsubEventType = 'Google_Service_Pubsub_PubsubEvent'; + protected $pubsubEventDataType = ''; + + public function setAckId($ackId) + { + $this->ackId = $ackId; + } + + public function getAckId() + { + return $this->ackId; + } + + public function setPubsubEvent(Google_Service_Pubsub_PubsubEvent $pubsubEvent) + { + $this->pubsubEvent = $pubsubEvent; + } + + public function getPubsubEvent() + { + return $this->pubsubEvent; + } +} + +class Google_Service_Pubsub_PushConfig extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $pushEndpoint; + + public function setPushEndpoint($pushEndpoint) + { + $this->pushEndpoint = $pushEndpoint; + } + + public function getPushEndpoint() + { + return $this->pushEndpoint; + } +} + +class Google_Service_Pubsub_Subscription extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $ackDeadlineSeconds; + public $name; + protected $pushConfigType = 'Google_Service_Pubsub_PushConfig'; + protected $pushConfigDataType = ''; + public $topic; + + public function setAckDeadlineSeconds($ackDeadlineSeconds) + { + $this->ackDeadlineSeconds = $ackDeadlineSeconds; + } + + public function getAckDeadlineSeconds() + { + return $this->ackDeadlineSeconds; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPushConfig(Google_Service_Pubsub_PushConfig $pushConfig) + { + $this->pushConfig = $pushConfig; + } + + public function getPushConfig() + { + return $this->pushConfig; + } + + public function setTopic($topic) + { + $this->topic = $topic; + } + + public function getTopic() + { + return $this->topic; + } +} + +class Google_Service_Pubsub_Topic extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/QPXExpress.php b/vendor/google/apiclient/src/Google/Service/QPXExpress.php new file mode 100644 index 0000000..cebd4f5 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/QPXExpress.php @@ -0,0 +1,1759 @@ + + * Lets you find the least expensive flights between an origin and a destination. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_QPXExpress extends Google_Service +{ + + + public $trips; + + + /** + * Constructs the internal representation of the QPXExpress service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'qpxExpress/v1/trips/'; + $this->version = 'v1'; + $this->serviceName = 'qpxExpress'; + + $this->trips = new Google_Service_QPXExpress_Trips_Resource( + $this, + $this->serviceName, + 'trips', + array( + 'methods' => array( + 'search' => array( + 'path' => 'search', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "trips" collection of methods. + * Typical usage is: + * + * $qpxExpressService = new Google_Service_QPXExpress(...); + * $trips = $qpxExpressService->trips; + * + */ +class Google_Service_QPXExpress_Trips_Resource extends Google_Service_Resource +{ + + /** + * Returns a list of flights. (trips.search) + * + * @param Google_TripsSearchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_QPXExpress_TripsSearchResponse + */ + public function search(Google_Service_QPXExpress_TripsSearchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('search', array($params), "Google_Service_QPXExpress_TripsSearchResponse"); + } +} + + + + +class Google_Service_QPXExpress_AircraftData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $kind; + public $name; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_QPXExpress_AirportData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $city; + public $code; + public $kind; + public $name; + + public function setCity($city) + { + $this->city = $city; + } + + public function getCity() + { + return $this->city; + } + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_QPXExpress_BagDescriptor extends Google_Collection +{ + protected $collection_key = 'description'; + protected $internal_gapi_mappings = array( + ); + public $commercialName; + public $count; + public $description; + public $kind; + public $subcode; + + public function setCommercialName($commercialName) + { + $this->commercialName = $commercialName; + } + + public function getCommercialName() + { + return $this->commercialName; + } + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSubcode($subcode) + { + $this->subcode = $subcode; + } + + public function getSubcode() + { + return $this->subcode; + } +} + +class Google_Service_QPXExpress_CarrierData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $kind; + public $name; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_QPXExpress_CityData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $country; + public $kind; + public $name; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_QPXExpress_Data extends Google_Collection +{ + protected $collection_key = 'tax'; + protected $internal_gapi_mappings = array( + ); + protected $aircraftType = 'Google_Service_QPXExpress_AircraftData'; + protected $aircraftDataType = 'array'; + protected $airportType = 'Google_Service_QPXExpress_AirportData'; + protected $airportDataType = 'array'; + protected $carrierType = 'Google_Service_QPXExpress_CarrierData'; + protected $carrierDataType = 'array'; + protected $cityType = 'Google_Service_QPXExpress_CityData'; + protected $cityDataType = 'array'; + public $kind; + protected $taxType = 'Google_Service_QPXExpress_TaxData'; + protected $taxDataType = 'array'; + + public function setAircraft($aircraft) + { + $this->aircraft = $aircraft; + } + + public function getAircraft() + { + return $this->aircraft; + } + + public function setAirport($airport) + { + $this->airport = $airport; + } + + public function getAirport() + { + return $this->airport; + } + + public function setCarrier($carrier) + { + $this->carrier = $carrier; + } + + public function getCarrier() + { + return $this->carrier; + } + + public function setCity($city) + { + $this->city = $city; + } + + public function getCity() + { + return $this->city; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTax($tax) + { + $this->tax = $tax; + } + + public function getTax() + { + return $this->tax; + } +} + +class Google_Service_QPXExpress_FareInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $basisCode; + public $carrier; + public $destination; + public $id; + public $kind; + public $origin; + public $private; + + public function setBasisCode($basisCode) + { + $this->basisCode = $basisCode; + } + + public function getBasisCode() + { + return $this->basisCode; + } + + public function setCarrier($carrier) + { + $this->carrier = $carrier; + } + + public function getCarrier() + { + return $this->carrier; + } + + public function setDestination($destination) + { + $this->destination = $destination; + } + + public function getDestination() + { + return $this->destination; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOrigin($origin) + { + $this->origin = $origin; + } + + public function getOrigin() + { + return $this->origin; + } + + public function setPrivate($private) + { + $this->private = $private; + } + + public function getPrivate() + { + return $this->private; + } +} + +class Google_Service_QPXExpress_FlightInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $carrier; + public $number; + + public function setCarrier($carrier) + { + $this->carrier = $carrier; + } + + public function getCarrier() + { + return $this->carrier; + } + + public function setNumber($number) + { + $this->number = $number; + } + + public function getNumber() + { + return $this->number; + } +} + +class Google_Service_QPXExpress_FreeBaggageAllowance extends Google_Collection +{ + protected $collection_key = 'bagDescriptor'; + protected $internal_gapi_mappings = array( + ); + protected $bagDescriptorType = 'Google_Service_QPXExpress_BagDescriptor'; + protected $bagDescriptorDataType = 'array'; + public $kilos; + public $kilosPerPiece; + public $kind; + public $pieces; + public $pounds; + + public function setBagDescriptor($bagDescriptor) + { + $this->bagDescriptor = $bagDescriptor; + } + + public function getBagDescriptor() + { + return $this->bagDescriptor; + } + + public function setKilos($kilos) + { + $this->kilos = $kilos; + } + + public function getKilos() + { + return $this->kilos; + } + + public function setKilosPerPiece($kilosPerPiece) + { + $this->kilosPerPiece = $kilosPerPiece; + } + + public function getKilosPerPiece() + { + return $this->kilosPerPiece; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPieces($pieces) + { + $this->pieces = $pieces; + } + + public function getPieces() + { + return $this->pieces; + } + + public function setPounds($pounds) + { + $this->pounds = $pounds; + } + + public function getPounds() + { + return $this->pounds; + } +} + +class Google_Service_QPXExpress_LegInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $aircraft; + public $arrivalTime; + public $changePlane; + public $connectionDuration; + public $departureTime; + public $destination; + public $destinationTerminal; + public $duration; + public $id; + public $kind; + public $meal; + public $mileage; + public $onTimePerformance; + public $operatingDisclosure; + public $origin; + public $originTerminal; + public $secure; + + public function setAircraft($aircraft) + { + $this->aircraft = $aircraft; + } + + public function getAircraft() + { + return $this->aircraft; + } + + public function setArrivalTime($arrivalTime) + { + $this->arrivalTime = $arrivalTime; + } + + public function getArrivalTime() + { + return $this->arrivalTime; + } + + public function setChangePlane($changePlane) + { + $this->changePlane = $changePlane; + } + + public function getChangePlane() + { + return $this->changePlane; + } + + public function setConnectionDuration($connectionDuration) + { + $this->connectionDuration = $connectionDuration; + } + + public function getConnectionDuration() + { + return $this->connectionDuration; + } + + public function setDepartureTime($departureTime) + { + $this->departureTime = $departureTime; + } + + public function getDepartureTime() + { + return $this->departureTime; + } + + public function setDestination($destination) + { + $this->destination = $destination; + } + + public function getDestination() + { + return $this->destination; + } + + public function setDestinationTerminal($destinationTerminal) + { + $this->destinationTerminal = $destinationTerminal; + } + + public function getDestinationTerminal() + { + return $this->destinationTerminal; + } + + public function setDuration($duration) + { + $this->duration = $duration; + } + + public function getDuration() + { + return $this->duration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMeal($meal) + { + $this->meal = $meal; + } + + public function getMeal() + { + return $this->meal; + } + + public function setMileage($mileage) + { + $this->mileage = $mileage; + } + + public function getMileage() + { + return $this->mileage; + } + + public function setOnTimePerformance($onTimePerformance) + { + $this->onTimePerformance = $onTimePerformance; + } + + public function getOnTimePerformance() + { + return $this->onTimePerformance; + } + + public function setOperatingDisclosure($operatingDisclosure) + { + $this->operatingDisclosure = $operatingDisclosure; + } + + public function getOperatingDisclosure() + { + return $this->operatingDisclosure; + } + + public function setOrigin($origin) + { + $this->origin = $origin; + } + + public function getOrigin() + { + return $this->origin; + } + + public function setOriginTerminal($originTerminal) + { + $this->originTerminal = $originTerminal; + } + + public function getOriginTerminal() + { + return $this->originTerminal; + } + + public function setSecure($secure) + { + $this->secure = $secure; + } + + public function getSecure() + { + return $this->secure; + } +} + +class Google_Service_QPXExpress_PassengerCounts extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $adultCount; + public $childCount; + public $infantInLapCount; + public $infantInSeatCount; + public $kind; + public $seniorCount; + + public function setAdultCount($adultCount) + { + $this->adultCount = $adultCount; + } + + public function getAdultCount() + { + return $this->adultCount; + } + + public function setChildCount($childCount) + { + $this->childCount = $childCount; + } + + public function getChildCount() + { + return $this->childCount; + } + + public function setInfantInLapCount($infantInLapCount) + { + $this->infantInLapCount = $infantInLapCount; + } + + public function getInfantInLapCount() + { + return $this->infantInLapCount; + } + + public function setInfantInSeatCount($infantInSeatCount) + { + $this->infantInSeatCount = $infantInSeatCount; + } + + public function getInfantInSeatCount() + { + return $this->infantInSeatCount; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSeniorCount($seniorCount) + { + $this->seniorCount = $seniorCount; + } + + public function getSeniorCount() + { + return $this->seniorCount; + } +} + +class Google_Service_QPXExpress_PricingInfo extends Google_Collection +{ + protected $collection_key = 'tax'; + protected $internal_gapi_mappings = array( + ); + public $baseFareTotal; + protected $fareType = 'Google_Service_QPXExpress_FareInfo'; + protected $fareDataType = 'array'; + public $fareCalculation; + public $kind; + public $latestTicketingTime; + protected $passengersType = 'Google_Service_QPXExpress_PassengerCounts'; + protected $passengersDataType = ''; + public $ptc; + public $refundable; + public $saleFareTotal; + public $saleTaxTotal; + public $saleTotal; + protected $segmentPricingType = 'Google_Service_QPXExpress_SegmentPricing'; + protected $segmentPricingDataType = 'array'; + protected $taxType = 'Google_Service_QPXExpress_TaxInfo'; + protected $taxDataType = 'array'; + + public function setBaseFareTotal($baseFareTotal) + { + $this->baseFareTotal = $baseFareTotal; + } + + public function getBaseFareTotal() + { + return $this->baseFareTotal; + } + + public function setFare($fare) + { + $this->fare = $fare; + } + + public function getFare() + { + return $this->fare; + } + + public function setFareCalculation($fareCalculation) + { + $this->fareCalculation = $fareCalculation; + } + + public function getFareCalculation() + { + return $this->fareCalculation; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLatestTicketingTime($latestTicketingTime) + { + $this->latestTicketingTime = $latestTicketingTime; + } + + public function getLatestTicketingTime() + { + return $this->latestTicketingTime; + } + + public function setPassengers(Google_Service_QPXExpress_PassengerCounts $passengers) + { + $this->passengers = $passengers; + } + + public function getPassengers() + { + return $this->passengers; + } + + public function setPtc($ptc) + { + $this->ptc = $ptc; + } + + public function getPtc() + { + return $this->ptc; + } + + public function setRefundable($refundable) + { + $this->refundable = $refundable; + } + + public function getRefundable() + { + return $this->refundable; + } + + public function setSaleFareTotal($saleFareTotal) + { + $this->saleFareTotal = $saleFareTotal; + } + + public function getSaleFareTotal() + { + return $this->saleFareTotal; + } + + public function setSaleTaxTotal($saleTaxTotal) + { + $this->saleTaxTotal = $saleTaxTotal; + } + + public function getSaleTaxTotal() + { + return $this->saleTaxTotal; + } + + public function setSaleTotal($saleTotal) + { + $this->saleTotal = $saleTotal; + } + + public function getSaleTotal() + { + return $this->saleTotal; + } + + public function setSegmentPricing($segmentPricing) + { + $this->segmentPricing = $segmentPricing; + } + + public function getSegmentPricing() + { + return $this->segmentPricing; + } + + public function setTax($tax) + { + $this->tax = $tax; + } + + public function getTax() + { + return $this->tax; + } +} + +class Google_Service_QPXExpress_SegmentInfo extends Google_Collection +{ + protected $collection_key = 'leg'; + protected $internal_gapi_mappings = array( + ); + public $bookingCode; + public $bookingCodeCount; + public $cabin; + public $connectionDuration; + public $duration; + protected $flightType = 'Google_Service_QPXExpress_FlightInfo'; + protected $flightDataType = ''; + public $id; + public $kind; + protected $legType = 'Google_Service_QPXExpress_LegInfo'; + protected $legDataType = 'array'; + public $marriedSegmentGroup; + public $subjectToGovernmentApproval; + + public function setBookingCode($bookingCode) + { + $this->bookingCode = $bookingCode; + } + + public function getBookingCode() + { + return $this->bookingCode; + } + + public function setBookingCodeCount($bookingCodeCount) + { + $this->bookingCodeCount = $bookingCodeCount; + } + + public function getBookingCodeCount() + { + return $this->bookingCodeCount; + } + + public function setCabin($cabin) + { + $this->cabin = $cabin; + } + + public function getCabin() + { + return $this->cabin; + } + + public function setConnectionDuration($connectionDuration) + { + $this->connectionDuration = $connectionDuration; + } + + public function getConnectionDuration() + { + return $this->connectionDuration; + } + + public function setDuration($duration) + { + $this->duration = $duration; + } + + public function getDuration() + { + return $this->duration; + } + + public function setFlight(Google_Service_QPXExpress_FlightInfo $flight) + { + $this->flight = $flight; + } + + public function getFlight() + { + return $this->flight; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeg($leg) + { + $this->leg = $leg; + } + + public function getLeg() + { + return $this->leg; + } + + public function setMarriedSegmentGroup($marriedSegmentGroup) + { + $this->marriedSegmentGroup = $marriedSegmentGroup; + } + + public function getMarriedSegmentGroup() + { + return $this->marriedSegmentGroup; + } + + public function setSubjectToGovernmentApproval($subjectToGovernmentApproval) + { + $this->subjectToGovernmentApproval = $subjectToGovernmentApproval; + } + + public function getSubjectToGovernmentApproval() + { + return $this->subjectToGovernmentApproval; + } +} + +class Google_Service_QPXExpress_SegmentPricing extends Google_Collection +{ + protected $collection_key = 'freeBaggageOption'; + protected $internal_gapi_mappings = array( + ); + public $fareId; + protected $freeBaggageOptionType = 'Google_Service_QPXExpress_FreeBaggageAllowance'; + protected $freeBaggageOptionDataType = 'array'; + public $kind; + public $segmentId; + + public function setFareId($fareId) + { + $this->fareId = $fareId; + } + + public function getFareId() + { + return $this->fareId; + } + + public function setFreeBaggageOption($freeBaggageOption) + { + $this->freeBaggageOption = $freeBaggageOption; + } + + public function getFreeBaggageOption() + { + return $this->freeBaggageOption; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSegmentId($segmentId) + { + $this->segmentId = $segmentId; + } + + public function getSegmentId() + { + return $this->segmentId; + } +} + +class Google_Service_QPXExpress_SliceInfo extends Google_Collection +{ + protected $collection_key = 'segment'; + protected $internal_gapi_mappings = array( + ); + public $duration; + public $kind; + protected $segmentType = 'Google_Service_QPXExpress_SegmentInfo'; + protected $segmentDataType = 'array'; + + public function setDuration($duration) + { + $this->duration = $duration; + } + + public function getDuration() + { + return $this->duration; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSegment($segment) + { + $this->segment = $segment; + } + + public function getSegment() + { + return $this->segment; + } +} + +class Google_Service_QPXExpress_SliceInput extends Google_Collection +{ + protected $collection_key = 'prohibitedCarrier'; + protected $internal_gapi_mappings = array( + ); + public $alliance; + public $date; + public $destination; + public $kind; + public $maxConnectionDuration; + public $maxStops; + public $origin; + public $permittedCarrier; + protected $permittedDepartureTimeType = 'Google_Service_QPXExpress_TimeOfDayRange'; + protected $permittedDepartureTimeDataType = ''; + public $preferredCabin; + public $prohibitedCarrier; + + public function setAlliance($alliance) + { + $this->alliance = $alliance; + } + + public function getAlliance() + { + return $this->alliance; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setDestination($destination) + { + $this->destination = $destination; + } + + public function getDestination() + { + return $this->destination; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxConnectionDuration($maxConnectionDuration) + { + $this->maxConnectionDuration = $maxConnectionDuration; + } + + public function getMaxConnectionDuration() + { + return $this->maxConnectionDuration; + } + + public function setMaxStops($maxStops) + { + $this->maxStops = $maxStops; + } + + public function getMaxStops() + { + return $this->maxStops; + } + + public function setOrigin($origin) + { + $this->origin = $origin; + } + + public function getOrigin() + { + return $this->origin; + } + + public function setPermittedCarrier($permittedCarrier) + { + $this->permittedCarrier = $permittedCarrier; + } + + public function getPermittedCarrier() + { + return $this->permittedCarrier; + } + + public function setPermittedDepartureTime(Google_Service_QPXExpress_TimeOfDayRange $permittedDepartureTime) + { + $this->permittedDepartureTime = $permittedDepartureTime; + } + + public function getPermittedDepartureTime() + { + return $this->permittedDepartureTime; + } + + public function setPreferredCabin($preferredCabin) + { + $this->preferredCabin = $preferredCabin; + } + + public function getPreferredCabin() + { + return $this->preferredCabin; + } + + public function setProhibitedCarrier($prohibitedCarrier) + { + $this->prohibitedCarrier = $prohibitedCarrier; + } + + public function getProhibitedCarrier() + { + return $this->prohibitedCarrier; + } +} + +class Google_Service_QPXExpress_TaxData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + public $name; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_QPXExpress_TaxInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $chargeType; + public $code; + public $country; + public $id; + public $kind; + public $salePrice; + + public function setChargeType($chargeType) + { + $this->chargeType = $chargeType; + } + + public function getChargeType() + { + return $this->chargeType; + } + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSalePrice($salePrice) + { + $this->salePrice = $salePrice; + } + + public function getSalePrice() + { + return $this->salePrice; + } +} + +class Google_Service_QPXExpress_TimeOfDayRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $earliestTime; + public $kind; + public $latestTime; + + public function setEarliestTime($earliestTime) + { + $this->earliestTime = $earliestTime; + } + + public function getEarliestTime() + { + return $this->earliestTime; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLatestTime($latestTime) + { + $this->latestTime = $latestTime; + } + + public function getLatestTime() + { + return $this->latestTime; + } +} + +class Google_Service_QPXExpress_TripOption extends Google_Collection +{ + protected $collection_key = 'slice'; + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + protected $pricingType = 'Google_Service_QPXExpress_PricingInfo'; + protected $pricingDataType = 'array'; + public $saleTotal; + protected $sliceType = 'Google_Service_QPXExpress_SliceInfo'; + protected $sliceDataType = 'array'; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPricing($pricing) + { + $this->pricing = $pricing; + } + + public function getPricing() + { + return $this->pricing; + } + + public function setSaleTotal($saleTotal) + { + $this->saleTotal = $saleTotal; + } + + public function getSaleTotal() + { + return $this->saleTotal; + } + + public function setSlice($slice) + { + $this->slice = $slice; + } + + public function getSlice() + { + return $this->slice; + } +} + +class Google_Service_QPXExpress_TripOptionsRequest extends Google_Collection +{ + protected $collection_key = 'slice'; + protected $internal_gapi_mappings = array( + ); + public $maxPrice; + protected $passengersType = 'Google_Service_QPXExpress_PassengerCounts'; + protected $passengersDataType = ''; + public $refundable; + public $saleCountry; + protected $sliceType = 'Google_Service_QPXExpress_SliceInput'; + protected $sliceDataType = 'array'; + public $solutions; + + public function setMaxPrice($maxPrice) + { + $this->maxPrice = $maxPrice; + } + + public function getMaxPrice() + { + return $this->maxPrice; + } + + public function setPassengers(Google_Service_QPXExpress_PassengerCounts $passengers) + { + $this->passengers = $passengers; + } + + public function getPassengers() + { + return $this->passengers; + } + + public function setRefundable($refundable) + { + $this->refundable = $refundable; + } + + public function getRefundable() + { + return $this->refundable; + } + + public function setSaleCountry($saleCountry) + { + $this->saleCountry = $saleCountry; + } + + public function getSaleCountry() + { + return $this->saleCountry; + } + + public function setSlice($slice) + { + $this->slice = $slice; + } + + public function getSlice() + { + return $this->slice; + } + + public function setSolutions($solutions) + { + $this->solutions = $solutions; + } + + public function getSolutions() + { + return $this->solutions; + } +} + +class Google_Service_QPXExpress_TripOptionsResponse extends Google_Collection +{ + protected $collection_key = 'tripOption'; + protected $internal_gapi_mappings = array( + ); + protected $dataType = 'Google_Service_QPXExpress_Data'; + protected $dataDataType = ''; + public $kind; + public $requestId; + protected $tripOptionType = 'Google_Service_QPXExpress_TripOption'; + protected $tripOptionDataType = 'array'; + + public function setData(Google_Service_QPXExpress_Data $data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + public function getRequestId() + { + return $this->requestId; + } + + public function setTripOption($tripOption) + { + $this->tripOption = $tripOption; + } + + public function getTripOption() + { + return $this->tripOption; + } +} + +class Google_Service_QPXExpress_TripsSearchRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $requestType = 'Google_Service_QPXExpress_TripOptionsRequest'; + protected $requestDataType = ''; + + public function setRequest(Google_Service_QPXExpress_TripOptionsRequest $request) + { + $this->request = $request; + } + + public function getRequest() + { + return $this->request; + } +} + +class Google_Service_QPXExpress_TripsSearchResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $tripsType = 'Google_Service_QPXExpress_TripOptionsResponse'; + protected $tripsDataType = ''; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTrips(Google_Service_QPXExpress_TripOptionsResponse $trips) + { + $this->trips = $trips; + } + + public function getTrips() + { + return $this->trips; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Replicapool.php b/vendor/google/apiclient/src/Google/Service/Replicapool.php new file mode 100644 index 0000000..22bb942 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Replicapool.php @@ -0,0 +1,1658 @@ + + * The Replica Pool API allows users to declaratively provision and manage groups of Google Compute Engine instances based on a common template. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Replicapool extends Google_Service +{ + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** View and manage your Google Cloud Platform management resources and deployment status information. */ + const NDEV_CLOUDMAN = "https://www.googleapis.com/auth/ndev.cloudman"; + /** View your Google Cloud Platform management resources and deployment status information. */ + const NDEV_CLOUDMAN_READONLY = "https://www.googleapis.com/auth/ndev.cloudman.readonly"; + /** View and manage replica pools. */ + const REPLICAPOOL = "https://www.googleapis.com/auth/replicapool"; + /** View replica pools. */ + const REPLICAPOOL_READONLY = "https://www.googleapis.com/auth/replicapool.readonly"; + + public $pools; + public $replicas; + + + /** + * Constructs the internal representation of the Replicapool service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'replicapool/v1beta1/projects/'; + $this->version = 'v1beta1'; + $this->serviceName = 'replicapool'; + + $this->pools = new Google_Service_Replicapool_Pools_Resource( + $this, + $this->serviceName, + 'pools', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{projectName}/zones/{zone}/pools', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{projectName}/zones/{zone}/pools', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'resize' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}/resize', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'numReplicas' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'updatetemplate' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}/updateTemplate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->replicas = new Google_Service_Replicapool_Replicas_Resource( + $this, + $this->serviceName, + 'replicas', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}/replicas/{replicaName}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replicaName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}/replicas/{replicaName}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replicaName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}/replicas', + 'httpMethod' => 'GET', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'restart' => array( + 'path' => '{projectName}/zones/{zone}/pools/{poolName}/replicas/{replicaName}/restart', + 'httpMethod' => 'POST', + 'parameters' => array( + 'projectName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'poolName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replicaName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "pools" collection of methods. + * Typical usage is: + * + * $replicapoolService = new Google_Service_Replicapool(...); + * $pools = $replicapoolService->pools; + * + */ +class Google_Service_Replicapool_Pools_Resource extends Google_Service_Resource +{ + + /** + * Deletes a replica pool. (pools.delete) + * + * @param string $projectName + * The project ID for this replica pool. + * @param string $zone + * The zone for this replica pool. + * @param string $poolName + * The name of the replica pool for this request. + * @param Google_PoolsDeleteRequest $postBody + * @param array $optParams Optional parameters. + */ + public function delete($projectName, $zone, $poolName, Google_Service_Replicapool_PoolsDeleteRequest $postBody, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets information about a single replica pool. (pools.get) + * + * @param string $projectName + * The project ID for this replica pool. + * @param string $zone + * The zone for this replica pool. + * @param string $poolName + * The name of the replica pool for this request. + * @param array $optParams Optional parameters. + * @return Google_Service_Replicapool_Pool + */ + public function get($projectName, $zone, $poolName, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Replicapool_Pool"); + } + /** + * Inserts a new replica pool. (pools.insert) + * + * @param string $projectName + * The project ID for this replica pool. + * @param string $zone + * The zone for this replica pool. + * @param Google_Pool $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Replicapool_Pool + */ + public function insert($projectName, $zone, Google_Service_Replicapool_Pool $postBody, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Replicapool_Pool"); + } + /** + * List all replica pools. (pools.listPools) + * + * @param string $projectName + * The project ID for this request. + * @param string $zone + * The zone for this replica pool. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Set this to the nextPageToken value returned by a previous list request to obtain the next page + * of results from the previous list request. + * @opt_param int maxResults + * Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: + * 50) + * @return Google_Service_Replicapool_PoolsListResponse + */ + public function listPools($projectName, $zone, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Replicapool_PoolsListResponse"); + } + /** + * Resize a pool. This is an asynchronous operation, and multiple overlapping + * resize requests can be made. Replica Pools will use the information from the + * last resize request. (pools.resize) + * + * @param string $projectName + * The project ID for this replica pool. + * @param string $zone + * The zone for this replica pool. + * @param string $poolName + * The name of the replica pool for this request. + * @param array $optParams Optional parameters. + * + * @opt_param int numReplicas + * The desired number of replicas to resize to. If this number is larger than the existing number + * of replicas, new replicas will be added. If the number is smaller, then existing replicas will + * be deleted. + * @return Google_Service_Replicapool_Pool + */ + public function resize($projectName, $zone, $poolName, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName); + $params = array_merge($params, $optParams); + return $this->call('resize', array($params), "Google_Service_Replicapool_Pool"); + } + /** + * Update the template used by the pool. (pools.updatetemplate) + * + * @param string $projectName + * The project ID for this replica pool. + * @param string $zone + * The zone for this replica pool. + * @param string $poolName + * The name of the replica pool for this request. + * @param Google_Template $postBody + * @param array $optParams Optional parameters. + */ + public function updatetemplate($projectName, $zone, $poolName, Google_Service_Replicapool_Template $postBody, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('updatetemplate', array($params)); + } +} + +/** + * The "replicas" collection of methods. + * Typical usage is: + * + * $replicapoolService = new Google_Service_Replicapool(...); + * $replicas = $replicapoolService->replicas; + * + */ +class Google_Service_Replicapool_Replicas_Resource extends Google_Service_Resource +{ + + /** + * Deletes a replica from the pool. (replicas.delete) + * + * @param string $projectName + * The project ID for this request. + * @param string $zone + * The zone where the replica lives. + * @param string $poolName + * The replica pool name for this request. + * @param string $replicaName + * The name of the replica for this request. + * @param Google_ReplicasDeleteRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Replicapool_Replica + */ + public function delete($projectName, $zone, $poolName, $replicaName, Google_Service_Replicapool_ReplicasDeleteRequest $postBody, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName, 'replicaName' => $replicaName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Replicapool_Replica"); + } + /** + * Gets information about a specific replica. (replicas.get) + * + * @param string $projectName + * The project ID for this request. + * @param string $zone + * The zone where the replica lives. + * @param string $poolName + * The replica pool name for this request. + * @param string $replicaName + * The name of the replica for this request. + * @param array $optParams Optional parameters. + * @return Google_Service_Replicapool_Replica + */ + public function get($projectName, $zone, $poolName, $replicaName, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName, 'replicaName' => $replicaName); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Replicapool_Replica"); + } + /** + * Lists all replicas in a pool. (replicas.listReplicas) + * + * @param string $projectName + * The project ID for this request. + * @param string $zone + * The zone where the replica pool lives. + * @param string $poolName + * The replica pool name for this request. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Set this to the nextPageToken value returned by a previous list request to obtain the next page + * of results from the previous list request. + * @opt_param int maxResults + * Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: + * 50) + * @return Google_Service_Replicapool_ReplicasListResponse + */ + public function listReplicas($projectName, $zone, $poolName, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Replicapool_ReplicasListResponse"); + } + /** + * Restarts a replica in a pool. (replicas.restart) + * + * @param string $projectName + * The project ID for this request. + * @param string $zone + * The zone where the replica lives. + * @param string $poolName + * The replica pool name for this request. + * @param string $replicaName + * The name of the replica for this request. + * @param array $optParams Optional parameters. + * @return Google_Service_Replicapool_Replica + */ + public function restart($projectName, $zone, $poolName, $replicaName, $optParams = array()) + { + $params = array('projectName' => $projectName, 'zone' => $zone, 'poolName' => $poolName, 'replicaName' => $replicaName); + $params = array_merge($params, $optParams); + return $this->call('restart', array($params), "Google_Service_Replicapool_Replica"); + } +} + + + + +class Google_Service_Replicapool_AccessConfig extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $natIp; + public $type; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNatIp($natIp) + { + $this->natIp = $natIp; + } + + public function getNatIp() + { + return $this->natIp; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Replicapool_Action extends Google_Collection +{ + protected $collection_key = 'envVariables'; + protected $internal_gapi_mappings = array( + ); + public $commands; + protected $envVariablesType = 'Google_Service_Replicapool_EnvVariable'; + protected $envVariablesDataType = 'array'; + public $timeoutMilliSeconds; + + public function setCommands($commands) + { + $this->commands = $commands; + } + + public function getCommands() + { + return $this->commands; + } + + public function setEnvVariables($envVariables) + { + $this->envVariables = $envVariables; + } + + public function getEnvVariables() + { + return $this->envVariables; + } + + public function setTimeoutMilliSeconds($timeoutMilliSeconds) + { + $this->timeoutMilliSeconds = $timeoutMilliSeconds; + } + + public function getTimeoutMilliSeconds() + { + return $this->timeoutMilliSeconds; + } +} + +class Google_Service_Replicapool_DiskAttachment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deviceName; + public $index; + + public function setDeviceName($deviceName) + { + $this->deviceName = $deviceName; + } + + public function getDeviceName() + { + return $this->deviceName; + } + + public function setIndex($index) + { + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } +} + +class Google_Service_Replicapool_EnvVariable extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hidden; + public $name; + public $value; + + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + public function getHidden() + { + return $this->hidden; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Replicapool_ExistingDisk extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $attachmentType = 'Google_Service_Replicapool_DiskAttachment'; + protected $attachmentDataType = ''; + public $source; + + public function setAttachment(Google_Service_Replicapool_DiskAttachment $attachment) + { + $this->attachment = $attachment; + } + + public function getAttachment() + { + return $this->attachment; + } + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } +} + +class Google_Service_Replicapool_HealthCheck extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $checkIntervalSec; + public $description; + public $healthyThreshold; + public $host; + public $name; + public $path; + public $port; + public $timeoutSec; + public $unhealthyThreshold; + + public function setCheckIntervalSec($checkIntervalSec) + { + $this->checkIntervalSec = $checkIntervalSec; + } + + public function getCheckIntervalSec() + { + return $this->checkIntervalSec; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHealthyThreshold($healthyThreshold) + { + $this->healthyThreshold = $healthyThreshold; + } + + public function getHealthyThreshold() + { + return $this->healthyThreshold; + } + + public function setHost($host) + { + $this->host = $host; + } + + public function getHost() + { + return $this->host; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } + + public function setPort($port) + { + $this->port = $port; + } + + public function getPort() + { + return $this->port; + } + + public function setTimeoutSec($timeoutSec) + { + $this->timeoutSec = $timeoutSec; + } + + public function getTimeoutSec() + { + return $this->timeoutSec; + } + + public function setUnhealthyThreshold($unhealthyThreshold) + { + $this->unhealthyThreshold = $unhealthyThreshold; + } + + public function getUnhealthyThreshold() + { + return $this->unhealthyThreshold; + } +} + +class Google_Service_Replicapool_Label extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Replicapool_Metadata extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $fingerPrint; + protected $itemsType = 'Google_Service_Replicapool_MetadataItem'; + protected $itemsDataType = 'array'; + + public function setFingerPrint($fingerPrint) + { + $this->fingerPrint = $fingerPrint; + } + + public function getFingerPrint() + { + return $this->fingerPrint; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_Replicapool_MetadataItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Replicapool_NetworkInterface extends Google_Collection +{ + protected $collection_key = 'accessConfigs'; + protected $internal_gapi_mappings = array( + ); + protected $accessConfigsType = 'Google_Service_Replicapool_AccessConfig'; + protected $accessConfigsDataType = 'array'; + public $network; + public $networkIp; + + public function setAccessConfigs($accessConfigs) + { + $this->accessConfigs = $accessConfigs; + } + + public function getAccessConfigs() + { + return $this->accessConfigs; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setNetworkIp($networkIp) + { + $this->networkIp = $networkIp; + } + + public function getNetworkIp() + { + return $this->networkIp; + } +} + +class Google_Service_Replicapool_NewDisk extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $attachmentType = 'Google_Service_Replicapool_DiskAttachment'; + protected $attachmentDataType = ''; + public $autoDelete; + public $boot; + protected $initializeParamsType = 'Google_Service_Replicapool_NewDiskInitializeParams'; + protected $initializeParamsDataType = ''; + + public function setAttachment(Google_Service_Replicapool_DiskAttachment $attachment) + { + $this->attachment = $attachment; + } + + public function getAttachment() + { + return $this->attachment; + } + + public function setAutoDelete($autoDelete) + { + $this->autoDelete = $autoDelete; + } + + public function getAutoDelete() + { + return $this->autoDelete; + } + + public function setBoot($boot) + { + $this->boot = $boot; + } + + public function getBoot() + { + return $this->boot; + } + + public function setInitializeParams(Google_Service_Replicapool_NewDiskInitializeParams $initializeParams) + { + $this->initializeParams = $initializeParams; + } + + public function getInitializeParams() + { + return $this->initializeParams; + } +} + +class Google_Service_Replicapool_NewDiskInitializeParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $diskSizeGb; + public $diskType; + public $sourceImage; + + public function setDiskSizeGb($diskSizeGb) + { + $this->diskSizeGb = $diskSizeGb; + } + + public function getDiskSizeGb() + { + return $this->diskSizeGb; + } + + public function setDiskType($diskType) + { + $this->diskType = $diskType; + } + + public function getDiskType() + { + return $this->diskType; + } + + public function setSourceImage($sourceImage) + { + $this->sourceImage = $sourceImage; + } + + public function getSourceImage() + { + return $this->sourceImage; + } +} + +class Google_Service_Replicapool_Pool extends Google_Collection +{ + protected $collection_key = 'targetPools'; + protected $internal_gapi_mappings = array( + ); + public $autoRestart; + public $baseInstanceName; + public $currentNumReplicas; + public $description; + protected $healthChecksType = 'Google_Service_Replicapool_HealthCheck'; + protected $healthChecksDataType = 'array'; + public $initialNumReplicas; + protected $labelsType = 'Google_Service_Replicapool_Label'; + protected $labelsDataType = 'array'; + public $name; + public $numReplicas; + public $resourceViews; + public $selfLink; + public $targetPool; + public $targetPools; + protected $templateType = 'Google_Service_Replicapool_Template'; + protected $templateDataType = ''; + public $type; + + public function setAutoRestart($autoRestart) + { + $this->autoRestart = $autoRestart; + } + + public function getAutoRestart() + { + return $this->autoRestart; + } + + public function setBaseInstanceName($baseInstanceName) + { + $this->baseInstanceName = $baseInstanceName; + } + + public function getBaseInstanceName() + { + return $this->baseInstanceName; + } + + public function setCurrentNumReplicas($currentNumReplicas) + { + $this->currentNumReplicas = $currentNumReplicas; + } + + public function getCurrentNumReplicas() + { + return $this->currentNumReplicas; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } + + public function setInitialNumReplicas($initialNumReplicas) + { + $this->initialNumReplicas = $initialNumReplicas; + } + + public function getInitialNumReplicas() + { + return $this->initialNumReplicas; + } + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNumReplicas($numReplicas) + { + $this->numReplicas = $numReplicas; + } + + public function getNumReplicas() + { + return $this->numReplicas; + } + + public function setResourceViews($resourceViews) + { + $this->resourceViews = $resourceViews; + } + + public function getResourceViews() + { + return $this->resourceViews; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTargetPool($targetPool) + { + $this->targetPool = $targetPool; + } + + public function getTargetPool() + { + return $this->targetPool; + } + + public function setTargetPools($targetPools) + { + $this->targetPools = $targetPools; + } + + public function getTargetPools() + { + return $this->targetPools; + } + + public function setTemplate(Google_Service_Replicapool_Template $template) + { + $this->template = $template; + } + + public function getTemplate() + { + return $this->template; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Replicapool_PoolsDeleteRequest extends Google_Collection +{ + protected $collection_key = 'abandonInstances'; + protected $internal_gapi_mappings = array( + ); + public $abandonInstances; + + public function setAbandonInstances($abandonInstances) + { + $this->abandonInstances = $abandonInstances; + } + + public function getAbandonInstances() + { + return $this->abandonInstances; + } +} + +class Google_Service_Replicapool_PoolsListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $resourcesType = 'Google_Service_Replicapool_Pool'; + protected $resourcesDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_Replicapool_Replica extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $selfLink; + protected $statusType = 'Google_Service_Replicapool_ReplicaStatus'; + protected $statusDataType = ''; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus(Google_Service_Replicapool_ReplicaStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Replicapool_ReplicaStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $details; + public $state; + public $templateVersion; + public $vmLink; + public $vmStartTime; + + public function setDetails($details) + { + $this->details = $details; + } + + public function getDetails() + { + return $this->details; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setTemplateVersion($templateVersion) + { + $this->templateVersion = $templateVersion; + } + + public function getTemplateVersion() + { + return $this->templateVersion; + } + + public function setVmLink($vmLink) + { + $this->vmLink = $vmLink; + } + + public function getVmLink() + { + return $this->vmLink; + } + + public function setVmStartTime($vmStartTime) + { + $this->vmStartTime = $vmStartTime; + } + + public function getVmStartTime() + { + return $this->vmStartTime; + } +} + +class Google_Service_Replicapool_ReplicasDeleteRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $abandonInstance; + + public function setAbandonInstance($abandonInstance) + { + $this->abandonInstance = $abandonInstance; + } + + public function getAbandonInstance() + { + return $this->abandonInstance; + } +} + +class Google_Service_Replicapool_ReplicasListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $nextPageToken; + protected $resourcesType = 'Google_Service_Replicapool_Replica'; + protected $resourcesDataType = 'array'; + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_Replicapool_ServiceAccount extends Google_Collection +{ + protected $collection_key = 'scopes'; + protected $internal_gapi_mappings = array( + ); + public $email; + public $scopes; + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setScopes($scopes) + { + $this->scopes = $scopes; + } + + public function getScopes() + { + return $this->scopes; + } +} + +class Google_Service_Replicapool_Tag extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $fingerPrint; + public $items; + + public function setFingerPrint($fingerPrint) + { + $this->fingerPrint = $fingerPrint; + } + + public function getFingerPrint() + { + return $this->fingerPrint; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_Replicapool_Template extends Google_Collection +{ + protected $collection_key = 'healthChecks'; + protected $internal_gapi_mappings = array( + ); + protected $actionType = 'Google_Service_Replicapool_Action'; + protected $actionDataType = ''; + protected $healthChecksType = 'Google_Service_Replicapool_HealthCheck'; + protected $healthChecksDataType = 'array'; + public $version; + protected $vmParamsType = 'Google_Service_Replicapool_VmParams'; + protected $vmParamsDataType = ''; + + public function setAction(Google_Service_Replicapool_Action $action) + { + $this->action = $action; + } + + public function getAction() + { + return $this->action; + } + + public function setHealthChecks($healthChecks) + { + $this->healthChecks = $healthChecks; + } + + public function getHealthChecks() + { + return $this->healthChecks; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } + + public function setVmParams(Google_Service_Replicapool_VmParams $vmParams) + { + $this->vmParams = $vmParams; + } + + public function getVmParams() + { + return $this->vmParams; + } +} + +class Google_Service_Replicapool_VmParams extends Google_Collection +{ + protected $collection_key = 'serviceAccounts'; + protected $internal_gapi_mappings = array( + ); + public $baseInstanceName; + public $canIpForward; + public $description; + protected $disksToAttachType = 'Google_Service_Replicapool_ExistingDisk'; + protected $disksToAttachDataType = 'array'; + protected $disksToCreateType = 'Google_Service_Replicapool_NewDisk'; + protected $disksToCreateDataType = 'array'; + public $machineType; + protected $metadataType = 'Google_Service_Replicapool_Metadata'; + protected $metadataDataType = ''; + protected $networkInterfacesType = 'Google_Service_Replicapool_NetworkInterface'; + protected $networkInterfacesDataType = 'array'; + public $onHostMaintenance; + protected $serviceAccountsType = 'Google_Service_Replicapool_ServiceAccount'; + protected $serviceAccountsDataType = 'array'; + protected $tagsType = 'Google_Service_Replicapool_Tag'; + protected $tagsDataType = ''; + + public function setBaseInstanceName($baseInstanceName) + { + $this->baseInstanceName = $baseInstanceName; + } + + public function getBaseInstanceName() + { + return $this->baseInstanceName; + } + + public function setCanIpForward($canIpForward) + { + $this->canIpForward = $canIpForward; + } + + public function getCanIpForward() + { + return $this->canIpForward; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDisksToAttach($disksToAttach) + { + $this->disksToAttach = $disksToAttach; + } + + public function getDisksToAttach() + { + return $this->disksToAttach; + } + + public function setDisksToCreate($disksToCreate) + { + $this->disksToCreate = $disksToCreate; + } + + public function getDisksToCreate() + { + return $this->disksToCreate; + } + + public function setMachineType($machineType) + { + $this->machineType = $machineType; + } + + public function getMachineType() + { + return $this->machineType; + } + + public function setMetadata(Google_Service_Replicapool_Metadata $metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setNetworkInterfaces($networkInterfaces) + { + $this->networkInterfaces = $networkInterfaces; + } + + public function getNetworkInterfaces() + { + return $this->networkInterfaces; + } + + public function setOnHostMaintenance($onHostMaintenance) + { + $this->onHostMaintenance = $onHostMaintenance; + } + + public function getOnHostMaintenance() + { + return $this->onHostMaintenance; + } + + public function setServiceAccounts($serviceAccounts) + { + $this->serviceAccounts = $serviceAccounts; + } + + public function getServiceAccounts() + { + return $this->serviceAccounts; + } + + public function setTags(Google_Service_Replicapool_Tag $tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Reports.php b/vendor/google/apiclient/src/Google/Service/Reports.php new file mode 100644 index 0000000..adbe57f --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Reports.php @@ -0,0 +1,1246 @@ + + * Allows the administrators of Google Apps customers to fetch reports about the usage, collaboration, security and risk for their users. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Reports extends Google_Service +{ + /** View audit reports of Google Apps for your domain. */ + const ADMIN_REPORTS_AUDIT_READONLY = "https://www.googleapis.com/auth/admin.reports.audit.readonly"; + /** View usage reports of Google Apps for your domain. */ + const ADMIN_REPORTS_USAGE_READONLY = "https://www.googleapis.com/auth/admin.reports.usage.readonly"; + + public $activities; + public $channels; + public $customerUsageReports; + public $userUsageReport; + + + /** + * Constructs the internal representation of the Reports service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'admin/reports/v1/'; + $this->version = 'reports_v1'; + $this->serviceName = 'admin'; + + $this->activities = new Google_Service_Reports_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'list' => array( + 'path' => 'activity/users/{userKey}/applications/{applicationName}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'applicationName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'actorIpAddress' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'eventName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'activity/users/{userKey}/applications/{applicationName}/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'applicationName' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'startTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'actorIpAddress' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'eventName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'endTime' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_Reports_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'stop' => array( + 'path' => '/admin/reports_v1/channels/stop', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->customerUsageReports = new Google_Service_Reports_CustomerUsageReports_Resource( + $this, + $this->serviceName, + 'customerUsageReports', + array( + 'methods' => array( + 'get' => array( + 'path' => 'usage/dates/{date}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'date' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'parameters' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->userUsageReport = new Google_Service_Reports_UserUsageReport_Resource( + $this, + $this->serviceName, + 'userUsageReport', + array( + 'methods' => array( + 'get' => array( + 'path' => 'usage/users/{userKey}/dates/{date}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'userKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'date' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parameters' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Reports(...); + * $activities = $adminService->activities; + * + */ +class Google_Service_Reports_Activities_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of activities for a specific customer and application. + * (activities.listActivities) + * + * @param string $userKey + * Represents the profile id or the user email for which the data should be filtered. When 'all' is + * specified as the userKey, it returns usageReports for all users. + * @param string $applicationName + * Application name for which the events are to be retrieved. + * @param array $optParams Optional parameters. + * + * @opt_param string startTime + * Return events which occured at or after this time. + * @opt_param string actorIpAddress + * IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses. + * @opt_param int maxResults + * Number of activity records to be shown in each page. + * @opt_param string eventName + * Name of the event being queried. + * @opt_param string pageToken + * Token to specify next page. + * @opt_param string filters + * Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 + * name][operator][parameter2 value],... + * @opt_param string endTime + * Return events which occured at or before this time. + * @opt_param string customerId + * Represents the customer for which the data is to be fetched. + * @return Google_Service_Reports_Activities + */ + public function listActivities($userKey, $applicationName, $optParams = array()) + { + $params = array('userKey' => $userKey, 'applicationName' => $applicationName); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Reports_Activities"); + } + /** + * Push changes to activities (activities.watch) + * + * @param string $userKey + * Represents the profile id or the user email for which the data should be filtered. When 'all' is + * specified as the userKey, it returns usageReports for all users. + * @param string $applicationName + * Application name for which the events are to be retrieved. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string startTime + * Return events which occured at or after this time. + * @opt_param string actorIpAddress + * IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses. + * @opt_param int maxResults + * Number of activity records to be shown in each page. + * @opt_param string eventName + * Name of the event being queried. + * @opt_param string pageToken + * Token to specify next page. + * @opt_param string filters + * Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 + * name][operator][parameter2 value],... + * @opt_param string endTime + * Return events which occured at or before this time. + * @opt_param string customerId + * Represents the customer for which the data is to be fetched. + * @return Google_Service_Reports_Channel + */ + public function watch($userKey, $applicationName, Google_Service_Reports_Channel $postBody, $optParams = array()) + { + $params = array('userKey' => $userKey, 'applicationName' => $applicationName, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Reports_Channel"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Reports(...); + * $channels = $adminService->channels; + * + */ +class Google_Service_Reports_Channels_Resource extends Google_Service_Resource +{ + + /** + * Stop watching resources through this channel (channels.stop) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + */ + public function stop(Google_Service_Reports_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('stop', array($params)); + } +} + +/** + * The "customerUsageReports" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Reports(...); + * $customerUsageReports = $adminService->customerUsageReports; + * + */ +class Google_Service_Reports_CustomerUsageReports_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a report which is a collection of properties / statistics for a + * specific customer. (customerUsageReports.get) + * + * @param string $date + * Represents the date in yyyy-mm-dd format for which the data is to be fetched. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token to specify next page. + * @opt_param string customerId + * Represents the customer for which the data is to be fetched. + * @opt_param string parameters + * Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, + * app_name2:param_name2. + * @return Google_Service_Reports_UsageReports + */ + public function get($date, $optParams = array()) + { + $params = array('date' => $date); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Reports_UsageReports"); + } +} + +/** + * The "userUsageReport" collection of methods. + * Typical usage is: + * + * $adminService = new Google_Service_Reports(...); + * $userUsageReport = $adminService->userUsageReport; + * + */ +class Google_Service_Reports_UserUsageReport_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a report which is a collection of properties / statistics for a set + * of users. (userUsageReport.get) + * + * @param string $userKey + * Represents the profile id or the user email for which the data should be filtered. + * @param string $date + * Represents the date in yyyy-mm-dd format for which the data is to be fetched. + * @param array $optParams Optional parameters. + * + * @opt_param string parameters + * Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, + * app_name2:param_name2. + * @opt_param string maxResults + * Maximum number of results to return. Maximum allowed is 1000 + * @opt_param string pageToken + * Token to specify next page. + * @opt_param string filters + * Represents the set of filters including parameter operator value. + * @opt_param string customerId + * Represents the customer for which the data is to be fetched. + * @return Google_Service_Reports_UsageReports + */ + public function get($userKey, $date, $optParams = array()) + { + $params = array('userKey' => $userKey, 'date' => $date); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Reports_UsageReports"); + } +} + + + + +class Google_Service_Reports_Activities extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Reports_Activity'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Reports_Activity extends Google_Collection +{ + protected $collection_key = 'events'; + protected $internal_gapi_mappings = array( + ); + protected $actorType = 'Google_Service_Reports_ActivityActor'; + protected $actorDataType = ''; + public $etag; + protected $eventsType = 'Google_Service_Reports_ActivityEvents'; + protected $eventsDataType = 'array'; + protected $idType = 'Google_Service_Reports_ActivityId'; + protected $idDataType = ''; + public $ipAddress; + public $kind; + public $ownerDomain; + + public function setActor(Google_Service_Reports_ActivityActor $actor) + { + $this->actor = $actor; + } + + public function getActor() + { + return $this->actor; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEvents($events) + { + $this->events = $events; + } + + public function getEvents() + { + return $this->events; + } + + public function setId(Google_Service_Reports_ActivityId $id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIpAddress($ipAddress) + { + $this->ipAddress = $ipAddress; + } + + public function getIpAddress() + { + return $this->ipAddress; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOwnerDomain($ownerDomain) + { + $this->ownerDomain = $ownerDomain; + } + + public function getOwnerDomain() + { + return $this->ownerDomain; + } +} + +class Google_Service_Reports_ActivityActor extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $callerType; + public $email; + public $key; + public $profileId; + + public function setCallerType($callerType) + { + $this->callerType = $callerType; + } + + public function getCallerType() + { + return $this->callerType; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } +} + +class Google_Service_Reports_ActivityEvents extends Google_Collection +{ + protected $collection_key = 'parameters'; + protected $internal_gapi_mappings = array( + ); + public $name; + protected $parametersType = 'Google_Service_Reports_ActivityEventsParameters'; + protected $parametersDataType = 'array'; + public $type; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setParameters($parameters) + { + $this->parameters = $parameters; + } + + public function getParameters() + { + return $this->parameters; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Reports_ActivityEventsParameters extends Google_Collection +{ + protected $collection_key = 'multiValue'; + protected $internal_gapi_mappings = array( + ); + public $boolValue; + public $intValue; + public $multiIntValue; + public $multiValue; + public $name; + public $value; + + public function setBoolValue($boolValue) + { + $this->boolValue = $boolValue; + } + + public function getBoolValue() + { + return $this->boolValue; + } + + public function setIntValue($intValue) + { + $this->intValue = $intValue; + } + + public function getIntValue() + { + return $this->intValue; + } + + public function setMultiIntValue($multiIntValue) + { + $this->multiIntValue = $multiIntValue; + } + + public function getMultiIntValue() + { + return $this->multiIntValue; + } + + public function setMultiValue($multiValue) + { + $this->multiValue = $multiValue; + } + + public function getMultiValue() + { + return $this->multiValue; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Reports_ActivityId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $applicationName; + public $customerId; + public $time; + public $uniqueQualifier; + + public function setApplicationName($applicationName) + { + $this->applicationName = $applicationName; + } + + public function getApplicationName() + { + return $this->applicationName; + } + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setTime($time) + { + $this->time = $time; + } + + public function getTime() + { + return $this->time; + } + + public function setUniqueQualifier($uniqueQualifier) + { + $this->uniqueQualifier = $uniqueQualifier; + } + + public function getUniqueQualifier() + { + return $this->uniqueQualifier; + } +} + +class Google_Service_Reports_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $expiration; + public $id; + public $kind; + public $params; + public $payload; + public $resourceId; + public $resourceUri; + public $token; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setExpiration($expiration) + { + $this->expiration = $expiration; + } + + public function getExpiration() + { + return $this->expiration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParams($params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setResourceUri($resourceUri) + { + $this->resourceUri = $resourceUri; + } + + public function getResourceUri() + { + return $this->resourceUri; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Reports_ChannelParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Reports_UsageReport extends Google_Collection +{ + protected $collection_key = 'parameters'; + protected $internal_gapi_mappings = array( + ); + public $date; + protected $entityType = 'Google_Service_Reports_UsageReportEntity'; + protected $entityDataType = ''; + public $etag; + public $kind; + protected $parametersType = 'Google_Service_Reports_UsageReportParameters'; + protected $parametersDataType = 'array'; + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setEntity(Google_Service_Reports_UsageReportEntity $entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParameters($parameters) + { + $this->parameters = $parameters; + } + + public function getParameters() + { + return $this->parameters; + } +} + +class Google_Service_Reports_UsageReportEntity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customerId; + public $profileId; + public $type; + public $userEmail; + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setProfileId($profileId) + { + $this->profileId = $profileId; + } + + public function getProfileId() + { + return $this->profileId; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUserEmail($userEmail) + { + $this->userEmail = $userEmail; + } + + public function getUserEmail() + { + return $this->userEmail; + } +} + +class Google_Service_Reports_UsageReportParameters extends Google_Collection +{ + protected $collection_key = 'msgValue'; + protected $internal_gapi_mappings = array( + ); + public $boolValue; + public $datetimeValue; + public $intValue; + public $msgValue; + public $name; + public $stringValue; + + public function setBoolValue($boolValue) + { + $this->boolValue = $boolValue; + } + + public function getBoolValue() + { + return $this->boolValue; + } + + public function setDatetimeValue($datetimeValue) + { + $this->datetimeValue = $datetimeValue; + } + + public function getDatetimeValue() + { + return $this->datetimeValue; + } + + public function setIntValue($intValue) + { + $this->intValue = $intValue; + } + + public function getIntValue() + { + return $this->intValue; + } + + public function setMsgValue($msgValue) + { + $this->msgValue = $msgValue; + } + + public function getMsgValue() + { + return $this->msgValue; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setStringValue($stringValue) + { + $this->stringValue = $stringValue; + } + + public function getStringValue() + { + return $this->stringValue; + } +} + +class Google_Service_Reports_UsageReportParametersMsgValue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Reports_UsageReports extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + public $nextPageToken; + protected $usageReportsType = 'Google_Service_Reports_UsageReport'; + protected $usageReportsDataType = 'array'; + protected $warningsType = 'Google_Service_Reports_UsageReportsWarnings'; + protected $warningsDataType = 'array'; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setUsageReports($usageReports) + { + $this->usageReports = $usageReports; + } + + public function getUsageReports() + { + return $this->usageReports; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_Reports_UsageReportsWarnings extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Reports_UsageReportsWarningsData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Reports_UsageReportsWarningsData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Reseller.php b/vendor/google/apiclient/src/Google/Service/Reseller.php new file mode 100644 index 0000000..ad5eb38 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Reseller.php @@ -0,0 +1,1125 @@ + + * Lets you create and manage your customers and their subscriptions. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Reseller extends Google_Service +{ + /** Manage users on your domain. */ + const APPS_ORDER = "https://www.googleapis.com/auth/apps.order"; + /** Manage users on your domain. */ + const APPS_ORDER_READONLY = "https://www.googleapis.com/auth/apps.order.readonly"; + + public $customers; + public $subscriptions; + + + /** + * Constructs the internal representation of the Reseller service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'apps/reseller/v1/'; + $this->version = 'v1'; + $this->serviceName = 'reseller'; + + $this->customers = new Google_Service_Reseller_Customers_Resource( + $this, + $this->serviceName, + 'customers', + array( + 'methods' => array( + 'get' => array( + 'path' => 'customers/{customerId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'customers', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerAuthToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'customers/{customerId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'customers/{customerId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->subscriptions = new Google_Service_Reseller_Subscriptions_Resource( + $this, + $this->serviceName, + 'subscriptions', + array( + 'methods' => array( + 'changePlan' => array( + 'path' => 'customers/{customerId}/subscriptions/{subscriptionId}/changePlan', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'changeRenewalSettings' => array( + 'path' => 'customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'changeSeats' => array( + 'path' => 'customers/{customerId}/subscriptions/{subscriptionId}/changeSeats', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'customers/{customerId}/subscriptions/{subscriptionId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'deletionType' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'customers/{customerId}/subscriptions/{subscriptionId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'customers/{customerId}/subscriptions', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'customerAuthToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'customerAuthToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'customerId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'customerNamePrefix' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'startPaidService' => array( + 'path' => 'customers/{customerId}/subscriptions/{subscriptionId}/startPaidService', + 'httpMethod' => 'POST', + 'parameters' => array( + 'customerId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'subscriptionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "customers" collection of methods. + * Typical usage is: + * + * $resellerService = new Google_Service_Reseller(...); + * $customers = $resellerService->customers; + * + */ +class Google_Service_Reseller_Customers_Resource extends Google_Service_Resource +{ + + /** + * Gets a customer resource if one exists and is owned by the reseller. + * (customers.get) + * + * @param string $customerId + * Id of the Customer + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Customer + */ + public function get($customerId, $optParams = array()) + { + $params = array('customerId' => $customerId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Reseller_Customer"); + } + /** + * Creates a customer resource if one does not already exist. (customers.insert) + * + * @param Google_Customer $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string customerAuthToken + * An auth token needed for inserting a customer for which domain already exists. Can be generated + * at https://www.google.com/a/cpanel//TransferToken. Optional. + * @return Google_Service_Reseller_Customer + */ + public function insert(Google_Service_Reseller_Customer $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Reseller_Customer"); + } + /** + * Update a customer resource if one it exists and is owned by the reseller. + * This method supports patch semantics. (customers.patch) + * + * @param string $customerId + * Id of the Customer + * @param Google_Customer $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Customer + */ + public function patch($customerId, Google_Service_Reseller_Customer $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Reseller_Customer"); + } + /** + * Update a customer resource if one it exists and is owned by the reseller. + * (customers.update) + * + * @param string $customerId + * Id of the Customer + * @param Google_Customer $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Customer + */ + public function update($customerId, Google_Service_Reseller_Customer $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Reseller_Customer"); + } +} + +/** + * The "subscriptions" collection of methods. + * Typical usage is: + * + * $resellerService = new Google_Service_Reseller(...); + * $subscriptions = $resellerService->subscriptions; + * + */ +class Google_Service_Reseller_Subscriptions_Resource extends Google_Service_Resource +{ + + /** + * Changes the plan of a subscription (subscriptions.changePlan) + * + * @param string $customerId + * Id of the Customer + * @param string $subscriptionId + * Id of the subscription, which is unique for a customer + * @param Google_ChangePlanRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Subscription + */ + public function changePlan($customerId, $subscriptionId, Google_Service_Reseller_ChangePlanRequest $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('changePlan', array($params), "Google_Service_Reseller_Subscription"); + } + /** + * Changes the renewal settings of a subscription + * (subscriptions.changeRenewalSettings) + * + * @param string $customerId + * Id of the Customer + * @param string $subscriptionId + * Id of the subscription, which is unique for a customer + * @param Google_RenewalSettings $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Subscription + */ + public function changeRenewalSettings($customerId, $subscriptionId, Google_Service_Reseller_RenewalSettings $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('changeRenewalSettings', array($params), "Google_Service_Reseller_Subscription"); + } + /** + * Changes the seats configuration of a subscription (subscriptions.changeSeats) + * + * @param string $customerId + * Id of the Customer + * @param string $subscriptionId + * Id of the subscription, which is unique for a customer + * @param Google_Seats $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Subscription + */ + public function changeSeats($customerId, $subscriptionId, Google_Service_Reseller_Seats $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('changeSeats', array($params), "Google_Service_Reseller_Subscription"); + } + /** + * Cancels/Downgrades a subscription. (subscriptions.delete) + * + * @param string $customerId + * Id of the Customer + * @param string $subscriptionId + * Id of the subscription, which is unique for a customer + * @param string $deletionType + * Whether the subscription is to be fully cancelled or downgraded + * @param array $optParams Optional parameters. + */ + public function delete($customerId, $subscriptionId, $deletionType, $optParams = array()) + { + $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'deletionType' => $deletionType); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a subscription of the customer. (subscriptions.get) + * + * @param string $customerId + * Id of the Customer + * @param string $subscriptionId + * Id of the subscription, which is unique for a customer + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Subscription + */ + public function get($customerId, $subscriptionId, $optParams = array()) + { + $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Reseller_Subscription"); + } + /** + * Creates/Transfers a subscription for the customer. (subscriptions.insert) + * + * @param string $customerId + * Id of the Customer + * @param Google_Subscription $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string customerAuthToken + * An auth token needed for transferring a subscription. Can be generated at + * https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional. + * @return Google_Service_Reseller_Subscription + */ + public function insert($customerId, Google_Service_Reseller_Subscription $postBody, $optParams = array()) + { + $params = array('customerId' => $customerId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Reseller_Subscription"); + } + /** + * Lists subscriptions of a reseller, optionally filtered by a customer name + * prefix. (subscriptions.listSubscriptions) + * + * @param array $optParams Optional parameters. + * + * @opt_param string customerAuthToken + * An auth token needed if the customer is not a resold customer of this reseller. Can be generated + * at https://www.google.com/a/cpanel/customer-domain/TransferToken.Optional. + * @opt_param string pageToken + * Token to specify next page in the list + * @opt_param string customerId + * Id of the Customer + * @opt_param string maxResults + * Maximum number of results to return + * @opt_param string customerNamePrefix + * Prefix of the customer's domain name by which the subscriptions should be filtered. Optional + * @return Google_Service_Reseller_Subscriptions + */ + public function listSubscriptions($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Reseller_Subscriptions"); + } + /** + * Starts paid service of a trial subscription (subscriptions.startPaidService) + * + * @param string $customerId + * Id of the Customer + * @param string $subscriptionId + * Id of the subscription, which is unique for a customer + * @param array $optParams Optional parameters. + * @return Google_Service_Reseller_Subscription + */ + public function startPaidService($customerId, $subscriptionId, $optParams = array()) + { + $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId); + $params = array_merge($params, $optParams); + return $this->call('startPaidService', array($params), "Google_Service_Reseller_Subscription"); + } +} + + + + +class Google_Service_Reseller_Address extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $addressLine1; + public $addressLine2; + public $addressLine3; + public $contactName; + public $countryCode; + public $kind; + public $locality; + public $organizationName; + public $postalCode; + public $region; + + public function setAddressLine1($addressLine1) + { + $this->addressLine1 = $addressLine1; + } + + public function getAddressLine1() + { + return $this->addressLine1; + } + + public function setAddressLine2($addressLine2) + { + $this->addressLine2 = $addressLine2; + } + + public function getAddressLine2() + { + return $this->addressLine2; + } + + public function setAddressLine3($addressLine3) + { + $this->addressLine3 = $addressLine3; + } + + public function getAddressLine3() + { + return $this->addressLine3; + } + + public function setContactName($contactName) + { + $this->contactName = $contactName; + } + + public function getContactName() + { + return $this->contactName; + } + + public function setCountryCode($countryCode) + { + $this->countryCode = $countryCode; + } + + public function getCountryCode() + { + return $this->countryCode; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocality($locality) + { + $this->locality = $locality; + } + + public function getLocality() + { + return $this->locality; + } + + public function setOrganizationName($organizationName) + { + $this->organizationName = $organizationName; + } + + public function getOrganizationName() + { + return $this->organizationName; + } + + public function setPostalCode($postalCode) + { + $this->postalCode = $postalCode; + } + + public function getPostalCode() + { + return $this->postalCode; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } +} + +class Google_Service_Reseller_ChangePlanRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $planName; + public $purchaseOrderId; + protected $seatsType = 'Google_Service_Reseller_Seats'; + protected $seatsDataType = ''; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlanName($planName) + { + $this->planName = $planName; + } + + public function getPlanName() + { + return $this->planName; + } + + public function setPurchaseOrderId($purchaseOrderId) + { + $this->purchaseOrderId = $purchaseOrderId; + } + + public function getPurchaseOrderId() + { + return $this->purchaseOrderId; + } + + public function setSeats(Google_Service_Reseller_Seats $seats) + { + $this->seats = $seats; + } + + public function getSeats() + { + return $this->seats; + } +} + +class Google_Service_Reseller_Customer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $alternateEmail; + public $customerDomain; + public $customerId; + public $kind; + public $phoneNumber; + protected $postalAddressType = 'Google_Service_Reseller_Address'; + protected $postalAddressDataType = ''; + public $resourceUiUrl; + + public function setAlternateEmail($alternateEmail) + { + $this->alternateEmail = $alternateEmail; + } + + public function getAlternateEmail() + { + return $this->alternateEmail; + } + + public function setCustomerDomain($customerDomain) + { + $this->customerDomain = $customerDomain; + } + + public function getCustomerDomain() + { + return $this->customerDomain; + } + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPhoneNumber($phoneNumber) + { + $this->phoneNumber = $phoneNumber; + } + + public function getPhoneNumber() + { + return $this->phoneNumber; + } + + public function setPostalAddress(Google_Service_Reseller_Address $postalAddress) + { + $this->postalAddress = $postalAddress; + } + + public function getPostalAddress() + { + return $this->postalAddress; + } + + public function setResourceUiUrl($resourceUiUrl) + { + $this->resourceUiUrl = $resourceUiUrl; + } + + public function getResourceUiUrl() + { + return $this->resourceUiUrl; + } +} + +class Google_Service_Reseller_RenewalSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $renewalType; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRenewalType($renewalType) + { + $this->renewalType = $renewalType; + } + + public function getRenewalType() + { + return $this->renewalType; + } +} + +class Google_Service_Reseller_Seats extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $maximumNumberOfSeats; + public $numberOfSeats; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaximumNumberOfSeats($maximumNumberOfSeats) + { + $this->maximumNumberOfSeats = $maximumNumberOfSeats; + } + + public function getMaximumNumberOfSeats() + { + return $this->maximumNumberOfSeats; + } + + public function setNumberOfSeats($numberOfSeats) + { + $this->numberOfSeats = $numberOfSeats; + } + + public function getNumberOfSeats() + { + return $this->numberOfSeats; + } +} + +class Google_Service_Reseller_Subscription extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $creationTime; + public $customerId; + public $kind; + protected $planType = 'Google_Service_Reseller_SubscriptionPlan'; + protected $planDataType = ''; + public $purchaseOrderId; + protected $renewalSettingsType = 'Google_Service_Reseller_RenewalSettings'; + protected $renewalSettingsDataType = ''; + public $resourceUiUrl; + protected $seatsType = 'Google_Service_Reseller_Seats'; + protected $seatsDataType = ''; + public $skuId; + public $status; + public $subscriptionId; + protected $transferInfoType = 'Google_Service_Reseller_SubscriptionTransferInfo'; + protected $transferInfoDataType = ''; + protected $trialSettingsType = 'Google_Service_Reseller_SubscriptionTrialSettings'; + protected $trialSettingsDataType = ''; + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setCustomerId($customerId) + { + $this->customerId = $customerId; + } + + public function getCustomerId() + { + return $this->customerId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlan(Google_Service_Reseller_SubscriptionPlan $plan) + { + $this->plan = $plan; + } + + public function getPlan() + { + return $this->plan; + } + + public function setPurchaseOrderId($purchaseOrderId) + { + $this->purchaseOrderId = $purchaseOrderId; + } + + public function getPurchaseOrderId() + { + return $this->purchaseOrderId; + } + + public function setRenewalSettings(Google_Service_Reseller_RenewalSettings $renewalSettings) + { + $this->renewalSettings = $renewalSettings; + } + + public function getRenewalSettings() + { + return $this->renewalSettings; + } + + public function setResourceUiUrl($resourceUiUrl) + { + $this->resourceUiUrl = $resourceUiUrl; + } + + public function getResourceUiUrl() + { + return $this->resourceUiUrl; + } + + public function setSeats(Google_Service_Reseller_Seats $seats) + { + $this->seats = $seats; + } + + public function getSeats() + { + return $this->seats; + } + + public function setSkuId($skuId) + { + $this->skuId = $skuId; + } + + public function getSkuId() + { + return $this->skuId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setSubscriptionId($subscriptionId) + { + $this->subscriptionId = $subscriptionId; + } + + public function getSubscriptionId() + { + return $this->subscriptionId; + } + + public function setTransferInfo(Google_Service_Reseller_SubscriptionTransferInfo $transferInfo) + { + $this->transferInfo = $transferInfo; + } + + public function getTransferInfo() + { + return $this->transferInfo; + } + + public function setTrialSettings(Google_Service_Reseller_SubscriptionTrialSettings $trialSettings) + { + $this->trialSettings = $trialSettings; + } + + public function getTrialSettings() + { + return $this->trialSettings; + } +} + +class Google_Service_Reseller_SubscriptionPlan extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $commitmentIntervalType = 'Google_Service_Reseller_SubscriptionPlanCommitmentInterval'; + protected $commitmentIntervalDataType = ''; + public $isCommitmentPlan; + public $planName; + + public function setCommitmentInterval(Google_Service_Reseller_SubscriptionPlanCommitmentInterval $commitmentInterval) + { + $this->commitmentInterval = $commitmentInterval; + } + + public function getCommitmentInterval() + { + return $this->commitmentInterval; + } + + public function setIsCommitmentPlan($isCommitmentPlan) + { + $this->isCommitmentPlan = $isCommitmentPlan; + } + + public function getIsCommitmentPlan() + { + return $this->isCommitmentPlan; + } + + public function setPlanName($planName) + { + $this->planName = $planName; + } + + public function getPlanName() + { + return $this->planName; + } +} + +class Google_Service_Reseller_SubscriptionPlanCommitmentInterval extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endTime; + public $startTime; + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } +} + +class Google_Service_Reseller_SubscriptionTransferInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $minimumTransferableSeats; + public $transferabilityExpirationTime; + + public function setMinimumTransferableSeats($minimumTransferableSeats) + { + $this->minimumTransferableSeats = $minimumTransferableSeats; + } + + public function getMinimumTransferableSeats() + { + return $this->minimumTransferableSeats; + } + + public function setTransferabilityExpirationTime($transferabilityExpirationTime) + { + $this->transferabilityExpirationTime = $transferabilityExpirationTime; + } + + public function getTransferabilityExpirationTime() + { + return $this->transferabilityExpirationTime; + } +} + +class Google_Service_Reseller_SubscriptionTrialSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $isInTrial; + public $trialEndTime; + + public function setIsInTrial($isInTrial) + { + $this->isInTrial = $isInTrial; + } + + public function getIsInTrial() + { + return $this->isInTrial; + } + + public function setTrialEndTime($trialEndTime) + { + $this->trialEndTime = $trialEndTime; + } + + public function getTrialEndTime() + { + return $this->trialEndTime; + } +} + +class Google_Service_Reseller_Subscriptions extends Google_Collection +{ + protected $collection_key = 'subscriptions'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $subscriptionsType = 'Google_Service_Reseller_Subscription'; + protected $subscriptionsDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSubscriptions($subscriptions) + { + $this->subscriptions = $subscriptions; + } + + public function getSubscriptions() + { + return $this->subscriptions; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Resource.php b/vendor/google/apiclient/src/Google/Service/Resource.php new file mode 100644 index 0000000..d396907 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Resource.php @@ -0,0 +1,210 @@ + + * @author Chirag Shah + * + */ +class Google_Service_Resource +{ + // Valid query parameters that work, but don't appear in discovery. + private $stackParameters = array( + 'alt' => array('type' => 'string', 'location' => 'query'), + 'fields' => array('type' => 'string', 'location' => 'query'), + 'trace' => array('type' => 'string', 'location' => 'query'), + 'userIp' => array('type' => 'string', 'location' => 'query'), + 'userip' => array('type' => 'string', 'location' => 'query'), + 'quotaUser' => array('type' => 'string', 'location' => 'query'), + 'data' => array('type' => 'string', 'location' => 'body'), + 'mimeType' => array('type' => 'string', 'location' => 'header'), + 'uploadType' => array('type' => 'string', 'location' => 'query'), + 'mediaUpload' => array('type' => 'complex', 'location' => 'query'), + ); + + /** @var Google_Service $service */ + private $service; + + /** @var Google_Client $client */ + private $client; + + /** @var string $serviceName */ + private $serviceName; + + /** @var string $resourceName */ + private $resourceName; + + /** @var array $methods */ + private $methods; + + public function __construct($service, $serviceName, $resourceName, $resource) + { + $this->service = $service; + $this->client = $service->getClient(); + $this->serviceName = $serviceName; + $this->resourceName = $resourceName; + $this->methods = isset($resource['methods']) ? + $resource['methods'] : + array($resourceName => $resource); + } + + /** + * TODO(ianbarber): This function needs simplifying. + * @param $name + * @param $arguments + * @param $expected_class - optional, the expected class name + * @return Google_Http_Request|expected_class + * @throws Google_Exception + */ + public function call($name, $arguments, $expected_class = null) + { + if (! isset($this->methods[$name])) { + throw new Google_Exception( + "Unknown function: " . + "{$this->serviceName}->{$this->resourceName}->{$name}()" + ); + } + $method = $this->methods[$name]; + $parameters = $arguments[0]; + + // postBody is a special case since it's not defined in the discovery + // document as parameter, but we abuse the param entry for storing it. + $postBody = null; + if (isset($parameters['postBody'])) { + if ($parameters['postBody'] instanceof Google_Model) { + // In the cases the post body is an existing object, we want + // to use the smart method to create a simple object for + // for JSONification. + $parameters['postBody'] = $parameters['postBody']->toSimpleObject(); + } else if (is_object($parameters['postBody'])) { + // If the post body is another kind of object, we will try and + // wrangle it into a sensible format. + $parameters['postBody'] = + $this->convertToArrayAndStripNulls($parameters['postBody']); + } + $postBody = json_encode($parameters['postBody']); + unset($parameters['postBody']); + } + + // TODO(ianbarber): optParams here probably should have been + // handled already - this may well be redundant code. + if (isset($parameters['optParams'])) { + $optParams = $parameters['optParams']; + unset($parameters['optParams']); + $parameters = array_merge($parameters, $optParams); + } + + if (!isset($method['parameters'])) { + $method['parameters'] = array(); + } + + $method['parameters'] = array_merge( + $method['parameters'], + $this->stackParameters + ); + foreach ($parameters as $key => $val) { + if ($key != 'postBody' && ! isset($method['parameters'][$key])) { + throw new Google_Exception("($name) unknown parameter: '$key'"); + } + } + + foreach ($method['parameters'] as $paramName => $paramSpec) { + if (isset($paramSpec['required']) && + $paramSpec['required'] && + ! isset($parameters[$paramName]) + ) { + throw new Google_Exception("($name) missing required param: '$paramName'"); + } + if (isset($parameters[$paramName])) { + $value = $parameters[$paramName]; + $parameters[$paramName] = $paramSpec; + $parameters[$paramName]['value'] = $value; + unset($parameters[$paramName]['required']); + } else { + // Ensure we don't pass nulls. + unset($parameters[$paramName]); + } + } + + $servicePath = $this->service->servicePath; + + $url = Google_Http_REST::createRequestUri( + $servicePath, + $method['path'], + $parameters + ); + $httpRequest = new Google_Http_Request( + $url, + $method['httpMethod'], + null, + $postBody + ); + $httpRequest->setBaseComponent($this->client->getBasePath()); + + if ($postBody) { + $contentTypeHeader = array(); + $contentTypeHeader['content-type'] = 'application/json; charset=UTF-8'; + $httpRequest->setRequestHeaders($contentTypeHeader); + $httpRequest->setPostBody($postBody); + } + + $httpRequest = $this->client->getAuth()->sign($httpRequest); + $httpRequest->setExpectedClass($expected_class); + + if (isset($parameters['data']) && + ($parameters['uploadType']['value'] == 'media' || $parameters['uploadType']['value'] == 'multipart')) { + // If we are doing a simple media upload, trigger that as a convenience. + $mfu = new Google_Http_MediaFileUpload( + $this->client, + $httpRequest, + isset($parameters['mimeType']) ? $parameters['mimeType']['value'] : 'application/octet-stream', + $parameters['data']['value'] + ); + } + + if ($this->client->shouldDefer()) { + // If we are in batch or upload mode, return the raw request. + return $httpRequest; + } + + return $this->client->execute($httpRequest); + } + + protected function convertToArrayAndStripNulls($o) + { + $o = (array) $o; + foreach ($o as $k => $v) { + if ($v === null) { + unset($o[$k]); + } elseif (is_object($v) || is_array($v)) { + $o[$k] = $this->convertToArrayAndStripNulls($o[$k]); + } + } + return $o; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Resourceviews.php b/vendor/google/apiclient/src/Google/Service/Resourceviews.php new file mode 100644 index 0000000..0fccd84 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Resourceviews.php @@ -0,0 +1,1468 @@ + + * The Resource View API allows users to create and manage logical sets of Google Compute Engine instances. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Resourceviews extends Google_Service +{ + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** View and manage your Google Compute Engine resources. */ + const COMPUTE = "https://www.googleapis.com/auth/compute"; + /** View your Google Compute Engine resources. */ + const COMPUTE_READONLY = "https://www.googleapis.com/auth/compute.readonly"; + /** View and manage your Google Cloud Platform management resources and deployment status information. */ + const NDEV_CLOUDMAN = "https://www.googleapis.com/auth/ndev.cloudman"; + /** View your Google Cloud Platform management resources and deployment status information. */ + const NDEV_CLOUDMAN_READONLY = "https://www.googleapis.com/auth/ndev.cloudman.readonly"; + + public $zoneOperations; + public $zoneViews; + + + /** + * Constructs the internal representation of the Resourceviews service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'resourceviews/v1beta2/projects/'; + $this->version = 'v1beta2'; + $this->serviceName = 'resourceviews'; + + $this->zoneOperations = new Google_Service_Resourceviews_ZoneOperations_Resource( + $this, + $this->serviceName, + 'zoneOperations', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}/zones/{zone}/operations/{operation}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'filter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->zoneViews = new Google_Service_Resourceviews_ZoneViews_Resource( + $this, + $this->serviceName, + 'zoneViews', + array( + 'methods' => array( + 'addResources' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}/addResources', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getService' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}/getService', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceName' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => '{project}/zones/{zone}/resourceViews', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{project}/zones/{zone}/resourceViews', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'listResources' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}/resources', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'listState' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'serviceName' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'removeResources' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}/removeResources', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setService' => array( + 'path' => '{project}/zones/{zone}/resourceViews/{resourceView}/setService', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'zone' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'resourceView' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "zoneOperations" collection of methods. + * Typical usage is: + * + * $resourceviewsService = new Google_Service_Resourceviews(...); + * $zoneOperations = $resourceviewsService->zoneOperations; + * + */ +class Google_Service_Resourceviews_ZoneOperations_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the specified zone-specific operation resource. + * (zoneOperations.get) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param string $operation + * Name of the operation resource to return. + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_Operation + */ + public function get($project, $zone, $operation, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Resourceviews_Operation"); + } + /** + * Retrieves the list of operation resources contained within the specified + * zone. (zoneOperations.listZoneOperations) + * + * @param string $project + * Name of the project scoping this request. + * @param string $zone + * Name of the zone scoping this request. + * @param array $optParams Optional parameters. + * + * @opt_param string filter + * Optional. Filter expression for filtering listed resources. + * @opt_param string pageToken + * Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a + * previous list request. + * @opt_param string maxResults + * Optional. Maximum count of results to be returned. Maximum value is 500 and default value is + * 500. + * @return Google_Service_Resourceviews_OperationList + */ + public function listZoneOperations($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Resourceviews_OperationList"); + } +} + +/** + * The "zoneViews" collection of methods. + * Typical usage is: + * + * $resourceviewsService = new Google_Service_Resourceviews(...); + * $zoneViews = $resourceviewsService->zoneViews; + * + */ +class Google_Service_Resourceviews_ZoneViews_Resource extends Google_Service_Resource +{ + + /** + * Add resources to the view. (zoneViews.addResources) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param Google_ZoneViewsAddResourcesRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_Operation + */ + public function addResources($project, $zone, $resourceView, Google_Service_Resourceviews_ZoneViewsAddResourcesRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('addResources', array($params), "Google_Service_Resourceviews_Operation"); + } + /** + * Delete a resource view. (zoneViews.delete) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_Operation + */ + public function delete($project, $zone, $resourceView, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_Resourceviews_Operation"); + } + /** + * Get the information of a zonal resource view. (zoneViews.get) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_ResourceView + */ + public function get($project, $zone, $resourceView, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Resourceviews_ResourceView"); + } + /** + * Get the service information of a resource view or a resource. + * (zoneViews.getService) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param array $optParams Optional parameters. + * + * @opt_param string resourceName + * The name of the resource if user wants to get the service information of the resource. + * @return Google_Service_Resourceviews_ZoneViewsGetServiceResponse + */ + public function getService($project, $zone, $resourceView, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView); + $params = array_merge($params, $optParams); + return $this->call('getService', array($params), "Google_Service_Resourceviews_ZoneViewsGetServiceResponse"); + } + /** + * Create a resource view. (zoneViews.insert) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param Google_ResourceView $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_Operation + */ + public function insert($project, $zone, Google_Service_Resourceviews_ResourceView $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Resourceviews_Operation"); + } + /** + * List resource views. (zoneViews.listZoneViews) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Specifies a nextPageToken returned by a previous list request. This token can be used to request + * the next page of results from a previous list request. + * @opt_param int maxResults + * Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: + * 5000) + * @return Google_Service_Resourceviews_ZoneViewsList + */ + public function listZoneViews($project, $zone, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Resourceviews_ZoneViewsList"); + } + /** + * List the resources of the resource view. (zoneViews.listResources) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param array $optParams Optional parameters. + * + * @opt_param string listState + * The state of the instance to list. By default, it lists all instances. + * @opt_param string format + * The requested format of the return value. It can be URL or URL_PORT. A JSON object will be + * included in the response based on the format. The default format is NONE, which results in no + * JSON in the response. + * @opt_param int maxResults + * Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: + * 5000) + * @opt_param string pageToken + * Specifies a nextPageToken returned by a previous list request. This token can be used to request + * the next page of results from a previous list request. + * @opt_param string serviceName + * The service name to return in the response. It is optional and if it is not set, all the service + * end points will be returned. + * @return Google_Service_Resourceviews_ZoneViewsListResourcesResponse + */ + public function listResources($project, $zone, $resourceView, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView); + $params = array_merge($params, $optParams); + return $this->call('listResources', array($params), "Google_Service_Resourceviews_ZoneViewsListResourcesResponse"); + } + /** + * Remove resources from the view. (zoneViews.removeResources) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param Google_ZoneViewsRemoveResourcesRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_Operation + */ + public function removeResources($project, $zone, $resourceView, Google_Service_Resourceviews_ZoneViewsRemoveResourcesRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('removeResources', array($params), "Google_Service_Resourceviews_Operation"); + } + /** + * Update the service information of a resource view or a resource. + * (zoneViews.setService) + * + * @param string $project + * The project name of the resource view. + * @param string $zone + * The zone name of the resource view. + * @param string $resourceView + * The name of the resource view. + * @param Google_ZoneViewsSetServiceRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Resourceviews_Operation + */ + public function setService($project, $zone, $resourceView, Google_Service_Resourceviews_ZoneViewsSetServiceRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'zone' => $zone, 'resourceView' => $resourceView, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setService', array($params), "Google_Service_Resourceviews_Operation"); + } +} + + + + +class Google_Service_Resourceviews_Label extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Resourceviews_ListResourceResponseItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endpoints; + public $resource; + + public function setEndpoints($endpoints) + { + $this->endpoints = $endpoints; + } + + public function getEndpoints() + { + return $this->endpoints; + } + + public function setResource($resource) + { + $this->resource = $resource; + } + + public function getResource() + { + return $this->resource; + } +} + +class Google_Service_Resourceviews_ListResourceResponseItemEndpoints extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Resourceviews_Operation extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $clientOperationId; + public $creationTimestamp; + public $endTime; + protected $errorType = 'Google_Service_Resourceviews_OperationError'; + protected $errorDataType = ''; + public $httpErrorMessage; + public $httpErrorStatusCode; + public $id; + public $insertTime; + public $kind; + public $name; + public $operationType; + public $progress; + public $region; + public $selfLink; + public $startTime; + public $status; + public $statusMessage; + public $targetId; + public $targetLink; + public $user; + protected $warningsType = 'Google_Service_Resourceviews_OperationWarnings'; + protected $warningsDataType = 'array'; + public $zone; + + public function setClientOperationId($clientOperationId) + { + $this->clientOperationId = $clientOperationId; + } + + public function getClientOperationId() + { + return $this->clientOperationId; + } + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setError(Google_Service_Resourceviews_OperationError $error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setHttpErrorMessage($httpErrorMessage) + { + $this->httpErrorMessage = $httpErrorMessage; + } + + public function getHttpErrorMessage() + { + return $this->httpErrorMessage; + } + + public function setHttpErrorStatusCode($httpErrorStatusCode) + { + $this->httpErrorStatusCode = $httpErrorStatusCode; + } + + public function getHttpErrorStatusCode() + { + return $this->httpErrorStatusCode; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInsertTime($insertTime) + { + $this->insertTime = $insertTime; + } + + public function getInsertTime() + { + return $this->insertTime; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOperationType($operationType) + { + $this->operationType = $operationType; + } + + public function getOperationType() + { + return $this->operationType; + } + + public function setProgress($progress) + { + $this->progress = $progress; + } + + public function getProgress() + { + return $this->progress; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setStatusMessage($statusMessage) + { + $this->statusMessage = $statusMessage; + } + + public function getStatusMessage() + { + return $this->statusMessage; + } + + public function setTargetId($targetId) + { + $this->targetId = $targetId; + } + + public function getTargetId() + { + return $this->targetId; + } + + public function setTargetLink($targetLink) + { + $this->targetLink = $targetLink; + } + + public function getTargetLink() + { + return $this->targetLink; + } + + public function setUser($user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_Resourceviews_OperationError extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + protected $errorsType = 'Google_Service_Resourceviews_OperationErrorErrors'; + protected $errorsDataType = 'array'; + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_Resourceviews_OperationErrorErrors extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $location; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Resourceviews_OperationList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $id; + protected $itemsType = 'Google_Service_Resourceviews_Operation'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Resourceviews_OperationWarnings extends Google_Collection +{ + protected $collection_key = 'data'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $dataType = 'Google_Service_Resourceviews_OperationWarningsData'; + protected $dataDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setData($data) + { + $this->data = $data; + } + + public function getData() + { + return $this->data; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_Resourceviews_OperationWarningsData extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $key; + public $value; + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Resourceviews_ResourceView extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $creationTimestamp; + public $description; + protected $endpointsType = 'Google_Service_Resourceviews_ServiceEndpoint'; + protected $endpointsDataType = 'array'; + public $fingerprint; + public $id; + public $kind; + protected $labelsType = 'Google_Service_Resourceviews_Label'; + protected $labelsDataType = 'array'; + public $name; + public $network; + public $resources; + public $selfLink; + public $size; + + public function setCreationTimestamp($creationTimestamp) + { + $this->creationTimestamp = $creationTimestamp; + } + + public function getCreationTimestamp() + { + return $this->creationTimestamp; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setEndpoints($endpoints) + { + $this->endpoints = $endpoints; + } + + public function getEndpoints() + { + return $this->endpoints; + } + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLabels($labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_Resourceviews_ServiceEndpoint extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $port; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPort($port) + { + $this->port = $port; + } + + public function getPort() + { + return $this->port; + } +} + +class Google_Service_Resourceviews_ZoneViewsAddResourcesRequest extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $resources; + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_Resourceviews_ZoneViewsGetServiceResponse extends Google_Collection +{ + protected $collection_key = 'endpoints'; + protected $internal_gapi_mappings = array( + ); + protected $endpointsType = 'Google_Service_Resourceviews_ServiceEndpoint'; + protected $endpointsDataType = 'array'; + public $fingerprint; + + public function setEndpoints($endpoints) + { + $this->endpoints = $endpoints; + } + + public function getEndpoints() + { + return $this->endpoints; + } + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } +} + +class Google_Service_Resourceviews_ZoneViewsList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Resourceviews_ResourceView'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $selfLink; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Resourceviews_ZoneViewsListResourcesResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Resourceviews_ListResourceResponseItem'; + protected $itemsDataType = 'array'; + public $network; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setNetwork($network) + { + $this->network = $network; + } + + public function getNetwork() + { + return $this->network; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Resourceviews_ZoneViewsRemoveResourcesRequest extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $resources; + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_Resourceviews_ZoneViewsSetServiceRequest extends Google_Collection +{ + protected $collection_key = 'endpoints'; + protected $internal_gapi_mappings = array( + ); + protected $endpointsType = 'Google_Service_Resourceviews_ServiceEndpoint'; + protected $endpointsDataType = 'array'; + public $fingerprint; + public $resourceName; + + public function setEndpoints($endpoints) + { + $this->endpoints = $endpoints; + } + + public function getEndpoints() + { + return $this->endpoints; + } + + public function setFingerprint($fingerprint) + { + $this->fingerprint = $fingerprint; + } + + public function getFingerprint() + { + return $this->fingerprint; + } + + public function setResourceName($resourceName) + { + $this->resourceName = $resourceName; + } + + public function getResourceName() + { + return $this->resourceName; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/SQLAdmin.php b/vendor/google/apiclient/src/Google/Service/SQLAdmin.php new file mode 100644 index 0000000..9c5558f --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/SQLAdmin.php @@ -0,0 +1,2975 @@ + + * API for Cloud SQL database instance management. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_SQLAdmin extends Google_Service +{ + /** View and manage your data across Google Cloud Platform services. */ + const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; + /** Manage your Google SQL Service instances. */ + const SQLSERVICE_ADMIN = "https://www.googleapis.com/auth/sqlservice.admin"; + + public $backupRuns; + public $flags; + public $instances; + public $operations; + public $sslCerts; + public $tiers; + + + /** + * Constructs the internal representation of the SQLAdmin service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'sql/v1beta3/'; + $this->version = 'v1beta3'; + $this->serviceName = 'sqladmin'; + + $this->backupRuns = new Google_Service_SQLAdmin_BackupRuns_Resource( + $this, + $this->serviceName, + 'backupRuns', + array( + 'methods' => array( + 'get' => array( + 'path' => 'projects/{project}/instances/{instance}/backupRuns/{backupConfiguration}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backupConfiguration' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'dueTime' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{project}/instances/{instance}/backupRuns', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backupConfiguration' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->flags = new Google_Service_SQLAdmin_Flags_Resource( + $this, + $this->serviceName, + 'flags', + array( + 'methods' => array( + 'list' => array( + 'path' => 'flags', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->instances = new Google_Service_SQLAdmin_Instances_Resource( + $this, + $this->serviceName, + 'instances', + array( + 'methods' => array( + 'clone' => array( + 'path' => 'projects/{project}/instances/clone', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'projects/{project}/instances/{instance}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'export' => array( + 'path' => 'projects/{project}/instances/{instance}/export', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'projects/{project}/instances/{instance}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'import' => array( + 'path' => 'projects/{project}/instances/{instance}/import', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'projects/{project}/instances', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{project}/instances', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'projects/{project}/instances/{instance}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'promoteReplica' => array( + 'path' => 'projects/{project}/instances/{instance}/promoteReplica', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'resetSslConfig' => array( + 'path' => 'projects/{project}/instances/{instance}/resetSslConfig', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'restart' => array( + 'path' => 'projects/{project}/instances/{instance}/restart', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'restoreBackup' => array( + 'path' => 'projects/{project}/instances/{instance}/restoreBackup', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'backupConfiguration' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'dueTime' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'setRootPassword' => array( + 'path' => 'projects/{project}/instances/{instance}/setRootPassword', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'projects/{project}/instances/{instance}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->operations = new Google_Service_SQLAdmin_Operations_Resource( + $this, + $this->serviceName, + 'operations', + array( + 'methods' => array( + 'get' => array( + 'path' => 'projects/{project}/instances/{instance}/operations/{operation}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'operation' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{project}/instances/{instance}/operations', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->sslCerts = new Google_Service_SQLAdmin_SslCerts_Resource( + $this, + $this->serviceName, + 'sslCerts', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sha1Fingerprint' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sha1Fingerprint' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'projects/{project}/instances/{instance}/sslCerts', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'projects/{project}/instances/{instance}/sslCerts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'instance' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->tiers = new Google_Service_SQLAdmin_Tiers_Resource( + $this, + $this->serviceName, + 'tiers', + array( + 'methods' => array( + 'list' => array( + 'path' => 'projects/{project}/tiers', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "backupRuns" collection of methods. + * Typical usage is: + * + * $sqladminService = new Google_Service_SQLAdmin(...); + * $backupRuns = $sqladminService->backupRuns; + * + */ +class Google_Service_SQLAdmin_BackupRuns_Resource extends Google_Service_Resource +{ + + /** + * Retrieves information about a specified backup run for a Cloud SQL instance. + * (backupRuns.get) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param string $backupConfiguration + * Identifier for the backup configuration. This gets generated automatically when a backup + * configuration is created. + * @param string $dueTime + * The time when this run is due to start in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_BackupRun + */ + public function get($project, $instance, $backupConfiguration, $dueTime, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'backupConfiguration' => $backupConfiguration, 'dueTime' => $dueTime); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_SQLAdmin_BackupRun"); + } + /** + * Lists all backup runs associated with a Cloud SQL instance. + * (backupRuns.listBackupRuns) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param string $backupConfiguration + * Identifier for the backup configuration. This gets generated automatically when a backup + * configuration is created. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A previously-returned page token representing part of the larger set of results to view. + * @opt_param int maxResults + * Maximum number of backup runs per response. + * @return Google_Service_SQLAdmin_BackupRunsListResponse + */ + public function listBackupRuns($project, $instance, $backupConfiguration, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'backupConfiguration' => $backupConfiguration); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SQLAdmin_BackupRunsListResponse"); + } +} + +/** + * The "flags" collection of methods. + * Typical usage is: + * + * $sqladminService = new Google_Service_SQLAdmin(...); + * $flags = $sqladminService->flags; + * + */ +class Google_Service_SQLAdmin_Flags_Resource extends Google_Service_Resource +{ + + /** + * Lists all database flags that can be set for Google Cloud SQL instances. + * (flags.listFlags) + * + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_FlagsListResponse + */ + public function listFlags($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SQLAdmin_FlagsListResponse"); + } +} + +/** + * The "instances" collection of methods. + * Typical usage is: + * + * $sqladminService = new Google_Service_SQLAdmin(...); + * $instances = $sqladminService->instances; + * + */ +class Google_Service_SQLAdmin_Instances_Resource extends Google_Service_Resource +{ + + /** + * Creates a Cloud SQL instance as a clone of a source instance. + * (instances.cloneInstances) + * + * @param string $project + * Project ID of the source as well as the clone Cloud SQL instance. + * @param Google_InstancesCloneRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesCloneResponse + */ + public function cloneInstances($project, Google_Service_SQLAdmin_InstancesCloneRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('clone', array($params), "Google_Service_SQLAdmin_InstancesCloneResponse"); + } + /** + * Deletes a Cloud SQL instance. (instances.delete) + * + * @param string $project + * Project ID of the project that contains the instance to be deleted. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesDeleteResponse + */ + public function delete($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_SQLAdmin_InstancesDeleteResponse"); + } + /** + * Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a + * MySQL dump file. (instances.export) + * + * @param string $project + * Project ID of the project that contains the instance to be exported. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param Google_InstancesExportRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesExportResponse + */ + public function export($project, $instance, Google_Service_SQLAdmin_InstancesExportRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('export', array($params), "Google_Service_SQLAdmin_InstancesExportResponse"); + } + /** + * Retrieves information about a Cloud SQL instance. (instances.get) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Database instance ID. This does not include the project ID. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_DatabaseInstance + */ + public function get($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_SQLAdmin_DatabaseInstance"); + } + /** + * Imports data into a Cloud SQL instance from a MySQL dump file stored in a + * Google Cloud Storage bucket. (instances.import) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param Google_InstancesImportRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesImportResponse + */ + public function import($project, $instance, Google_Service_SQLAdmin_InstancesImportRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('import', array($params), "Google_Service_SQLAdmin_InstancesImportResponse"); + } + /** + * Creates a new Cloud SQL instance. (instances.insert) + * + * @param string $project + * Project ID of the project to which the newly created Cloud SQL instances should belong. + * @param Google_DatabaseInstance $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesInsertResponse + */ + public function insert($project, Google_Service_SQLAdmin_DatabaseInstance $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_SQLAdmin_InstancesInsertResponse"); + } + /** + * Lists instances for a given project, in alphabetical order by instance name. + * (instances.listInstances) + * + * @param string $project + * Project ID of the project for which to list Cloud SQL instances. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A previously-returned page token representing part of the larger set of results to view. + * @opt_param string maxResults + * The maximum number of results to return per response. + * @return Google_Service_SQLAdmin_InstancesListResponse + */ + public function listInstances($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SQLAdmin_InstancesListResponse"); + } + /** + * Updates the settings of a Cloud SQL instance. This method supports patch + * semantics. (instances.patch) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param Google_DatabaseInstance $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesUpdateResponse + */ + public function patch($project, $instance, Google_Service_SQLAdmin_DatabaseInstance $postBody, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_SQLAdmin_InstancesUpdateResponse"); + } + /** + * Promotes the read replica instance to be a stand-alone Cloud SQL instance. + * (instances.promoteReplica) + * + * @param string $project + * ID of the project that contains the read replica. + * @param string $instance + * Cloud SQL read replica instance name. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesPromoteReplicaResponse + */ + public function promoteReplica($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('promoteReplica', array($params), "Google_Service_SQLAdmin_InstancesPromoteReplicaResponse"); + } + /** + * Deletes all client certificates and generates a new server SSL certificate + * for a Cloud SQL instance. (instances.resetSslConfig) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesResetSslConfigResponse + */ + public function resetSslConfig($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('resetSslConfig', array($params), "Google_Service_SQLAdmin_InstancesResetSslConfigResponse"); + } + /** + * Restarts a Cloud SQL instance. (instances.restart) + * + * @param string $project + * Project ID of the project that contains the instance to be restarted. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesRestartResponse + */ + public function restart($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('restart', array($params), "Google_Service_SQLAdmin_InstancesRestartResponse"); + } + /** + * Restores a backup of a Cloud SQL instance. (instances.restoreBackup) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param string $backupConfiguration + * The identifier of the backup configuration. This gets generated automatically when a backup + * configuration is created. + * @param string $dueTime + * The time when this run is due to start in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesRestoreBackupResponse + */ + public function restoreBackup($project, $instance, $backupConfiguration, $dueTime, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'backupConfiguration' => $backupConfiguration, 'dueTime' => $dueTime); + $params = array_merge($params, $optParams); + return $this->call('restoreBackup', array($params), "Google_Service_SQLAdmin_InstancesRestoreBackupResponse"); + } + /** + * Sets the password for the root user of the specified Cloud SQL instance. + * (instances.setRootPassword) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param Google_InstanceSetRootPasswordRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesSetRootPasswordResponse + */ + public function setRootPassword($project, $instance, Google_Service_SQLAdmin_InstanceSetRootPasswordRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('setRootPassword', array($params), "Google_Service_SQLAdmin_InstancesSetRootPasswordResponse"); + } + /** + * Updates the settings of a Cloud SQL instance. (instances.update) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param Google_DatabaseInstance $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstancesUpdateResponse + */ + public function update($project, $instance, Google_Service_SQLAdmin_DatabaseInstance $postBody, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_SQLAdmin_InstancesUpdateResponse"); + } +} + +/** + * The "operations" collection of methods. + * Typical usage is: + * + * $sqladminService = new Google_Service_SQLAdmin(...); + * $operations = $sqladminService->operations; + * + */ +class Google_Service_SQLAdmin_Operations_Resource extends Google_Service_Resource +{ + + /** + * Retrieves information about a specific operation that was performed on a + * Cloud SQL instance. (operations.get) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param string $operation + * Instance operation ID. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_InstanceOperation + */ + public function get($project, $instance, $operation, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'operation' => $operation); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_SQLAdmin_InstanceOperation"); + } + /** + * Lists all operations that have been performed on a Cloud SQL instance. + * (operations.listOperations) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param array $optParams Optional parameters. + * + * @opt_param string maxResults + * Maximum number of operations per response. + * @opt_param string pageToken + * A previously-returned page token representing part of the larger set of results to view. + * @return Google_Service_SQLAdmin_OperationsListResponse + */ + public function listOperations($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SQLAdmin_OperationsListResponse"); + } +} + +/** + * The "sslCerts" collection of methods. + * Typical usage is: + * + * $sqladminService = new Google_Service_SQLAdmin(...); + * $sslCerts = $sqladminService->sslCerts; + * + */ +class Google_Service_SQLAdmin_SslCerts_Resource extends Google_Service_Resource +{ + + /** + * Deletes an SSL certificate from a Cloud SQL instance. (sslCerts.delete) + * + * @param string $project + * Project ID of the project that contains the instance to be deleted. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param string $sha1Fingerprint + * Sha1 FingerPrint. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_SslCertsDeleteResponse + */ + public function delete($project, $instance, $sha1Fingerprint, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'sha1Fingerprint' => $sha1Fingerprint); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params), "Google_Service_SQLAdmin_SslCertsDeleteResponse"); + } + /** + * Retrieves an SSL certificate as specified by its SHA-1 fingerprint. + * (sslCerts.get) + * + * @param string $project + * Project ID of the project that contains the instance. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param string $sha1Fingerprint + * Sha1 FingerPrint. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_SslCert + */ + public function get($project, $instance, $sha1Fingerprint, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'sha1Fingerprint' => $sha1Fingerprint); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_SQLAdmin_SslCert"); + } + /** + * Creates an SSL certificate and returns the certificate, the associated + * private key, and the server certificate authority. (sslCerts.insert) + * + * @param string $project + * Project ID of the project to which the newly created Cloud SQL instances should belong. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param Google_SslCertsInsertRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_SslCertsInsertResponse + */ + public function insert($project, $instance, Google_Service_SQLAdmin_SslCertsInsertRequest $postBody, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_SQLAdmin_SslCertsInsertResponse"); + } + /** + * Lists all of the current SSL certificates defined for a Cloud SQL instance. + * (sslCerts.listSslCerts) + * + * @param string $project + * Project ID of the project for which to list Cloud SQL instances. + * @param string $instance + * Cloud SQL instance ID. This does not include the project ID. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_SslCertsListResponse + */ + public function listSslCerts($project, $instance, $optParams = array()) + { + $params = array('project' => $project, 'instance' => $instance); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SQLAdmin_SslCertsListResponse"); + } +} + +/** + * The "tiers" collection of methods. + * Typical usage is: + * + * $sqladminService = new Google_Service_SQLAdmin(...); + * $tiers = $sqladminService->tiers; + * + */ +class Google_Service_SQLAdmin_Tiers_Resource extends Google_Service_Resource +{ + + /** + * Lists service tiers that can be used to create Google Cloud SQL instances. + * (tiers.listTiers) + * + * @param string $project + * Project ID of the project for which to list tiers. + * @param array $optParams Optional parameters. + * @return Google_Service_SQLAdmin_TiersListResponse + */ + public function listTiers($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SQLAdmin_TiersListResponse"); + } +} + + + + +class Google_Service_SQLAdmin_BackupConfiguration extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $binaryLogEnabled; + public $enabled; + public $id; + public $kind; + public $startTime; + + public function setBinaryLogEnabled($binaryLogEnabled) + { + $this->binaryLogEnabled = $binaryLogEnabled; + } + + public function getBinaryLogEnabled() + { + return $this->binaryLogEnabled; + } + + public function setEnabled($enabled) + { + $this->enabled = $enabled; + } + + public function getEnabled() + { + return $this->enabled; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } +} + +class Google_Service_SQLAdmin_BackupRun extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $backupConfiguration; + public $dueTime; + public $endTime; + public $enqueuedTime; + protected $errorType = 'Google_Service_SQLAdmin_OperationError'; + protected $errorDataType = ''; + public $instance; + public $kind; + public $startTime; + public $status; + + public function setBackupConfiguration($backupConfiguration) + { + $this->backupConfiguration = $backupConfiguration; + } + + public function getBackupConfiguration() + { + return $this->backupConfiguration; + } + + public function setDueTime($dueTime) + { + $this->dueTime = $dueTime; + } + + public function getDueTime() + { + return $this->dueTime; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setEnqueuedTime($enqueuedTime) + { + $this->enqueuedTime = $enqueuedTime; + } + + public function getEnqueuedTime() + { + return $this->enqueuedTime; + } + + public function setError(Google_Service_SQLAdmin_OperationError $error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_SQLAdmin_BackupRunsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SQLAdmin_BackupRun'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_SQLAdmin_BinLogCoordinates extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $binLogFileName; + public $binLogPosition; + public $kind; + + public function setBinLogFileName($binLogFileName) + { + $this->binLogFileName = $binLogFileName; + } + + public function getBinLogFileName() + { + return $this->binLogFileName; + } + + public function setBinLogPosition($binLogPosition) + { + $this->binLogPosition = $binLogPosition; + } + + public function getBinLogPosition() + { + return $this->binLogPosition; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_SQLAdmin_CloneContext extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $binLogCoordinatesType = 'Google_Service_SQLAdmin_BinLogCoordinates'; + protected $binLogCoordinatesDataType = ''; + public $destinationInstanceName; + public $kind; + public $sourceInstanceName; + + public function setBinLogCoordinates(Google_Service_SQLAdmin_BinLogCoordinates $binLogCoordinates) + { + $this->binLogCoordinates = $binLogCoordinates; + } + + public function getBinLogCoordinates() + { + return $this->binLogCoordinates; + } + + public function setDestinationInstanceName($destinationInstanceName) + { + $this->destinationInstanceName = $destinationInstanceName; + } + + public function getDestinationInstanceName() + { + return $this->destinationInstanceName; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSourceInstanceName($sourceInstanceName) + { + $this->sourceInstanceName = $sourceInstanceName; + } + + public function getSourceInstanceName() + { + return $this->sourceInstanceName; + } +} + +class Google_Service_SQLAdmin_DatabaseFlags extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $value; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_SQLAdmin_DatabaseInstance extends Google_Collection +{ + protected $collection_key = 'replicaNames'; + protected $internal_gapi_mappings = array( + ); + public $currentDiskSize; + public $databaseVersion; + public $etag; + public $instance; + public $instanceType; + protected $ipAddressesType = 'Google_Service_SQLAdmin_IpMapping'; + protected $ipAddressesDataType = 'array'; + public $kind; + public $masterInstanceName; + public $maxDiskSize; + public $project; + public $region; + public $replicaNames; + protected $serverCaCertType = 'Google_Service_SQLAdmin_SslCert'; + protected $serverCaCertDataType = ''; + protected $settingsType = 'Google_Service_SQLAdmin_Settings'; + protected $settingsDataType = ''; + public $state; + + public function setCurrentDiskSize($currentDiskSize) + { + $this->currentDiskSize = $currentDiskSize; + } + + public function getCurrentDiskSize() + { + return $this->currentDiskSize; + } + + public function setDatabaseVersion($databaseVersion) + { + $this->databaseVersion = $databaseVersion; + } + + public function getDatabaseVersion() + { + return $this->databaseVersion; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } + + public function setInstanceType($instanceType) + { + $this->instanceType = $instanceType; + } + + public function getInstanceType() + { + return $this->instanceType; + } + + public function setIpAddresses($ipAddresses) + { + $this->ipAddresses = $ipAddresses; + } + + public function getIpAddresses() + { + return $this->ipAddresses; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMasterInstanceName($masterInstanceName) + { + $this->masterInstanceName = $masterInstanceName; + } + + public function getMasterInstanceName() + { + return $this->masterInstanceName; + } + + public function setMaxDiskSize($maxDiskSize) + { + $this->maxDiskSize = $maxDiskSize; + } + + public function getMaxDiskSize() + { + return $this->maxDiskSize; + } + + public function setProject($project) + { + $this->project = $project; + } + + public function getProject() + { + return $this->project; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setReplicaNames($replicaNames) + { + $this->replicaNames = $replicaNames; + } + + public function getReplicaNames() + { + return $this->replicaNames; + } + + public function setServerCaCert(Google_Service_SQLAdmin_SslCert $serverCaCert) + { + $this->serverCaCert = $serverCaCert; + } + + public function getServerCaCert() + { + return $this->serverCaCert; + } + + public function setSettings(Google_Service_SQLAdmin_Settings $settings) + { + $this->settings = $settings; + } + + public function getSettings() + { + return $this->settings; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } +} + +class Google_Service_SQLAdmin_ExportContext extends Google_Collection +{ + protected $collection_key = 'table'; + protected $internal_gapi_mappings = array( + ); + public $database; + public $kind; + public $table; + public $uri; + + public function setDatabase($database) + { + $this->database = $database; + } + + public function getDatabase() + { + return $this->database; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setTable($table) + { + $this->table = $table; + } + + public function getTable() + { + return $this->table; + } + + public function setUri($uri) + { + $this->uri = $uri; + } + + public function getUri() + { + return $this->uri; + } +} + +class Google_Service_SQLAdmin_Flag extends Google_Collection +{ + protected $collection_key = 'appliesTo'; + protected $internal_gapi_mappings = array( + ); + public $allowedStringValues; + public $appliesTo; + public $kind; + public $maxValue; + public $minValue; + public $name; + public $type; + + public function setAllowedStringValues($allowedStringValues) + { + $this->allowedStringValues = $allowedStringValues; + } + + public function getAllowedStringValues() + { + return $this->allowedStringValues; + } + + public function setAppliesTo($appliesTo) + { + $this->appliesTo = $appliesTo; + } + + public function getAppliesTo() + { + return $this->appliesTo; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxValue($maxValue) + { + $this->maxValue = $maxValue; + } + + public function getMaxValue() + { + return $this->maxValue; + } + + public function setMinValue($minValue) + { + $this->minValue = $minValue; + } + + public function getMinValue() + { + return $this->minValue; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_SQLAdmin_FlagsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SQLAdmin_Flag'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_SQLAdmin_ImportContext extends Google_Collection +{ + protected $collection_key = 'uri'; + protected $internal_gapi_mappings = array( + ); + public $database; + public $kind; + public $uri; + + public function setDatabase($database) + { + $this->database = $database; + } + + public function getDatabase() + { + return $this->database; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUri($uri) + { + $this->uri = $uri; + } + + public function getUri() + { + return $this->uri; + } +} + +class Google_Service_SQLAdmin_InstanceOperation extends Google_Collection +{ + protected $collection_key = 'error'; + protected $internal_gapi_mappings = array( + ); + public $endTime; + public $enqueuedTime; + protected $errorType = 'Google_Service_SQLAdmin_OperationError'; + protected $errorDataType = 'array'; + protected $exportContextType = 'Google_Service_SQLAdmin_ExportContext'; + protected $exportContextDataType = ''; + protected $importContextType = 'Google_Service_SQLAdmin_ImportContext'; + protected $importContextDataType = ''; + public $instance; + public $kind; + public $operation; + public $operationType; + public $startTime; + public $state; + public $userEmailAddress; + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setEnqueuedTime($enqueuedTime) + { + $this->enqueuedTime = $enqueuedTime; + } + + public function getEnqueuedTime() + { + return $this->enqueuedTime; + } + + public function setError($error) + { + $this->error = $error; + } + + public function getError() + { + return $this->error; + } + + public function setExportContext(Google_Service_SQLAdmin_ExportContext $exportContext) + { + $this->exportContext = $exportContext; + } + + public function getExportContext() + { + return $this->exportContext; + } + + public function setImportContext(Google_Service_SQLAdmin_ImportContext $importContext) + { + $this->importContext = $importContext; + } + + public function getImportContext() + { + return $this->importContext; + } + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } + + public function setOperationType($operationType) + { + $this->operationType = $operationType; + } + + public function getOperationType() + { + return $this->operationType; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setState($state) + { + $this->state = $state; + } + + public function getState() + { + return $this->state; + } + + public function setUserEmailAddress($userEmailAddress) + { + $this->userEmailAddress = $userEmailAddress; + } + + public function getUserEmailAddress() + { + return $this->userEmailAddress; + } +} + +class Google_Service_SQLAdmin_InstanceSetRootPasswordRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $setRootPasswordContextType = 'Google_Service_SQLAdmin_SetRootPasswordContext'; + protected $setRootPasswordContextDataType = ''; + + public function setSetRootPasswordContext(Google_Service_SQLAdmin_SetRootPasswordContext $setRootPasswordContext) + { + $this->setRootPasswordContext = $setRootPasswordContext; + } + + public function getSetRootPasswordContext() + { + return $this->setRootPasswordContext; + } +} + +class Google_Service_SQLAdmin_InstancesCloneRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $cloneContextType = 'Google_Service_SQLAdmin_CloneContext'; + protected $cloneContextDataType = ''; + + public function setCloneContext(Google_Service_SQLAdmin_CloneContext $cloneContext) + { + $this->cloneContext = $cloneContext; + } + + public function getCloneContext() + { + return $this->cloneContext; + } +} + +class Google_Service_SQLAdmin_InstancesCloneResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesDeleteResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesExportRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $exportContextType = 'Google_Service_SQLAdmin_ExportContext'; + protected $exportContextDataType = ''; + + public function setExportContext(Google_Service_SQLAdmin_ExportContext $exportContext) + { + $this->exportContext = $exportContext; + } + + public function getExportContext() + { + return $this->exportContext; + } +} + +class Google_Service_SQLAdmin_InstancesExportResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesImportRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $importContextType = 'Google_Service_SQLAdmin_ImportContext'; + protected $importContextDataType = ''; + + public function setImportContext(Google_Service_SQLAdmin_ImportContext $importContext) + { + $this->importContext = $importContext; + } + + public function getImportContext() + { + return $this->importContext; + } +} + +class Google_Service_SQLAdmin_InstancesImportResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesInsertResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SQLAdmin_DatabaseInstance'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_SQLAdmin_InstancesPromoteReplicaResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesResetSslConfigResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesRestartResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesRestoreBackupResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesSetRootPasswordResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_InstancesUpdateResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_IpConfiguration extends Google_Collection +{ + protected $collection_key = 'authorizedNetworks'; + protected $internal_gapi_mappings = array( + ); + public $authorizedNetworks; + public $enabled; + public $requireSsl; + + public function setAuthorizedNetworks($authorizedNetworks) + { + $this->authorizedNetworks = $authorizedNetworks; + } + + public function getAuthorizedNetworks() + { + return $this->authorizedNetworks; + } + + public function setEnabled($enabled) + { + $this->enabled = $enabled; + } + + public function getEnabled() + { + return $this->enabled; + } + + public function setRequireSsl($requireSsl) + { + $this->requireSsl = $requireSsl; + } + + public function getRequireSsl() + { + return $this->requireSsl; + } +} + +class Google_Service_SQLAdmin_IpMapping extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $ipAddress; + public $timeToRetire; + + public function setIpAddress($ipAddress) + { + $this->ipAddress = $ipAddress; + } + + public function getIpAddress() + { + return $this->ipAddress; + } + + public function setTimeToRetire($timeToRetire) + { + $this->timeToRetire = $timeToRetire; + } + + public function getTimeToRetire() + { + return $this->timeToRetire; + } +} + +class Google_Service_SQLAdmin_LocationPreference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $followGaeApplication; + public $kind; + public $zone; + + public function setFollowGaeApplication($followGaeApplication) + { + $this->followGaeApplication = $followGaeApplication; + } + + public function getFollowGaeApplication() + { + return $this->followGaeApplication; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setZone($zone) + { + $this->zone = $zone; + } + + public function getZone() + { + return $this->zone; + } +} + +class Google_Service_SQLAdmin_OperationError extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $kind; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_SQLAdmin_OperationsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SQLAdmin_InstanceOperation'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_SQLAdmin_SetRootPasswordContext extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $password; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPassword($password) + { + $this->password = $password; + } + + public function getPassword() + { + return $this->password; + } +} + +class Google_Service_SQLAdmin_Settings extends Google_Collection +{ + protected $collection_key = 'databaseFlags'; + protected $internal_gapi_mappings = array( + ); + public $activationPolicy; + public $authorizedGaeApplications; + protected $backupConfigurationType = 'Google_Service_SQLAdmin_BackupConfiguration'; + protected $backupConfigurationDataType = 'array'; + protected $databaseFlagsType = 'Google_Service_SQLAdmin_DatabaseFlags'; + protected $databaseFlagsDataType = 'array'; + public $databaseReplicationEnabled; + protected $ipConfigurationType = 'Google_Service_SQLAdmin_IpConfiguration'; + protected $ipConfigurationDataType = ''; + public $kind; + protected $locationPreferenceType = 'Google_Service_SQLAdmin_LocationPreference'; + protected $locationPreferenceDataType = ''; + public $pricingPlan; + public $replicationType; + public $settingsVersion; + public $tier; + + public function setActivationPolicy($activationPolicy) + { + $this->activationPolicy = $activationPolicy; + } + + public function getActivationPolicy() + { + return $this->activationPolicy; + } + + public function setAuthorizedGaeApplications($authorizedGaeApplications) + { + $this->authorizedGaeApplications = $authorizedGaeApplications; + } + + public function getAuthorizedGaeApplications() + { + return $this->authorizedGaeApplications; + } + + public function setBackupConfiguration($backupConfiguration) + { + $this->backupConfiguration = $backupConfiguration; + } + + public function getBackupConfiguration() + { + return $this->backupConfiguration; + } + + public function setDatabaseFlags($databaseFlags) + { + $this->databaseFlags = $databaseFlags; + } + + public function getDatabaseFlags() + { + return $this->databaseFlags; + } + + public function setDatabaseReplicationEnabled($databaseReplicationEnabled) + { + $this->databaseReplicationEnabled = $databaseReplicationEnabled; + } + + public function getDatabaseReplicationEnabled() + { + return $this->databaseReplicationEnabled; + } + + public function setIpConfiguration(Google_Service_SQLAdmin_IpConfiguration $ipConfiguration) + { + $this->ipConfiguration = $ipConfiguration; + } + + public function getIpConfiguration() + { + return $this->ipConfiguration; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLocationPreference(Google_Service_SQLAdmin_LocationPreference $locationPreference) + { + $this->locationPreference = $locationPreference; + } + + public function getLocationPreference() + { + return $this->locationPreference; + } + + public function setPricingPlan($pricingPlan) + { + $this->pricingPlan = $pricingPlan; + } + + public function getPricingPlan() + { + return $this->pricingPlan; + } + + public function setReplicationType($replicationType) + { + $this->replicationType = $replicationType; + } + + public function getReplicationType() + { + return $this->replicationType; + } + + public function setSettingsVersion($settingsVersion) + { + $this->settingsVersion = $settingsVersion; + } + + public function getSettingsVersion() + { + return $this->settingsVersion; + } + + public function setTier($tier) + { + $this->tier = $tier; + } + + public function getTier() + { + return $this->tier; + } +} + +class Google_Service_SQLAdmin_SslCert extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $cert; + public $certSerialNumber; + public $commonName; + public $createTime; + public $expirationTime; + public $instance; + public $kind; + public $sha1Fingerprint; + + public function setCert($cert) + { + $this->cert = $cert; + } + + public function getCert() + { + return $this->cert; + } + + public function setCertSerialNumber($certSerialNumber) + { + $this->certSerialNumber = $certSerialNumber; + } + + public function getCertSerialNumber() + { + return $this->certSerialNumber; + } + + public function setCommonName($commonName) + { + $this->commonName = $commonName; + } + + public function getCommonName() + { + return $this->commonName; + } + + public function setCreateTime($createTime) + { + $this->createTime = $createTime; + } + + public function getCreateTime() + { + return $this->createTime; + } + + public function setExpirationTime($expirationTime) + { + $this->expirationTime = $expirationTime; + } + + public function getExpirationTime() + { + return $this->expirationTime; + } + + public function setInstance($instance) + { + $this->instance = $instance; + } + + public function getInstance() + { + return $this->instance; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSha1Fingerprint($sha1Fingerprint) + { + $this->sha1Fingerprint = $sha1Fingerprint; + } + + public function getSha1Fingerprint() + { + return $this->sha1Fingerprint; + } +} + +class Google_Service_SQLAdmin_SslCertDetail extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $certInfoType = 'Google_Service_SQLAdmin_SslCert'; + protected $certInfoDataType = ''; + public $certPrivateKey; + + public function setCertInfo(Google_Service_SQLAdmin_SslCert $certInfo) + { + $this->certInfo = $certInfo; + } + + public function getCertInfo() + { + return $this->certInfo; + } + + public function setCertPrivateKey($certPrivateKey) + { + $this->certPrivateKey = $certPrivateKey; + } + + public function getCertPrivateKey() + { + return $this->certPrivateKey; + } +} + +class Google_Service_SQLAdmin_SslCertsDeleteResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $operation; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setOperation($operation) + { + $this->operation = $operation; + } + + public function getOperation() + { + return $this->operation; + } +} + +class Google_Service_SQLAdmin_SslCertsInsertRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $commonName; + + public function setCommonName($commonName) + { + $this->commonName = $commonName; + } + + public function getCommonName() + { + return $this->commonName; + } +} + +class Google_Service_SQLAdmin_SslCertsInsertResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $clientCertType = 'Google_Service_SQLAdmin_SslCertDetail'; + protected $clientCertDataType = ''; + public $kind; + protected $serverCaCertType = 'Google_Service_SQLAdmin_SslCert'; + protected $serverCaCertDataType = ''; + + public function setClientCert(Google_Service_SQLAdmin_SslCertDetail $clientCert) + { + $this->clientCert = $clientCert; + } + + public function getClientCert() + { + return $this->clientCert; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setServerCaCert(Google_Service_SQLAdmin_SslCert $serverCaCert) + { + $this->serverCaCert = $serverCaCert; + } + + public function getServerCaCert() + { + return $this->serverCaCert; + } +} + +class Google_Service_SQLAdmin_SslCertsListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SQLAdmin_SslCert'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_SQLAdmin_Tier extends Google_Collection +{ + protected $collection_key = 'region'; + protected $internal_gapi_mappings = array( + "diskQuota" => "DiskQuota", + "rAM" => "RAM", + ); + public $diskQuota; + public $rAM; + public $kind; + public $region; + public $tier; + + public function setDiskQuota($diskQuota) + { + $this->diskQuota = $diskQuota; + } + + public function getDiskQuota() + { + return $this->diskQuota; + } + + public function setRAM($rAM) + { + $this->rAM = $rAM; + } + + public function getRAM() + { + return $this->rAM; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setTier($tier) + { + $this->tier = $tier; + } + + public function getTier() + { + return $this->tier; + } +} + +class Google_Service_SQLAdmin_TiersListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SQLAdmin_Tier'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/ShoppingContent.php b/vendor/google/apiclient/src/Google/Service/ShoppingContent.php new file mode 100644 index 0000000..29084a5 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/ShoppingContent.php @@ -0,0 +1,4724 @@ + + * Manage product items, inventory, and Merchant Center accounts for Google Shopping. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_ShoppingContent extends Google_Service +{ + /** Manage your product listings and accounts for Google Shopping. */ + const CONTENT = "https://www.googleapis.com/auth/content"; + + public $accounts; + public $accountstatuses; + public $datafeeds; + public $datafeedstatuses; + public $inventory; + public $products; + public $productstatuses; + + + /** + * Constructs the internal representation of the ShoppingContent service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'content/v2/'; + $this->version = 'v2'; + $this->serviceName = 'content'; + + $this->accounts = new Google_Service_ShoppingContent_Accounts_Resource( + $this, + $this->serviceName, + 'accounts', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'accounts/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => '{merchantId}/accounts/{accountId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{merchantId}/accounts/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{merchantId}/accounts', + 'httpMethod' => 'POST', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{merchantId}/accounts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => '{merchantId}/accounts/{accountId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{merchantId}/accounts/{accountId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->accountstatuses = new Google_Service_ShoppingContent_Accountstatuses_Resource( + $this, + $this->serviceName, + 'accountstatuses', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'accountstatuses/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'get' => array( + 'path' => '{merchantId}/accountstatuses/{accountId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'accountId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{merchantId}/accountstatuses', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->datafeeds = new Google_Service_ShoppingContent_Datafeeds_Resource( + $this, + $this->serviceName, + 'datafeeds', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'datafeeds/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'delete' => array( + 'path' => '{merchantId}/datafeeds/{datafeedId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datafeedId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{merchantId}/datafeeds/{datafeedId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datafeedId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{merchantId}/datafeeds', + 'httpMethod' => 'POST', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{merchantId}/datafeeds', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{merchantId}/datafeeds/{datafeedId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datafeedId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{merchantId}/datafeeds/{datafeedId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datafeedId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->datafeedstatuses = new Google_Service_ShoppingContent_Datafeedstatuses_Resource( + $this, + $this->serviceName, + 'datafeedstatuses', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'datafeedstatuses/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'get' => array( + 'path' => '{merchantId}/datafeedstatuses/{datafeedId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'datafeedId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{merchantId}/datafeedstatuses', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->inventory = new Google_Service_ShoppingContent_Inventory_Resource( + $this, + $this->serviceName, + 'inventory', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'inventory/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'set' => array( + 'path' => '{merchantId}/inventory/{storeCode}/products/{productId}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'storeCode' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->products = new Google_Service_ShoppingContent_Products_Resource( + $this, + $this->serviceName, + 'products', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'products/batch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'dryRun' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'delete' => array( + 'path' => '{merchantId}/products/{productId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'dryRun' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'get' => array( + 'path' => '{merchantId}/products/{productId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{merchantId}/products', + 'httpMethod' => 'POST', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'dryRun' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => '{merchantId}/products', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->productstatuses = new Google_Service_ShoppingContent_Productstatuses_Resource( + $this, + $this->serviceName, + 'productstatuses', + array( + 'methods' => array( + 'custombatch' => array( + 'path' => 'productstatuses/batch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'get' => array( + 'path' => '{merchantId}/productstatuses/{productId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'productId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => '{merchantId}/productstatuses', + 'httpMethod' => 'GET', + 'parameters' => array( + 'merchantId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "accounts" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $accounts = $contentService->accounts; + * + */ +class Google_Service_ShoppingContent_Accounts_Resource extends Google_Service_Resource +{ + + /** + * Retrieves, inserts, updates, and deletes multiple Merchant Center + * (sub-)accounts in a single request. (accounts.custombatch) + * + * @param Google_AccountsCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_AccountsCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_AccountsCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_AccountsCustomBatchResponse"); + } + /** + * Deletes a Merchant Center sub-account. (accounts.delete) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $accountId + * The ID of the account. + * @param array $optParams Optional parameters. + */ + public function delete($merchantId, $accountId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a Merchant Center account. (accounts.get) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $accountId + * The ID of the account. + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Account + */ + public function get($merchantId, $accountId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_ShoppingContent_Account"); + } + /** + * Creates a Merchant Center sub-account. (accounts.insert) + * + * @param string $merchantId + * The ID of the managing account. + * @param Google_Account $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Account + */ + public function insert($merchantId, Google_Service_ShoppingContent_Account $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_ShoppingContent_Account"); + } + /** + * Lists the sub-accounts in your Merchant Center account. + * (accounts.listAccounts) + * + * @param string $merchantId + * The ID of the managing account. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param string maxResults + * The maximum number of accounts to return in the response, used for paging. + * @return Google_Service_ShoppingContent_AccountsListResponse + */ + public function listAccounts($merchantId, $optParams = array()) + { + $params = array('merchantId' => $merchantId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_ShoppingContent_AccountsListResponse"); + } + /** + * Updates a Merchant Center account. This method supports patch semantics. + * (accounts.patch) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $accountId + * The ID of the account. + * @param Google_Account $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Account + */ + public function patch($merchantId, $accountId, Google_Service_ShoppingContent_Account $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'accountId' => $accountId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_ShoppingContent_Account"); + } + /** + * Updates a Merchant Center account. (accounts.update) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $accountId + * The ID of the account. + * @param Google_Account $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Account + */ + public function update($merchantId, $accountId, Google_Service_ShoppingContent_Account $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'accountId' => $accountId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_ShoppingContent_Account"); + } +} + +/** + * The "accountstatuses" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $accountstatuses = $contentService->accountstatuses; + * + */ +class Google_Service_ShoppingContent_Accountstatuses_Resource extends Google_Service_Resource +{ + + /** + * (accountstatuses.custombatch) + * + * @param Google_AccountstatusesCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_AccountstatusesCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_AccountstatusesCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_AccountstatusesCustomBatchResponse"); + } + /** + * Retrieves the status of a Merchant Center account. (accountstatuses.get) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $accountId + * The ID of the account. + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_AccountStatus + */ + public function get($merchantId, $accountId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'accountId' => $accountId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_ShoppingContent_AccountStatus"); + } + /** + * Lists the statuses of the sub-accounts in your Merchant Center account. + * (accountstatuses.listAccountstatuses) + * + * @param string $merchantId + * The ID of the managing account. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param string maxResults + * The maximum number of account statuses to return in the response, used for paging. + * @return Google_Service_ShoppingContent_AccountstatusesListResponse + */ + public function listAccountstatuses($merchantId, $optParams = array()) + { + $params = array('merchantId' => $merchantId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_ShoppingContent_AccountstatusesListResponse"); + } +} + +/** + * The "datafeeds" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $datafeeds = $contentService->datafeeds; + * + */ +class Google_Service_ShoppingContent_Datafeeds_Resource extends Google_Service_Resource +{ + + /** + * (datafeeds.custombatch) + * + * @param Google_DatafeedsCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_DatafeedsCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_DatafeedsCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_DatafeedsCustomBatchResponse"); + } + /** + * Deletes a datafeed from your Merchant Center account. (datafeeds.delete) + * + * @param string $merchantId + * + * @param string $datafeedId + * + * @param array $optParams Optional parameters. + */ + public function delete($merchantId, $datafeedId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'datafeedId' => $datafeedId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a datafeed from your Merchant Center account. (datafeeds.get) + * + * @param string $merchantId + * + * @param string $datafeedId + * + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Datafeed + */ + public function get($merchantId, $datafeedId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'datafeedId' => $datafeedId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_ShoppingContent_Datafeed"); + } + /** + * Registers a datafeed with your Merchant Center account. (datafeeds.insert) + * + * @param string $merchantId + * + * @param Google_Datafeed $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Datafeed + */ + public function insert($merchantId, Google_Service_ShoppingContent_Datafeed $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_ShoppingContent_Datafeed"); + } + /** + * Lists the datafeeds in your Merchant Center account. + * (datafeeds.listDatafeeds) + * + * @param string $merchantId + * + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_DatafeedsListResponse + */ + public function listDatafeeds($merchantId, $optParams = array()) + { + $params = array('merchantId' => $merchantId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_ShoppingContent_DatafeedsListResponse"); + } + /** + * Updates a datafeed of your Merchant Center account. This method supports + * patch semantics. (datafeeds.patch) + * + * @param string $merchantId + * + * @param string $datafeedId + * + * @param Google_Datafeed $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Datafeed + */ + public function patch($merchantId, $datafeedId, Google_Service_ShoppingContent_Datafeed $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'datafeedId' => $datafeedId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_ShoppingContent_Datafeed"); + } + /** + * Updates a datafeed of your Merchant Center account. (datafeeds.update) + * + * @param string $merchantId + * + * @param string $datafeedId + * + * @param Google_Datafeed $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Datafeed + */ + public function update($merchantId, $datafeedId, Google_Service_ShoppingContent_Datafeed $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'datafeedId' => $datafeedId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_ShoppingContent_Datafeed"); + } +} + +/** + * The "datafeedstatuses" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $datafeedstatuses = $contentService->datafeedstatuses; + * + */ +class Google_Service_ShoppingContent_Datafeedstatuses_Resource extends Google_Service_Resource +{ + + /** + * (datafeedstatuses.custombatch) + * + * @param Google_DatafeedstatusesCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_DatafeedstatusesCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_DatafeedstatusesCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_DatafeedstatusesCustomBatchResponse"); + } + /** + * Retrieves the status of a datafeed from your Merchant Center account. + * (datafeedstatuses.get) + * + * @param string $merchantId + * + * @param string $datafeedId + * + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_DatafeedStatus + */ + public function get($merchantId, $datafeedId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'datafeedId' => $datafeedId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_ShoppingContent_DatafeedStatus"); + } + /** + * Lists the statuses of the datafeeds in your Merchant Center account. + * (datafeedstatuses.listDatafeedstatuses) + * + * @param string $merchantId + * + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_DatafeedstatusesListResponse + */ + public function listDatafeedstatuses($merchantId, $optParams = array()) + { + $params = array('merchantId' => $merchantId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_ShoppingContent_DatafeedstatusesListResponse"); + } +} + +/** + * The "inventory" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $inventory = $contentService->inventory; + * + */ +class Google_Service_ShoppingContent_Inventory_Resource extends Google_Service_Resource +{ + + /** + * Updates price and availability for multiple products or stores in a single + * request. (inventory.custombatch) + * + * @param Google_InventoryCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_InventoryCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_InventoryCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_InventoryCustomBatchResponse"); + } + /** + * Updates price and availability of a product in your Merchant Center account. + * (inventory.set) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $storeCode + * The code of the store for which to update price and availability. Use online to update price and + * availability of an online product. + * @param string $productId + * The ID of the product for which to update price and availability. + * @param Google_InventorySetRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_InventorySetResponse + */ + public function set($merchantId, $storeCode, $productId, Google_Service_ShoppingContent_InventorySetRequest $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'storeCode' => $storeCode, 'productId' => $productId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('set', array($params), "Google_Service_ShoppingContent_InventorySetResponse"); + } +} + +/** + * The "products" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $products = $contentService->products; + * + */ +class Google_Service_ShoppingContent_Products_Resource extends Google_Service_Resource +{ + + /** + * Retrieves, inserts, and deletes multiple products in a single request. + * (products.custombatch) + * + * @param Google_ProductsCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool dryRun + * Flag to run the request in dry-run mode. + * @return Google_Service_ShoppingContent_ProductsCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_ProductsCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_ProductsCustomBatchResponse"); + } + /** + * Deletes a product from your Merchant Center account. (products.delete) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $productId + * The ID of the product. + * @param array $optParams Optional parameters. + * + * @opt_param bool dryRun + * Flag to run the request in dry-run mode. + */ + public function delete($merchantId, $productId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'productId' => $productId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves a product from your Merchant Center account. (products.get) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $productId + * The ID of the product. + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_Product + */ + public function get($merchantId, $productId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'productId' => $productId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_ShoppingContent_Product"); + } + /** + * Uploads a product to your Merchant Center account. (products.insert) + * + * @param string $merchantId + * The ID of the managing account. + * @param Google_Product $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool dryRun + * Flag to run the request in dry-run mode. + * @return Google_Service_ShoppingContent_Product + */ + public function insert($merchantId, Google_Service_ShoppingContent_Product $postBody, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_ShoppingContent_Product"); + } + /** + * Lists the products in your Merchant Center account. (products.listProducts) + * + * @param string $merchantId + * The ID of the managing account. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param string maxResults + * The maximum number of products to return in the response, used for paging. + * @return Google_Service_ShoppingContent_ProductsListResponse + */ + public function listProducts($merchantId, $optParams = array()) + { + $params = array('merchantId' => $merchantId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_ShoppingContent_ProductsListResponse"); + } +} + +/** + * The "productstatuses" collection of methods. + * Typical usage is: + * + * $contentService = new Google_Service_ShoppingContent(...); + * $productstatuses = $contentService->productstatuses; + * + */ +class Google_Service_ShoppingContent_Productstatuses_Resource extends Google_Service_Resource +{ + + /** + * Gets the statuses of multiple products in a single request. + * (productstatuses.custombatch) + * + * @param Google_ProductstatusesCustomBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_ProductstatusesCustomBatchResponse + */ + public function custombatch(Google_Service_ShoppingContent_ProductstatusesCustomBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('custombatch', array($params), "Google_Service_ShoppingContent_ProductstatusesCustomBatchResponse"); + } + /** + * Gets the status of a product from your Merchant Center account. + * (productstatuses.get) + * + * @param string $merchantId + * The ID of the managing account. + * @param string $productId + * The ID of the product. + * @param array $optParams Optional parameters. + * @return Google_Service_ShoppingContent_ProductStatus + */ + public function get($merchantId, $productId, $optParams = array()) + { + $params = array('merchantId' => $merchantId, 'productId' => $productId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_ShoppingContent_ProductStatus"); + } + /** + * Lists the statuses of the products in your Merchant Center account. + * (productstatuses.listProductstatuses) + * + * @param string $merchantId + * The ID of the managing account. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The token returned by the previous request. + * @opt_param string maxResults + * The maximum number of product statuses to return in the response, used for paging. + * @return Google_Service_ShoppingContent_ProductstatusesListResponse + */ + public function listProductstatuses($merchantId, $optParams = array()) + { + $params = array('merchantId' => $merchantId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_ShoppingContent_ProductstatusesListResponse"); + } +} + + + + +class Google_Service_ShoppingContent_Account extends Google_Collection +{ + protected $collection_key = 'users'; + protected $internal_gapi_mappings = array( + ); + public $adultContent; + protected $adwordsLinksType = 'Google_Service_ShoppingContent_AccountAdwordsLink'; + protected $adwordsLinksDataType = 'array'; + public $id; + public $kind; + public $name; + public $reviewsUrl; + public $sellerId; + protected $usersType = 'Google_Service_ShoppingContent_AccountUser'; + protected $usersDataType = 'array'; + public $websiteUrl; + + public function setAdultContent($adultContent) + { + $this->adultContent = $adultContent; + } + + public function getAdultContent() + { + return $this->adultContent; + } + + public function setAdwordsLinks($adwordsLinks) + { + $this->adwordsLinks = $adwordsLinks; + } + + public function getAdwordsLinks() + { + return $this->adwordsLinks; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setReviewsUrl($reviewsUrl) + { + $this->reviewsUrl = $reviewsUrl; + } + + public function getReviewsUrl() + { + return $this->reviewsUrl; + } + + public function setSellerId($sellerId) + { + $this->sellerId = $sellerId; + } + + public function getSellerId() + { + return $this->sellerId; + } + + public function setUsers($users) + { + $this->users = $users; + } + + public function getUsers() + { + return $this->users; + } + + public function setWebsiteUrl($websiteUrl) + { + $this->websiteUrl = $websiteUrl; + } + + public function getWebsiteUrl() + { + return $this->websiteUrl; + } +} + +class Google_Service_ShoppingContent_AccountAdwordsLink extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $adwordsId; + public $status; + + public function setAdwordsId($adwordsId) + { + $this->adwordsId = $adwordsId; + } + + public function getAdwordsId() + { + return $this->adwordsId; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_ShoppingContent_AccountStatus extends Google_Collection +{ + protected $collection_key = 'dataQualityIssues'; + protected $internal_gapi_mappings = array( + ); + public $accountId; + protected $dataQualityIssuesType = 'Google_Service_ShoppingContent_AccountStatusDataQualityIssue'; + protected $dataQualityIssuesDataType = 'array'; + public $kind; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setDataQualityIssues($dataQualityIssues) + { + $this->dataQualityIssues = $dataQualityIssues; + } + + public function getDataQualityIssues() + { + return $this->dataQualityIssues; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_AccountStatusDataQualityIssue extends Google_Collection +{ + protected $collection_key = 'exampleItems'; + protected $internal_gapi_mappings = array( + ); + public $country; + public $displayedValue; + protected $exampleItemsType = 'Google_Service_ShoppingContent_AccountStatusExampleItem'; + protected $exampleItemsDataType = 'array'; + public $id; + public $lastChecked; + public $numItems; + public $severity; + public $submittedValue; + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setDisplayedValue($displayedValue) + { + $this->displayedValue = $displayedValue; + } + + public function getDisplayedValue() + { + return $this->displayedValue; + } + + public function setExampleItems($exampleItems) + { + $this->exampleItems = $exampleItems; + } + + public function getExampleItems() + { + return $this->exampleItems; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLastChecked($lastChecked) + { + $this->lastChecked = $lastChecked; + } + + public function getLastChecked() + { + return $this->lastChecked; + } + + public function setNumItems($numItems) + { + $this->numItems = $numItems; + } + + public function getNumItems() + { + return $this->numItems; + } + + public function setSeverity($severity) + { + $this->severity = $severity; + } + + public function getSeverity() + { + return $this->severity; + } + + public function setSubmittedValue($submittedValue) + { + $this->submittedValue = $submittedValue; + } + + public function getSubmittedValue() + { + return $this->submittedValue; + } +} + +class Google_Service_ShoppingContent_AccountStatusExampleItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $itemId; + public $link; + public $submittedValue; + public $title; + public $valueOnLandingPage; + + public function setItemId($itemId) + { + $this->itemId = $itemId; + } + + public function getItemId() + { + return $this->itemId; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setSubmittedValue($submittedValue) + { + $this->submittedValue = $submittedValue; + } + + public function getSubmittedValue() + { + return $this->submittedValue; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setValueOnLandingPage($valueOnLandingPage) + { + $this->valueOnLandingPage = $valueOnLandingPage; + } + + public function getValueOnLandingPage() + { + return $this->valueOnLandingPage; + } +} + +class Google_Service_ShoppingContent_AccountUser extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $admin; + public $emailAddress; + + public function setAdmin($admin) + { + $this->admin = $admin; + } + + public function getAdmin() + { + return $this->admin; + } + + public function setEmailAddress($emailAddress) + { + $this->emailAddress = $emailAddress; + } + + public function getEmailAddress() + { + return $this->emailAddress; + } +} + +class Google_Service_ShoppingContent_AccountsCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_AccountsCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_AccountsCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accountType = 'Google_Service_ShoppingContent_Account'; + protected $accountDataType = ''; + public $accountId; + public $batchId; + public $merchantId; + public $method; + + public function setAccount(Google_Service_ShoppingContent_Account $account) + { + $this->account = $account; + } + + public function getAccount() + { + return $this->account; + } + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } +} + +class Google_Service_ShoppingContent_AccountsCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_AccountsCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_AccountsCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accountType = 'Google_Service_ShoppingContent_Account'; + protected $accountDataType = ''; + public $batchId; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + public $kind; + + public function setAccount(Google_Service_ShoppingContent_Account $account) + { + $this->account = $account; + } + + public function getAccount() + { + return $this->account; + } + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_AccountsListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $resourcesType = 'Google_Service_ShoppingContent_Account'; + protected $resourcesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_ShoppingContent_AccountstatusesCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_AccountstatusesCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_AccountstatusesCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $accountId; + public $batchId; + public $merchantId; + public $method; + + public function setAccountId($accountId) + { + $this->accountId = $accountId; + } + + public function getAccountId() + { + return $this->accountId; + } + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } +} + +class Google_Service_ShoppingContent_AccountstatusesCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_AccountstatusesCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_AccountstatusesCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accountStatusType = 'Google_Service_ShoppingContent_AccountStatus'; + protected $accountStatusDataType = ''; + public $batchId; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + + public function setAccountStatus(Google_Service_ShoppingContent_AccountStatus $accountStatus) + { + $this->accountStatus = $accountStatus; + } + + public function getAccountStatus() + { + return $this->accountStatus; + } + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_ShoppingContent_AccountstatusesListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $resourcesType = 'Google_Service_ShoppingContent_AccountStatus'; + protected $resourcesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_ShoppingContent_Datafeed extends Google_Collection +{ + protected $collection_key = 'intendedDestinations'; + protected $internal_gapi_mappings = array( + ); + public $attributeLanguage; + public $contentLanguage; + public $contentType; + protected $fetchScheduleType = 'Google_Service_ShoppingContent_DatafeedFetchSchedule'; + protected $fetchScheduleDataType = ''; + public $fileName; + protected $formatType = 'Google_Service_ShoppingContent_DatafeedFormat'; + protected $formatDataType = ''; + public $id; + public $intendedDestinations; + public $kind; + public $name; + public $targetCountry; + + public function setAttributeLanguage($attributeLanguage) + { + $this->attributeLanguage = $attributeLanguage; + } + + public function getAttributeLanguage() + { + return $this->attributeLanguage; + } + + public function setContentLanguage($contentLanguage) + { + $this->contentLanguage = $contentLanguage; + } + + public function getContentLanguage() + { + return $this->contentLanguage; + } + + public function setContentType($contentType) + { + $this->contentType = $contentType; + } + + public function getContentType() + { + return $this->contentType; + } + + public function setFetchSchedule(Google_Service_ShoppingContent_DatafeedFetchSchedule $fetchSchedule) + { + $this->fetchSchedule = $fetchSchedule; + } + + public function getFetchSchedule() + { + return $this->fetchSchedule; + } + + public function setFileName($fileName) + { + $this->fileName = $fileName; + } + + public function getFileName() + { + return $this->fileName; + } + + public function setFormat(Google_Service_ShoppingContent_DatafeedFormat $format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIntendedDestinations($intendedDestinations) + { + $this->intendedDestinations = $intendedDestinations; + } + + public function getIntendedDestinations() + { + return $this->intendedDestinations; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setTargetCountry($targetCountry) + { + $this->targetCountry = $targetCountry; + } + + public function getTargetCountry() + { + return $this->targetCountry; + } +} + +class Google_Service_ShoppingContent_DatafeedFetchSchedule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $dayOfMonth; + public $fetchUrl; + public $hour; + public $password; + public $timeZone; + public $username; + public $weekday; + + public function setDayOfMonth($dayOfMonth) + { + $this->dayOfMonth = $dayOfMonth; + } + + public function getDayOfMonth() + { + return $this->dayOfMonth; + } + + public function setFetchUrl($fetchUrl) + { + $this->fetchUrl = $fetchUrl; + } + + public function getFetchUrl() + { + return $this->fetchUrl; + } + + public function setHour($hour) + { + $this->hour = $hour; + } + + public function getHour() + { + return $this->hour; + } + + public function setPassword($password) + { + $this->password = $password; + } + + public function getPassword() + { + return $this->password; + } + + public function setTimeZone($timeZone) + { + $this->timeZone = $timeZone; + } + + public function getTimeZone() + { + return $this->timeZone; + } + + public function setUsername($username) + { + $this->username = $username; + } + + public function getUsername() + { + return $this->username; + } + + public function setWeekday($weekday) + { + $this->weekday = $weekday; + } + + public function getWeekday() + { + return $this->weekday; + } +} + +class Google_Service_ShoppingContent_DatafeedFormat extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnDelimiter; + public $fileEncoding; + public $quotingMode; + + public function setColumnDelimiter($columnDelimiter) + { + $this->columnDelimiter = $columnDelimiter; + } + + public function getColumnDelimiter() + { + return $this->columnDelimiter; + } + + public function setFileEncoding($fileEncoding) + { + $this->fileEncoding = $fileEncoding; + } + + public function getFileEncoding() + { + return $this->fileEncoding; + } + + public function setQuotingMode($quotingMode) + { + $this->quotingMode = $quotingMode; + } + + public function getQuotingMode() + { + return $this->quotingMode; + } +} + +class Google_Service_ShoppingContent_DatafeedStatus extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $datafeedId; + protected $errorsType = 'Google_Service_ShoppingContent_DatafeedStatusError'; + protected $errorsDataType = 'array'; + public $itemsTotal; + public $itemsValid; + public $kind; + public $processingStatus; + protected $warningsType = 'Google_Service_ShoppingContent_DatafeedStatusError'; + protected $warningsDataType = 'array'; + + public function setDatafeedId($datafeedId) + { + $this->datafeedId = $datafeedId; + } + + public function getDatafeedId() + { + return $this->datafeedId; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setItemsTotal($itemsTotal) + { + $this->itemsTotal = $itemsTotal; + } + + public function getItemsTotal() + { + return $this->itemsTotal; + } + + public function setItemsValid($itemsValid) + { + $this->itemsValid = $itemsValid; + } + + public function getItemsValid() + { + return $this->itemsValid; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_ShoppingContent_DatafeedStatusError extends Google_Collection +{ + protected $collection_key = 'examples'; + protected $internal_gapi_mappings = array( + ); + public $code; + public $count; + protected $examplesType = 'Google_Service_ShoppingContent_DatafeedStatusExample'; + protected $examplesDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setExamples($examples) + { + $this->examples = $examples; + } + + public function getExamples() + { + return $this->examples; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_ShoppingContent_DatafeedStatusExample extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $itemId; + public $lineNumber; + public $value; + + public function setItemId($itemId) + { + $this->itemId = $itemId; + } + + public function getItemId() + { + return $this->itemId; + } + + public function setLineNumber($lineNumber) + { + $this->lineNumber = $lineNumber; + } + + public function getLineNumber() + { + return $this->lineNumber; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_ShoppingContent_DatafeedsCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_DatafeedsCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_DatafeedsCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $datafeedType = 'Google_Service_ShoppingContent_Datafeed'; + protected $datafeedDataType = ''; + public $datafeedId; + public $merchantId; + public $method; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setDatafeed(Google_Service_ShoppingContent_Datafeed $datafeed) + { + $this->datafeed = $datafeed; + } + + public function getDatafeed() + { + return $this->datafeed; + } + + public function setDatafeedId($datafeedId) + { + $this->datafeedId = $datafeedId; + } + + public function getDatafeedId() + { + return $this->datafeedId; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } +} + +class Google_Service_ShoppingContent_DatafeedsCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_DatafeedsCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_DatafeedsCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $datafeedType = 'Google_Service_ShoppingContent_Datafeed'; + protected $datafeedDataType = ''; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setDatafeed(Google_Service_ShoppingContent_Datafeed $datafeed) + { + $this->datafeed = $datafeed; + } + + public function getDatafeed() + { + return $this->datafeed; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_ShoppingContent_DatafeedsListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $resourcesType = 'Google_Service_ShoppingContent_Datafeed'; + protected $resourcesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_ShoppingContent_DatafeedstatusesCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_DatafeedstatusesCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_DatafeedstatusesCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + public $datafeedId; + public $merchantId; + public $method; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setDatafeedId($datafeedId) + { + $this->datafeedId = $datafeedId; + } + + public function getDatafeedId() + { + return $this->datafeedId; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } +} + +class Google_Service_ShoppingContent_DatafeedstatusesCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_DatafeedstatusesCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_DatafeedstatusesCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $datafeedStatusType = 'Google_Service_ShoppingContent_DatafeedStatus'; + protected $datafeedStatusDataType = ''; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setDatafeedStatus(Google_Service_ShoppingContent_DatafeedStatus $datafeedStatus) + { + $this->datafeedStatus = $datafeedStatus; + } + + public function getDatafeedStatus() + { + return $this->datafeedStatus; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } +} + +class Google_Service_ShoppingContent_DatafeedstatusesListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $kind; + protected $resourcesType = 'Google_Service_ShoppingContent_DatafeedStatus'; + protected $resourcesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_ShoppingContent_Error extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $domain; + public $message; + public $reason; + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_ShoppingContent_Errors extends Google_Collection +{ + protected $collection_key = 'errors'; + protected $internal_gapi_mappings = array( + ); + public $code; + protected $errorsType = 'Google_Service_ShoppingContent_Error'; + protected $errorsDataType = 'array'; + public $message; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setMessage($message) + { + $this->message = $message; + } + + public function getMessage() + { + return $this->message; + } +} + +class Google_Service_ShoppingContent_Inventory extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $availability; + public $kind; + protected $priceType = 'Google_Service_ShoppingContent_Price'; + protected $priceDataType = ''; + public $quantity; + protected $salePriceType = 'Google_Service_ShoppingContent_Price'; + protected $salePriceDataType = ''; + public $salePriceEffectiveDate; + + public function setAvailability($availability) + { + $this->availability = $availability; + } + + public function getAvailability() + { + return $this->availability; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPrice(Google_Service_ShoppingContent_Price $price) + { + $this->price = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setQuantity($quantity) + { + $this->quantity = $quantity; + } + + public function getQuantity() + { + return $this->quantity; + } + + public function setSalePrice(Google_Service_ShoppingContent_Price $salePrice) + { + $this->salePrice = $salePrice; + } + + public function getSalePrice() + { + return $this->salePrice; + } + + public function setSalePriceEffectiveDate($salePriceEffectiveDate) + { + $this->salePriceEffectiveDate = $salePriceEffectiveDate; + } + + public function getSalePriceEffectiveDate() + { + return $this->salePriceEffectiveDate; + } +} + +class Google_Service_ShoppingContent_InventoryCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_InventoryCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_InventoryCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $inventoryType = 'Google_Service_ShoppingContent_Inventory'; + protected $inventoryDataType = ''; + public $merchantId; + public $productId; + public $storeCode; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setInventory(Google_Service_ShoppingContent_Inventory $inventory) + { + $this->inventory = $inventory; + } + + public function getInventory() + { + return $this->inventory; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } + + public function setStoreCode($storeCode) + { + $this->storeCode = $storeCode; + } + + public function getStoreCode() + { + return $this->storeCode; + } +} + +class Google_Service_ShoppingContent_InventoryCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_InventoryCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_InventoryCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + public $kind; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_InventorySetRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $availability; + protected $priceType = 'Google_Service_ShoppingContent_Price'; + protected $priceDataType = ''; + public $quantity; + protected $salePriceType = 'Google_Service_ShoppingContent_Price'; + protected $salePriceDataType = ''; + public $salePriceEffectiveDate; + + public function setAvailability($availability) + { + $this->availability = $availability; + } + + public function getAvailability() + { + return $this->availability; + } + + public function setPrice(Google_Service_ShoppingContent_Price $price) + { + $this->price = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setQuantity($quantity) + { + $this->quantity = $quantity; + } + + public function getQuantity() + { + return $this->quantity; + } + + public function setSalePrice(Google_Service_ShoppingContent_Price $salePrice) + { + $this->salePrice = $salePrice; + } + + public function getSalePrice() + { + return $this->salePrice; + } + + public function setSalePriceEffectiveDate($salePriceEffectiveDate) + { + $this->salePriceEffectiveDate = $salePriceEffectiveDate; + } + + public function getSalePriceEffectiveDate() + { + return $this->salePriceEffectiveDate; + } +} + +class Google_Service_ShoppingContent_InventorySetResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_LoyaltyPoints extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $pointsValue; + public $ratio; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPointsValue($pointsValue) + { + $this->pointsValue = $pointsValue; + } + + public function getPointsValue() + { + return $this->pointsValue; + } + + public function setRatio($ratio) + { + $this->ratio = $ratio; + } + + public function getRatio() + { + return $this->ratio; + } +} + +class Google_Service_ShoppingContent_Price extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $currency; + public $value; + + public function setCurrency($currency) + { + $this->currency = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_ShoppingContent_Product extends Google_Collection +{ + protected $collection_key = 'warnings'; + protected $internal_gapi_mappings = array( + ); + public $additionalImageLinks; + public $adult; + public $adwordsGrouping; + public $adwordsLabels; + public $adwordsRedirect; + public $ageGroup; + public $availability; + public $availabilityDate; + public $brand; + public $channel; + public $color; + public $condition; + public $contentLanguage; + protected $customAttributesType = 'Google_Service_ShoppingContent_ProductCustomAttribute'; + protected $customAttributesDataType = 'array'; + protected $customGroupsType = 'Google_Service_ShoppingContent_ProductCustomGroup'; + protected $customGroupsDataType = 'array'; + public $customLabel0; + public $customLabel1; + public $customLabel2; + public $customLabel3; + public $customLabel4; + public $description; + protected $destinationsType = 'Google_Service_ShoppingContent_ProductDestination'; + protected $destinationsDataType = 'array'; + public $energyEfficiencyClass; + public $expirationDate; + public $gender; + public $googleProductCategory; + public $gtin; + public $id; + public $identifierExists; + public $imageLink; + protected $installmentType = 'Google_Service_ShoppingContent_ProductInstallment'; + protected $installmentDataType = ''; + public $isBundle; + public $itemGroupId; + public $kind; + public $link; + protected $loyaltyPointsType = 'Google_Service_ShoppingContent_LoyaltyPoints'; + protected $loyaltyPointsDataType = ''; + public $material; + public $mobileLink; + public $mpn; + public $multipack; + public $offerId; + public $onlineOnly; + public $pattern; + protected $priceType = 'Google_Service_ShoppingContent_Price'; + protected $priceDataType = ''; + public $productType; + protected $salePriceType = 'Google_Service_ShoppingContent_Price'; + protected $salePriceDataType = ''; + public $salePriceEffectiveDate; + protected $shippingType = 'Google_Service_ShoppingContent_ProductShipping'; + protected $shippingDataType = 'array'; + public $shippingLabel; + protected $shippingWeightType = 'Google_Service_ShoppingContent_ProductShippingWeight'; + protected $shippingWeightDataType = ''; + public $sizeSystem; + public $sizeType; + public $sizes; + public $targetCountry; + protected $taxesType = 'Google_Service_ShoppingContent_ProductTax'; + protected $taxesDataType = 'array'; + public $title; + protected $unitPricingBaseMeasureType = 'Google_Service_ShoppingContent_ProductUnitPricingBaseMeasure'; + protected $unitPricingBaseMeasureDataType = ''; + protected $unitPricingMeasureType = 'Google_Service_ShoppingContent_ProductUnitPricingMeasure'; + protected $unitPricingMeasureDataType = ''; + public $validatedDestinations; + protected $warningsType = 'Google_Service_ShoppingContent_Error'; + protected $warningsDataType = 'array'; + + public function setAdditionalImageLinks($additionalImageLinks) + { + $this->additionalImageLinks = $additionalImageLinks; + } + + public function getAdditionalImageLinks() + { + return $this->additionalImageLinks; + } + + public function setAdult($adult) + { + $this->adult = $adult; + } + + public function getAdult() + { + return $this->adult; + } + + public function setAdwordsGrouping($adwordsGrouping) + { + $this->adwordsGrouping = $adwordsGrouping; + } + + public function getAdwordsGrouping() + { + return $this->adwordsGrouping; + } + + public function setAdwordsLabels($adwordsLabels) + { + $this->adwordsLabels = $adwordsLabels; + } + + public function getAdwordsLabels() + { + return $this->adwordsLabels; + } + + public function setAdwordsRedirect($adwordsRedirect) + { + $this->adwordsRedirect = $adwordsRedirect; + } + + public function getAdwordsRedirect() + { + return $this->adwordsRedirect; + } + + public function setAgeGroup($ageGroup) + { + $this->ageGroup = $ageGroup; + } + + public function getAgeGroup() + { + return $this->ageGroup; + } + + public function setAvailability($availability) + { + $this->availability = $availability; + } + + public function getAvailability() + { + return $this->availability; + } + + public function setAvailabilityDate($availabilityDate) + { + $this->availabilityDate = $availabilityDate; + } + + public function getAvailabilityDate() + { + return $this->availabilityDate; + } + + public function setBrand($brand) + { + $this->brand = $brand; + } + + public function getBrand() + { + return $this->brand; + } + + public function setChannel($channel) + { + $this->channel = $channel; + } + + public function getChannel() + { + return $this->channel; + } + + public function setColor($color) + { + $this->color = $color; + } + + public function getColor() + { + return $this->color; + } + + public function setCondition($condition) + { + $this->condition = $condition; + } + + public function getCondition() + { + return $this->condition; + } + + public function setContentLanguage($contentLanguage) + { + $this->contentLanguage = $contentLanguage; + } + + public function getContentLanguage() + { + return $this->contentLanguage; + } + + public function setCustomAttributes($customAttributes) + { + $this->customAttributes = $customAttributes; + } + + public function getCustomAttributes() + { + return $this->customAttributes; + } + + public function setCustomGroups($customGroups) + { + $this->customGroups = $customGroups; + } + + public function getCustomGroups() + { + return $this->customGroups; + } + + public function setCustomLabel0($customLabel0) + { + $this->customLabel0 = $customLabel0; + } + + public function getCustomLabel0() + { + return $this->customLabel0; + } + + public function setCustomLabel1($customLabel1) + { + $this->customLabel1 = $customLabel1; + } + + public function getCustomLabel1() + { + return $this->customLabel1; + } + + public function setCustomLabel2($customLabel2) + { + $this->customLabel2 = $customLabel2; + } + + public function getCustomLabel2() + { + return $this->customLabel2; + } + + public function setCustomLabel3($customLabel3) + { + $this->customLabel3 = $customLabel3; + } + + public function getCustomLabel3() + { + return $this->customLabel3; + } + + public function setCustomLabel4($customLabel4) + { + $this->customLabel4 = $customLabel4; + } + + public function getCustomLabel4() + { + return $this->customLabel4; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDestinations($destinations) + { + $this->destinations = $destinations; + } + + public function getDestinations() + { + return $this->destinations; + } + + public function setEnergyEfficiencyClass($energyEfficiencyClass) + { + $this->energyEfficiencyClass = $energyEfficiencyClass; + } + + public function getEnergyEfficiencyClass() + { + return $this->energyEfficiencyClass; + } + + public function setExpirationDate($expirationDate) + { + $this->expirationDate = $expirationDate; + } + + public function getExpirationDate() + { + return $this->expirationDate; + } + + public function setGender($gender) + { + $this->gender = $gender; + } + + public function getGender() + { + return $this->gender; + } + + public function setGoogleProductCategory($googleProductCategory) + { + $this->googleProductCategory = $googleProductCategory; + } + + public function getGoogleProductCategory() + { + return $this->googleProductCategory; + } + + public function setGtin($gtin) + { + $this->gtin = $gtin; + } + + public function getGtin() + { + return $this->gtin; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIdentifierExists($identifierExists) + { + $this->identifierExists = $identifierExists; + } + + public function getIdentifierExists() + { + return $this->identifierExists; + } + + public function setImageLink($imageLink) + { + $this->imageLink = $imageLink; + } + + public function getImageLink() + { + return $this->imageLink; + } + + public function setInstallment(Google_Service_ShoppingContent_ProductInstallment $installment) + { + $this->installment = $installment; + } + + public function getInstallment() + { + return $this->installment; + } + + public function setIsBundle($isBundle) + { + $this->isBundle = $isBundle; + } + + public function getIsBundle() + { + return $this->isBundle; + } + + public function setItemGroupId($itemGroupId) + { + $this->itemGroupId = $itemGroupId; + } + + public function getItemGroupId() + { + return $this->itemGroupId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setLoyaltyPoints(Google_Service_ShoppingContent_LoyaltyPoints $loyaltyPoints) + { + $this->loyaltyPoints = $loyaltyPoints; + } + + public function getLoyaltyPoints() + { + return $this->loyaltyPoints; + } + + public function setMaterial($material) + { + $this->material = $material; + } + + public function getMaterial() + { + return $this->material; + } + + public function setMobileLink($mobileLink) + { + $this->mobileLink = $mobileLink; + } + + public function getMobileLink() + { + return $this->mobileLink; + } + + public function setMpn($mpn) + { + $this->mpn = $mpn; + } + + public function getMpn() + { + return $this->mpn; + } + + public function setMultipack($multipack) + { + $this->multipack = $multipack; + } + + public function getMultipack() + { + return $this->multipack; + } + + public function setOfferId($offerId) + { + $this->offerId = $offerId; + } + + public function getOfferId() + { + return $this->offerId; + } + + public function setOnlineOnly($onlineOnly) + { + $this->onlineOnly = $onlineOnly; + } + + public function getOnlineOnly() + { + return $this->onlineOnly; + } + + public function setPattern($pattern) + { + $this->pattern = $pattern; + } + + public function getPattern() + { + return $this->pattern; + } + + public function setPrice(Google_Service_ShoppingContent_Price $price) + { + $this->price = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setProductType($productType) + { + $this->productType = $productType; + } + + public function getProductType() + { + return $this->productType; + } + + public function setSalePrice(Google_Service_ShoppingContent_Price $salePrice) + { + $this->salePrice = $salePrice; + } + + public function getSalePrice() + { + return $this->salePrice; + } + + public function setSalePriceEffectiveDate($salePriceEffectiveDate) + { + $this->salePriceEffectiveDate = $salePriceEffectiveDate; + } + + public function getSalePriceEffectiveDate() + { + return $this->salePriceEffectiveDate; + } + + public function setShipping($shipping) + { + $this->shipping = $shipping; + } + + public function getShipping() + { + return $this->shipping; + } + + public function setShippingLabel($shippingLabel) + { + $this->shippingLabel = $shippingLabel; + } + + public function getShippingLabel() + { + return $this->shippingLabel; + } + + public function setShippingWeight(Google_Service_ShoppingContent_ProductShippingWeight $shippingWeight) + { + $this->shippingWeight = $shippingWeight; + } + + public function getShippingWeight() + { + return $this->shippingWeight; + } + + public function setSizeSystem($sizeSystem) + { + $this->sizeSystem = $sizeSystem; + } + + public function getSizeSystem() + { + return $this->sizeSystem; + } + + public function setSizeType($sizeType) + { + $this->sizeType = $sizeType; + } + + public function getSizeType() + { + return $this->sizeType; + } + + public function setSizes($sizes) + { + $this->sizes = $sizes; + } + + public function getSizes() + { + return $this->sizes; + } + + public function setTargetCountry($targetCountry) + { + $this->targetCountry = $targetCountry; + } + + public function getTargetCountry() + { + return $this->targetCountry; + } + + public function setTaxes($taxes) + { + $this->taxes = $taxes; + } + + public function getTaxes() + { + return $this->taxes; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUnitPricingBaseMeasure(Google_Service_ShoppingContent_ProductUnitPricingBaseMeasure $unitPricingBaseMeasure) + { + $this->unitPricingBaseMeasure = $unitPricingBaseMeasure; + } + + public function getUnitPricingBaseMeasure() + { + return $this->unitPricingBaseMeasure; + } + + public function setUnitPricingMeasure(Google_Service_ShoppingContent_ProductUnitPricingMeasure $unitPricingMeasure) + { + $this->unitPricingMeasure = $unitPricingMeasure; + } + + public function getUnitPricingMeasure() + { + return $this->unitPricingMeasure; + } + + public function setValidatedDestinations($validatedDestinations) + { + $this->validatedDestinations = $validatedDestinations; + } + + public function getValidatedDestinations() + { + return $this->validatedDestinations; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_ShoppingContent_ProductCustomAttribute extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $type; + public $unit; + public $value; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setUnit($unit) + { + $this->unit = $unit; + } + + public function getUnit() + { + return $this->unit; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_ShoppingContent_ProductCustomGroup extends Google_Collection +{ + protected $collection_key = 'attributes'; + protected $internal_gapi_mappings = array( + ); + protected $attributesType = 'Google_Service_ShoppingContent_ProductCustomAttribute'; + protected $attributesDataType = 'array'; + public $name; + + public function setAttributes($attributes) + { + $this->attributes = $attributes; + } + + public function getAttributes() + { + return $this->attributes; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_ShoppingContent_ProductDestination extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $destinationName; + public $intention; + + public function setDestinationName($destinationName) + { + $this->destinationName = $destinationName; + } + + public function getDestinationName() + { + return $this->destinationName; + } + + public function setIntention($intention) + { + $this->intention = $intention; + } + + public function getIntention() + { + return $this->intention; + } +} + +class Google_Service_ShoppingContent_ProductInstallment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $amountType = 'Google_Service_ShoppingContent_Price'; + protected $amountDataType = ''; + public $months; + + public function setAmount(Google_Service_ShoppingContent_Price $amount) + { + $this->amount = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setMonths($months) + { + $this->months = $months; + } + + public function getMonths() + { + return $this->months; + } +} + +class Google_Service_ShoppingContent_ProductShipping extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $country; + public $locationGroupName; + public $locationId; + public $postalCode; + protected $priceType = 'Google_Service_ShoppingContent_Price'; + protected $priceDataType = ''; + public $region; + public $service; + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setLocationGroupName($locationGroupName) + { + $this->locationGroupName = $locationGroupName; + } + + public function getLocationGroupName() + { + return $this->locationGroupName; + } + + public function setLocationId($locationId) + { + $this->locationId = $locationId; + } + + public function getLocationId() + { + return $this->locationId; + } + + public function setPostalCode($postalCode) + { + $this->postalCode = $postalCode; + } + + public function getPostalCode() + { + return $this->postalCode; + } + + public function setPrice(Google_Service_ShoppingContent_Price $price) + { + $this->price = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setService($service) + { + $this->service = $service; + } + + public function getService() + { + return $this->service; + } +} + +class Google_Service_ShoppingContent_ProductShippingWeight extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $unit; + public $value; + + public function setUnit($unit) + { + $this->unit = $unit; + } + + public function getUnit() + { + return $this->unit; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_ShoppingContent_ProductStatus extends Google_Collection +{ + protected $collection_key = 'destinationStatuses'; + protected $internal_gapi_mappings = array( + ); + protected $dataQualityIssuesType = 'Google_Service_ShoppingContent_ProductStatusDataQualityIssue'; + protected $dataQualityIssuesDataType = 'array'; + protected $destinationStatusesType = 'Google_Service_ShoppingContent_ProductStatusDestinationStatus'; + protected $destinationStatusesDataType = 'array'; + public $kind; + public $link; + public $productId; + public $title; + + public function setDataQualityIssues($dataQualityIssues) + { + $this->dataQualityIssues = $dataQualityIssues; + } + + public function getDataQualityIssues() + { + return $this->dataQualityIssues; + } + + public function setDestinationStatuses($destinationStatuses) + { + $this->destinationStatuses = $destinationStatuses; + } + + public function getDestinationStatuses() + { + return $this->destinationStatuses; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_ShoppingContent_ProductStatusDataQualityIssue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $detail; + public $fetchStatus; + public $id; + public $location; + public $timestamp; + public $valueOnLandingPage; + public $valueProvided; + + public function setDetail($detail) + { + $this->detail = $detail; + } + + public function getDetail() + { + return $this->detail; + } + + public function setFetchStatus($fetchStatus) + { + $this->fetchStatus = $fetchStatus; + } + + public function getFetchStatus() + { + return $this->fetchStatus; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } + + public function setValueOnLandingPage($valueOnLandingPage) + { + $this->valueOnLandingPage = $valueOnLandingPage; + } + + public function getValueOnLandingPage() + { + return $this->valueOnLandingPage; + } + + public function setValueProvided($valueProvided) + { + $this->valueProvided = $valueProvided; + } + + public function getValueProvided() + { + return $this->valueProvided; + } +} + +class Google_Service_ShoppingContent_ProductStatusDestinationStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $approvalStatus; + public $destination; + public $intention; + + public function setApprovalStatus($approvalStatus) + { + $this->approvalStatus = $approvalStatus; + } + + public function getApprovalStatus() + { + return $this->approvalStatus; + } + + public function setDestination($destination) + { + $this->destination = $destination; + } + + public function getDestination() + { + return $this->destination; + } + + public function setIntention($intention) + { + $this->intention = $intention; + } + + public function getIntention() + { + return $this->intention; + } +} + +class Google_Service_ShoppingContent_ProductTax extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $country; + public $locationId; + public $postalCode; + public $rate; + public $region; + public $taxShip; + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setLocationId($locationId) + { + $this->locationId = $locationId; + } + + public function getLocationId() + { + return $this->locationId; + } + + public function setPostalCode($postalCode) + { + $this->postalCode = $postalCode; + } + + public function getPostalCode() + { + return $this->postalCode; + } + + public function setRate($rate) + { + $this->rate = $rate; + } + + public function getRate() + { + return $this->rate; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setTaxShip($taxShip) + { + $this->taxShip = $taxShip; + } + + public function getTaxShip() + { + return $this->taxShip; + } +} + +class Google_Service_ShoppingContent_ProductUnitPricingBaseMeasure extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $unit; + public $value; + + public function setUnit($unit) + { + $this->unit = $unit; + } + + public function getUnit() + { + return $this->unit; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_ShoppingContent_ProductUnitPricingMeasure extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $unit; + public $value; + + public function setUnit($unit) + { + $this->unit = $unit; + } + + public function getUnit() + { + return $this->unit; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_ShoppingContent_ProductsCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_ProductsCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_ProductsCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + public $merchantId; + public $method; + protected $productType = 'Google_Service_ShoppingContent_Product'; + protected $productDataType = ''; + public $productId; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } + + public function setProduct(Google_Service_ShoppingContent_Product $product) + { + $this->product = $product; + } + + public function getProduct() + { + return $this->product; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } +} + +class Google_Service_ShoppingContent_ProductsCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_ProductsCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_ProductsCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + public $kind; + protected $productType = 'Google_Service_ShoppingContent_Product'; + protected $productDataType = ''; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProduct(Google_Service_ShoppingContent_Product $product) + { + $this->product = $product; + } + + public function getProduct() + { + return $this->product; + } +} + +class Google_Service_ShoppingContent_ProductsListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $resourcesType = 'Google_Service_ShoppingContent_Product'; + protected $resourcesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} + +class Google_Service_ShoppingContent_ProductstatusesCustomBatchRequest extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_ProductstatusesCustomBatchRequestEntry'; + protected $entriesDataType = 'array'; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } +} + +class Google_Service_ShoppingContent_ProductstatusesCustomBatchRequestEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + public $merchantId; + public $method; + public $productId; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setMerchantId($merchantId) + { + $this->merchantId = $merchantId; + } + + public function getMerchantId() + { + return $this->merchantId; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } +} + +class Google_Service_ShoppingContent_ProductstatusesCustomBatchResponse extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + protected $entriesType = 'Google_Service_ShoppingContent_ProductstatusesCustomBatchResponseEntry'; + protected $entriesDataType = 'array'; + public $kind; + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_ShoppingContent_ProductstatusesCustomBatchResponseEntry extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $batchId; + protected $errorsType = 'Google_Service_ShoppingContent_Errors'; + protected $errorsDataType = ''; + public $kind; + protected $productStatusType = 'Google_Service_ShoppingContent_ProductStatus'; + protected $productStatusDataType = ''; + + public function setBatchId($batchId) + { + $this->batchId = $batchId; + } + + public function getBatchId() + { + return $this->batchId; + } + + public function setErrors(Google_Service_ShoppingContent_Errors $errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProductStatus(Google_Service_ShoppingContent_ProductStatus $productStatus) + { + $this->productStatus = $productStatus; + } + + public function getProductStatus() + { + return $this->productStatus; + } +} + +class Google_Service_ShoppingContent_ProductstatusesListResponse extends Google_Collection +{ + protected $collection_key = 'resources'; + protected $internal_gapi_mappings = array( + ); + public $kind; + public $nextPageToken; + protected $resourcesType = 'Google_Service_ShoppingContent_ProductStatus'; + protected $resourcesDataType = 'array'; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setResources($resources) + { + $this->resources = $resources; + } + + public function getResources() + { + return $this->resources; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/SiteVerification.php b/vendor/google/apiclient/src/Google/Service/SiteVerification.php new file mode 100644 index 0000000..80f144b --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/SiteVerification.php @@ -0,0 +1,413 @@ + + * Lets you programatically verify ownership of websites or domains with Google. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_SiteVerification extends Google_Service +{ + /** Manage the list of sites and domains you control. */ + const SITEVERIFICATION = "https://www.googleapis.com/auth/siteverification"; + /** Manage your new site verifications with Google. */ + const SITEVERIFICATION_VERIFY_ONLY = "https://www.googleapis.com/auth/siteverification.verify_only"; + + public $webResource; + + + /** + * Constructs the internal representation of the SiteVerification service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'siteVerification/v1/'; + $this->version = 'v1'; + $this->serviceName = 'siteVerification'; + + $this->webResource = new Google_Service_SiteVerification_WebResource_Resource( + $this, + $this->serviceName, + 'webResource', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'webResource/{id}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'webResource/{id}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getToken' => array( + 'path' => 'token', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'insert' => array( + 'path' => 'webResource', + 'httpMethod' => 'POST', + 'parameters' => array( + 'verificationMethod' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'webResource', + 'httpMethod' => 'GET', + 'parameters' => array(), + ),'patch' => array( + 'path' => 'webResource/{id}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'webResource/{id}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'id' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "webResource" collection of methods. + * Typical usage is: + * + * $siteVerificationService = new Google_Service_SiteVerification(...); + * $webResource = $siteVerificationService->webResource; + * + */ +class Google_Service_SiteVerification_WebResource_Resource extends Google_Service_Resource +{ + + /** + * Relinquish ownership of a website or domain. (webResource.delete) + * + * @param string $id + * The id of a verified site or domain. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Get the most current data for a website or domain. (webResource.get) + * + * @param string $id + * The id of a verified site or domain. + * @param array $optParams Optional parameters. + * @return Google_Service_SiteVerification_SiteVerificationWebResourceResource + */ + public function get($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_SiteVerification_SiteVerificationWebResourceResource"); + } + /** + * Get a verification token for placing on a website or domain. + * (webResource.getToken) + * + * @param Google_SiteVerificationWebResourceGettokenRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SiteVerification_SiteVerificationWebResourceGettokenResponse + */ + public function getToken(Google_Service_SiteVerification_SiteVerificationWebResourceGettokenRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getToken', array($params), "Google_Service_SiteVerification_SiteVerificationWebResourceGettokenResponse"); + } + /** + * Attempt verification of a website or domain. (webResource.insert) + * + * @param string $verificationMethod + * The method to use for verifying a site or domain. + * @param Google_SiteVerificationWebResourceResource $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SiteVerification_SiteVerificationWebResourceResource + */ + public function insert($verificationMethod, Google_Service_SiteVerification_SiteVerificationWebResourceResource $postBody, $optParams = array()) + { + $params = array('verificationMethod' => $verificationMethod, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_SiteVerification_SiteVerificationWebResourceResource"); + } + /** + * Get the list of your verified websites and domains. + * (webResource.listWebResource) + * + * @param array $optParams Optional parameters. + * @return Google_Service_SiteVerification_SiteVerificationWebResourceListResponse + */ + public function listWebResource($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_SiteVerification_SiteVerificationWebResourceListResponse"); + } + /** + * Modify the list of owners for your website or domain. This method supports + * patch semantics. (webResource.patch) + * + * @param string $id + * The id of a verified site or domain. + * @param Google_SiteVerificationWebResourceResource $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SiteVerification_SiteVerificationWebResourceResource + */ + public function patch($id, Google_Service_SiteVerification_SiteVerificationWebResourceResource $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_SiteVerification_SiteVerificationWebResourceResource"); + } + /** + * Modify the list of owners for your website or domain. (webResource.update) + * + * @param string $id + * The id of a verified site or domain. + * @param Google_SiteVerificationWebResourceResource $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_SiteVerification_SiteVerificationWebResourceResource + */ + public function update($id, Google_Service_SiteVerification_SiteVerificationWebResourceResource $postBody, $optParams = array()) + { + $params = array('id' => $id, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_SiteVerification_SiteVerificationWebResourceResource"); + } +} + + + + +class Google_Service_SiteVerification_SiteVerificationWebResourceGettokenRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $siteType = 'Google_Service_SiteVerification_SiteVerificationWebResourceGettokenRequestSite'; + protected $siteDataType = ''; + public $verificationMethod; + + public function setSite(Google_Service_SiteVerification_SiteVerificationWebResourceGettokenRequestSite $site) + { + $this->site = $site; + } + + public function getSite() + { + return $this->site; + } + + public function setVerificationMethod($verificationMethod) + { + $this->verificationMethod = $verificationMethod; + } + + public function getVerificationMethod() + { + return $this->verificationMethod; + } +} + +class Google_Service_SiteVerification_SiteVerificationWebResourceGettokenRequestSite extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $identifier; + public $type; + + public function setIdentifier($identifier) + { + $this->identifier = $identifier; + } + + public function getIdentifier() + { + return $this->identifier; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_SiteVerification_SiteVerificationWebResourceGettokenResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $method; + public $token; + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } +} + +class Google_Service_SiteVerification_SiteVerificationWebResourceListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_SiteVerification_SiteVerificationWebResourceResource'; + protected $itemsDataType = 'array'; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } +} + +class Google_Service_SiteVerification_SiteVerificationWebResourceResource extends Google_Collection +{ + protected $collection_key = 'owners'; + protected $internal_gapi_mappings = array( + ); + public $id; + public $owners; + protected $siteType = 'Google_Service_SiteVerification_SiteVerificationWebResourceResourceSite'; + protected $siteDataType = ''; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setOwners($owners) + { + $this->owners = $owners; + } + + public function getOwners() + { + return $this->owners; + } + + public function setSite(Google_Service_SiteVerification_SiteVerificationWebResourceResourceSite $site) + { + $this->site = $site; + } + + public function getSite() + { + return $this->site; + } +} + +class Google_Service_SiteVerification_SiteVerificationWebResourceResourceSite extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $identifier; + public $type; + + public function setIdentifier($identifier) + { + $this->identifier = $identifier; + } + + public function getIdentifier() + { + return $this->identifier; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Spectrum.php b/vendor/google/apiclient/src/Google/Service/Spectrum.php new file mode 100644 index 0000000..96233f8 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Spectrum.php @@ -0,0 +1,1953 @@ + + * API for spectrum-management functions. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Spectrum extends Google_Service +{ + + + public $paws; + + + /** + * Constructs the internal representation of the Spectrum service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'spectrum/v1explorer/paws/'; + $this->version = 'v1explorer'; + $this->serviceName = 'spectrum'; + + $this->paws = new Google_Service_Spectrum_Paws_Resource( + $this, + $this->serviceName, + 'paws', + array( + 'methods' => array( + 'getSpectrum' => array( + 'path' => 'getSpectrum', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'getSpectrumBatch' => array( + 'path' => 'getSpectrumBatch', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'init' => array( + 'path' => 'init', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'notifySpectrumUse' => array( + 'path' => 'notifySpectrumUse', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'register' => array( + 'path' => 'register', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'verifyDevice' => array( + 'path' => 'verifyDevice', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + } +} + + +/** + * The "paws" collection of methods. + * Typical usage is: + * + * $spectrumService = new Google_Service_Spectrum(...); + * $paws = $spectrumService->paws; + * + */ +class Google_Service_Spectrum_Paws_Resource extends Google_Service_Resource +{ + + /** + * Requests information about the available spectrum for a device at a location. + * Requests from a fixed-mode device must include owner information so the + * device can be registered with the database. (paws.getSpectrum) + * + * @param Google_PawsGetSpectrumRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Spectrum_PawsGetSpectrumResponse + */ + public function getSpectrum(Google_Service_Spectrum_PawsGetSpectrumRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getSpectrum', array($params), "Google_Service_Spectrum_PawsGetSpectrumResponse"); + } + /** + * The Google Spectrum Database does not support batch requests, so this method + * always yields an UNIMPLEMENTED error. (paws.getSpectrumBatch) + * + * @param Google_PawsGetSpectrumBatchRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Spectrum_PawsGetSpectrumBatchResponse + */ + public function getSpectrumBatch(Google_Service_Spectrum_PawsGetSpectrumBatchRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('getSpectrumBatch', array($params), "Google_Service_Spectrum_PawsGetSpectrumBatchResponse"); + } + /** + * Initializes the connection between a white space device and the database. + * (paws.init) + * + * @param Google_PawsInitRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Spectrum_PawsInitResponse + */ + public function init(Google_Service_Spectrum_PawsInitRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('init', array($params), "Google_Service_Spectrum_PawsInitResponse"); + } + /** + * Notifies the database that the device has selected certain frequency ranges + * for transmission. Only to be invoked when required by the regulator. The + * Google Spectrum Database does not operate in domains that require + * notification, so this always yields an UNIMPLEMENTED error. + * (paws.notifySpectrumUse) + * + * @param Google_PawsNotifySpectrumUseRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Spectrum_PawsNotifySpectrumUseResponse + */ + public function notifySpectrumUse(Google_Service_Spectrum_PawsNotifySpectrumUseRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('notifySpectrumUse', array($params), "Google_Service_Spectrum_PawsNotifySpectrumUseResponse"); + } + /** + * The Google Spectrum Database implements registration in the getSpectrum + * method. As such this always returns an UNIMPLEMENTED error. (paws.register) + * + * @param Google_PawsRegisterRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Spectrum_PawsRegisterResponse + */ + public function register(Google_Service_Spectrum_PawsRegisterRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('register', array($params), "Google_Service_Spectrum_PawsRegisterResponse"); + } + /** + * Validates a device for white space use in accordance with regulatory rules. + * The Google Spectrum Database does not support master/slave configurations, so + * this always yields an UNIMPLEMENTED error. (paws.verifyDevice) + * + * @param Google_PawsVerifyDeviceRequest $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Spectrum_PawsVerifyDeviceResponse + */ + public function verifyDevice(Google_Service_Spectrum_PawsVerifyDeviceRequest $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('verifyDevice', array($params), "Google_Service_Spectrum_PawsVerifyDeviceResponse"); + } +} + + + + +class Google_Service_Spectrum_AntennaCharacteristics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $heightType; + public $heightUncertainty; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setHeightType($heightType) + { + $this->heightType = $heightType; + } + + public function getHeightType() + { + return $this->heightType; + } + + public function setHeightUncertainty($heightUncertainty) + { + $this->heightUncertainty = $heightUncertainty; + } + + public function getHeightUncertainty() + { + return $this->heightUncertainty; + } +} + +class Google_Service_Spectrum_DatabaseSpec extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $name; + public $uri; + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setUri($uri) + { + $this->uri = $uri; + } + + public function getUri() + { + return $this->uri; + } +} + +class Google_Service_Spectrum_DbUpdateSpec extends Google_Collection +{ + protected $collection_key = 'databases'; + protected $internal_gapi_mappings = array( + ); + protected $databasesType = 'Google_Service_Spectrum_DatabaseSpec'; + protected $databasesDataType = 'array'; + + public function setDatabases($databases) + { + $this->databases = $databases; + } + + public function getDatabases() + { + return $this->databases; + } +} + +class Google_Service_Spectrum_DeviceCapabilities extends Google_Collection +{ + protected $collection_key = 'frequencyRanges'; + protected $internal_gapi_mappings = array( + ); + protected $frequencyRangesType = 'Google_Service_Spectrum_FrequencyRange'; + protected $frequencyRangesDataType = 'array'; + + public function setFrequencyRanges($frequencyRanges) + { + $this->frequencyRanges = $frequencyRanges; + } + + public function getFrequencyRanges() + { + return $this->frequencyRanges; + } +} + +class Google_Service_Spectrum_DeviceDescriptor extends Google_Collection +{ + protected $collection_key = 'rulesetIds'; + protected $internal_gapi_mappings = array( + ); + public $etsiEnDeviceCategory; + public $etsiEnDeviceEmissionsClass; + public $etsiEnDeviceType; + public $etsiEnTechnologyId; + public $fccId; + public $fccTvbdDeviceType; + public $manufacturerId; + public $modelId; + public $rulesetIds; + public $serialNumber; + + public function setEtsiEnDeviceCategory($etsiEnDeviceCategory) + { + $this->etsiEnDeviceCategory = $etsiEnDeviceCategory; + } + + public function getEtsiEnDeviceCategory() + { + return $this->etsiEnDeviceCategory; + } + + public function setEtsiEnDeviceEmissionsClass($etsiEnDeviceEmissionsClass) + { + $this->etsiEnDeviceEmissionsClass = $etsiEnDeviceEmissionsClass; + } + + public function getEtsiEnDeviceEmissionsClass() + { + return $this->etsiEnDeviceEmissionsClass; + } + + public function setEtsiEnDeviceType($etsiEnDeviceType) + { + $this->etsiEnDeviceType = $etsiEnDeviceType; + } + + public function getEtsiEnDeviceType() + { + return $this->etsiEnDeviceType; + } + + public function setEtsiEnTechnologyId($etsiEnTechnologyId) + { + $this->etsiEnTechnologyId = $etsiEnTechnologyId; + } + + public function getEtsiEnTechnologyId() + { + return $this->etsiEnTechnologyId; + } + + public function setFccId($fccId) + { + $this->fccId = $fccId; + } + + public function getFccId() + { + return $this->fccId; + } + + public function setFccTvbdDeviceType($fccTvbdDeviceType) + { + $this->fccTvbdDeviceType = $fccTvbdDeviceType; + } + + public function getFccTvbdDeviceType() + { + return $this->fccTvbdDeviceType; + } + + public function setManufacturerId($manufacturerId) + { + $this->manufacturerId = $manufacturerId; + } + + public function getManufacturerId() + { + return $this->manufacturerId; + } + + public function setModelId($modelId) + { + $this->modelId = $modelId; + } + + public function getModelId() + { + return $this->modelId; + } + + public function setRulesetIds($rulesetIds) + { + $this->rulesetIds = $rulesetIds; + } + + public function getRulesetIds() + { + return $this->rulesetIds; + } + + public function setSerialNumber($serialNumber) + { + $this->serialNumber = $serialNumber; + } + + public function getSerialNumber() + { + return $this->serialNumber; + } +} + +class Google_Service_Spectrum_DeviceOwner extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $operatorType = 'Google_Service_Spectrum_Vcard'; + protected $operatorDataType = ''; + protected $ownerType = 'Google_Service_Spectrum_Vcard'; + protected $ownerDataType = ''; + + public function setOperator(Google_Service_Spectrum_Vcard $operator) + { + $this->operator = $operator; + } + + public function getOperator() + { + return $this->operator; + } + + public function setOwner(Google_Service_Spectrum_Vcard $owner) + { + $this->owner = $owner; + } + + public function getOwner() + { + return $this->owner; + } +} + +class Google_Service_Spectrum_DeviceValidity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + public $isValid; + public $reason; + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setIsValid($isValid) + { + $this->isValid = $isValid; + } + + public function getIsValid() + { + return $this->isValid; + } + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } +} + +class Google_Service_Spectrum_EventTime extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $startTime; + public $stopTime; + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setStopTime($stopTime) + { + $this->stopTime = $stopTime; + } + + public function getStopTime() + { + return $this->stopTime; + } +} + +class Google_Service_Spectrum_FrequencyRange extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $maxPowerDBm; + public $startHz; + public $stopHz; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setMaxPowerDBm($maxPowerDBm) + { + $this->maxPowerDBm = $maxPowerDBm; + } + + public function getMaxPowerDBm() + { + return $this->maxPowerDBm; + } + + public function setStartHz($startHz) + { + $this->startHz = $startHz; + } + + public function getStartHz() + { + return $this->startHz; + } + + public function setStopHz($stopHz) + { + $this->stopHz = $stopHz; + } + + public function getStopHz() + { + return $this->stopHz; + } +} + +class Google_Service_Spectrum_GeoLocation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $confidence; + protected $pointType = 'Google_Service_Spectrum_GeoLocationEllipse'; + protected $pointDataType = ''; + protected $regionType = 'Google_Service_Spectrum_GeoLocationPolygon'; + protected $regionDataType = ''; + + public function setConfidence($confidence) + { + $this->confidence = $confidence; + } + + public function getConfidence() + { + return $this->confidence; + } + + public function setPoint(Google_Service_Spectrum_GeoLocationEllipse $point) + { + $this->point = $point; + } + + public function getPoint() + { + return $this->point; + } + + public function setRegion(Google_Service_Spectrum_GeoLocationPolygon $region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } +} + +class Google_Service_Spectrum_GeoLocationEllipse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $centerType = 'Google_Service_Spectrum_GeoLocationPoint'; + protected $centerDataType = ''; + public $orientation; + public $semiMajorAxis; + public $semiMinorAxis; + + public function setCenter(Google_Service_Spectrum_GeoLocationPoint $center) + { + $this->center = $center; + } + + public function getCenter() + { + return $this->center; + } + + public function setOrientation($orientation) + { + $this->orientation = $orientation; + } + + public function getOrientation() + { + return $this->orientation; + } + + public function setSemiMajorAxis($semiMajorAxis) + { + $this->semiMajorAxis = $semiMajorAxis; + } + + public function getSemiMajorAxis() + { + return $this->semiMajorAxis; + } + + public function setSemiMinorAxis($semiMinorAxis) + { + $this->semiMinorAxis = $semiMinorAxis; + } + + public function getSemiMinorAxis() + { + return $this->semiMinorAxis; + } +} + +class Google_Service_Spectrum_GeoLocationPoint extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $latitude; + public $longitude; + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Spectrum_GeoLocationPolygon extends Google_Collection +{ + protected $collection_key = 'exterior'; + protected $internal_gapi_mappings = array( + ); + protected $exteriorType = 'Google_Service_Spectrum_GeoLocationPoint'; + protected $exteriorDataType = 'array'; + + public function setExterior($exterior) + { + $this->exterior = $exterior; + } + + public function getExterior() + { + return $this->exterior; + } +} + +class Google_Service_Spectrum_GeoSpectrumSchedule extends Google_Collection +{ + protected $collection_key = 'spectrumSchedules'; + protected $internal_gapi_mappings = array( + ); + protected $locationType = 'Google_Service_Spectrum_GeoLocation'; + protected $locationDataType = ''; + protected $spectrumSchedulesType = 'Google_Service_Spectrum_SpectrumSchedule'; + protected $spectrumSchedulesDataType = 'array'; + + public function setLocation(Google_Service_Spectrum_GeoLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setSpectrumSchedules($spectrumSchedules) + { + $this->spectrumSchedules = $spectrumSchedules; + } + + public function getSpectrumSchedules() + { + return $this->spectrumSchedules; + } +} + +class Google_Service_Spectrum_PawsGetSpectrumBatchRequest extends Google_Collection +{ + protected $collection_key = 'locations'; + protected $internal_gapi_mappings = array( + ); + protected $antennaType = 'Google_Service_Spectrum_AntennaCharacteristics'; + protected $antennaDataType = ''; + protected $capabilitiesType = 'Google_Service_Spectrum_DeviceCapabilities'; + protected $capabilitiesDataType = ''; + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + protected $locationsType = 'Google_Service_Spectrum_GeoLocation'; + protected $locationsDataType = 'array'; + protected $masterDeviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $masterDeviceDescDataType = ''; + protected $ownerType = 'Google_Service_Spectrum_DeviceOwner'; + protected $ownerDataType = ''; + public $requestType; + public $type; + public $version; + + public function setAntenna(Google_Service_Spectrum_AntennaCharacteristics $antenna) + { + $this->antenna = $antenna; + } + + public function getAntenna() + { + return $this->antenna; + } + + public function setCapabilities(Google_Service_Spectrum_DeviceCapabilities $capabilities) + { + $this->capabilities = $capabilities; + } + + public function getCapabilities() + { + return $this->capabilities; + } + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setLocations($locations) + { + $this->locations = $locations; + } + + public function getLocations() + { + return $this->locations; + } + + public function setMasterDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $masterDeviceDesc) + { + $this->masterDeviceDesc = $masterDeviceDesc; + } + + public function getMasterDeviceDesc() + { + return $this->masterDeviceDesc; + } + + public function setOwner(Google_Service_Spectrum_DeviceOwner $owner) + { + $this->owner = $owner; + } + + public function getOwner() + { + return $this->owner; + } + + public function setRequestType($requestType) + { + $this->requestType = $requestType; + } + + public function getRequestType() + { + return $this->requestType; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsGetSpectrumBatchResponse extends Google_Collection +{ + protected $collection_key = 'geoSpectrumSchedules'; + protected $internal_gapi_mappings = array( + ); + protected $databaseChangeType = 'Google_Service_Spectrum_DbUpdateSpec'; + protected $databaseChangeDataType = ''; + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + protected $geoSpectrumSchedulesType = 'Google_Service_Spectrum_GeoSpectrumSchedule'; + protected $geoSpectrumSchedulesDataType = 'array'; + public $kind; + public $maxContiguousBwHz; + public $maxTotalBwHz; + public $needsSpectrumReport; + protected $rulesetInfoType = 'Google_Service_Spectrum_RulesetInfo'; + protected $rulesetInfoDataType = ''; + public $timestamp; + public $type; + public $version; + + public function setDatabaseChange(Google_Service_Spectrum_DbUpdateSpec $databaseChange) + { + $this->databaseChange = $databaseChange; + } + + public function getDatabaseChange() + { + return $this->databaseChange; + } + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setGeoSpectrumSchedules($geoSpectrumSchedules) + { + $this->geoSpectrumSchedules = $geoSpectrumSchedules; + } + + public function getGeoSpectrumSchedules() + { + return $this->geoSpectrumSchedules; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxContiguousBwHz($maxContiguousBwHz) + { + $this->maxContiguousBwHz = $maxContiguousBwHz; + } + + public function getMaxContiguousBwHz() + { + return $this->maxContiguousBwHz; + } + + public function setMaxTotalBwHz($maxTotalBwHz) + { + $this->maxTotalBwHz = $maxTotalBwHz; + } + + public function getMaxTotalBwHz() + { + return $this->maxTotalBwHz; + } + + public function setNeedsSpectrumReport($needsSpectrumReport) + { + $this->needsSpectrumReport = $needsSpectrumReport; + } + + public function getNeedsSpectrumReport() + { + return $this->needsSpectrumReport; + } + + public function setRulesetInfo(Google_Service_Spectrum_RulesetInfo $rulesetInfo) + { + $this->rulesetInfo = $rulesetInfo; + } + + public function getRulesetInfo() + { + return $this->rulesetInfo; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsGetSpectrumRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $antennaType = 'Google_Service_Spectrum_AntennaCharacteristics'; + protected $antennaDataType = ''; + protected $capabilitiesType = 'Google_Service_Spectrum_DeviceCapabilities'; + protected $capabilitiesDataType = ''; + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + protected $locationType = 'Google_Service_Spectrum_GeoLocation'; + protected $locationDataType = ''; + protected $masterDeviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $masterDeviceDescDataType = ''; + protected $ownerType = 'Google_Service_Spectrum_DeviceOwner'; + protected $ownerDataType = ''; + public $requestType; + public $type; + public $version; + + public function setAntenna(Google_Service_Spectrum_AntennaCharacteristics $antenna) + { + $this->antenna = $antenna; + } + + public function getAntenna() + { + return $this->antenna; + } + + public function setCapabilities(Google_Service_Spectrum_DeviceCapabilities $capabilities) + { + $this->capabilities = $capabilities; + } + + public function getCapabilities() + { + return $this->capabilities; + } + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setLocation(Google_Service_Spectrum_GeoLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMasterDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $masterDeviceDesc) + { + $this->masterDeviceDesc = $masterDeviceDesc; + } + + public function getMasterDeviceDesc() + { + return $this->masterDeviceDesc; + } + + public function setOwner(Google_Service_Spectrum_DeviceOwner $owner) + { + $this->owner = $owner; + } + + public function getOwner() + { + return $this->owner; + } + + public function setRequestType($requestType) + { + $this->requestType = $requestType; + } + + public function getRequestType() + { + return $this->requestType; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsGetSpectrumResponse extends Google_Collection +{ + protected $collection_key = 'spectrumSchedules'; + protected $internal_gapi_mappings = array( + ); + protected $databaseChangeType = 'Google_Service_Spectrum_DbUpdateSpec'; + protected $databaseChangeDataType = ''; + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + public $kind; + public $maxContiguousBwHz; + public $maxTotalBwHz; + public $needsSpectrumReport; + protected $rulesetInfoType = 'Google_Service_Spectrum_RulesetInfo'; + protected $rulesetInfoDataType = ''; + protected $spectrumSchedulesType = 'Google_Service_Spectrum_SpectrumSchedule'; + protected $spectrumSchedulesDataType = 'array'; + public $timestamp; + public $type; + public $version; + + public function setDatabaseChange(Google_Service_Spectrum_DbUpdateSpec $databaseChange) + { + $this->databaseChange = $databaseChange; + } + + public function getDatabaseChange() + { + return $this->databaseChange; + } + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxContiguousBwHz($maxContiguousBwHz) + { + $this->maxContiguousBwHz = $maxContiguousBwHz; + } + + public function getMaxContiguousBwHz() + { + return $this->maxContiguousBwHz; + } + + public function setMaxTotalBwHz($maxTotalBwHz) + { + $this->maxTotalBwHz = $maxTotalBwHz; + } + + public function getMaxTotalBwHz() + { + return $this->maxTotalBwHz; + } + + public function setNeedsSpectrumReport($needsSpectrumReport) + { + $this->needsSpectrumReport = $needsSpectrumReport; + } + + public function getNeedsSpectrumReport() + { + return $this->needsSpectrumReport; + } + + public function setRulesetInfo(Google_Service_Spectrum_RulesetInfo $rulesetInfo) + { + $this->rulesetInfo = $rulesetInfo; + } + + public function getRulesetInfo() + { + return $this->rulesetInfo; + } + + public function setSpectrumSchedules($spectrumSchedules) + { + $this->spectrumSchedules = $spectrumSchedules; + } + + public function getSpectrumSchedules() + { + return $this->spectrumSchedules; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsInitRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + protected $locationType = 'Google_Service_Spectrum_GeoLocation'; + protected $locationDataType = ''; + public $type; + public $version; + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setLocation(Google_Service_Spectrum_GeoLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsInitResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $databaseChangeType = 'Google_Service_Spectrum_DbUpdateSpec'; + protected $databaseChangeDataType = ''; + public $kind; + protected $rulesetInfoType = 'Google_Service_Spectrum_RulesetInfo'; + protected $rulesetInfoDataType = ''; + public $type; + public $version; + + public function setDatabaseChange(Google_Service_Spectrum_DbUpdateSpec $databaseChange) + { + $this->databaseChange = $databaseChange; + } + + public function getDatabaseChange() + { + return $this->databaseChange; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRulesetInfo(Google_Service_Spectrum_RulesetInfo $rulesetInfo) + { + $this->rulesetInfo = $rulesetInfo; + } + + public function getRulesetInfo() + { + return $this->rulesetInfo; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsNotifySpectrumUseRequest extends Google_Collection +{ + protected $collection_key = 'spectra'; + protected $internal_gapi_mappings = array( + ); + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + protected $locationType = 'Google_Service_Spectrum_GeoLocation'; + protected $locationDataType = ''; + protected $spectraType = 'Google_Service_Spectrum_SpectrumMessage'; + protected $spectraDataType = 'array'; + public $type; + public $version; + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setLocation(Google_Service_Spectrum_GeoLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setSpectra($spectra) + { + $this->spectra = $spectra; + } + + public function getSpectra() + { + return $this->spectra; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsNotifySpectrumUseResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $kind; + public $type; + public $version; + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsRegisterRequest extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $antennaType = 'Google_Service_Spectrum_AntennaCharacteristics'; + protected $antennaDataType = ''; + protected $deviceDescType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescDataType = ''; + protected $deviceOwnerType = 'Google_Service_Spectrum_DeviceOwner'; + protected $deviceOwnerDataType = ''; + protected $locationType = 'Google_Service_Spectrum_GeoLocation'; + protected $locationDataType = ''; + public $type; + public $version; + + public function setAntenna(Google_Service_Spectrum_AntennaCharacteristics $antenna) + { + $this->antenna = $antenna; + } + + public function getAntenna() + { + return $this->antenna; + } + + public function setDeviceDesc(Google_Service_Spectrum_DeviceDescriptor $deviceDesc) + { + $this->deviceDesc = $deviceDesc; + } + + public function getDeviceDesc() + { + return $this->deviceDesc; + } + + public function setDeviceOwner(Google_Service_Spectrum_DeviceOwner $deviceOwner) + { + $this->deviceOwner = $deviceOwner; + } + + public function getDeviceOwner() + { + return $this->deviceOwner; + } + + public function setLocation(Google_Service_Spectrum_GeoLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsRegisterResponse extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $databaseChangeType = 'Google_Service_Spectrum_DbUpdateSpec'; + protected $databaseChangeDataType = ''; + public $kind; + public $type; + public $version; + + public function setDatabaseChange(Google_Service_Spectrum_DbUpdateSpec $databaseChange) + { + $this->databaseChange = $databaseChange; + } + + public function getDatabaseChange() + { + return $this->databaseChange; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsVerifyDeviceRequest extends Google_Collection +{ + protected $collection_key = 'deviceDescs'; + protected $internal_gapi_mappings = array( + ); + protected $deviceDescsType = 'Google_Service_Spectrum_DeviceDescriptor'; + protected $deviceDescsDataType = 'array'; + public $type; + public $version; + + public function setDeviceDescs($deviceDescs) + { + $this->deviceDescs = $deviceDescs; + } + + public function getDeviceDescs() + { + return $this->deviceDescs; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_PawsVerifyDeviceResponse extends Google_Collection +{ + protected $collection_key = 'deviceValidities'; + protected $internal_gapi_mappings = array( + ); + protected $databaseChangeType = 'Google_Service_Spectrum_DbUpdateSpec'; + protected $databaseChangeDataType = ''; + protected $deviceValiditiesType = 'Google_Service_Spectrum_DeviceValidity'; + protected $deviceValiditiesDataType = 'array'; + public $kind; + public $type; + public $version; + + public function setDatabaseChange(Google_Service_Spectrum_DbUpdateSpec $databaseChange) + { + $this->databaseChange = $databaseChange; + } + + public function getDatabaseChange() + { + return $this->databaseChange; + } + + public function setDeviceValidities($deviceValidities) + { + $this->deviceValidities = $deviceValidities; + } + + public function getDeviceValidities() + { + return $this->deviceValidities; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Spectrum_RulesetInfo extends Google_Collection +{ + protected $collection_key = 'rulesetIds'; + protected $internal_gapi_mappings = array( + ); + public $authority; + public $maxLocationChange; + public $maxPollingSecs; + public $rulesetIds; + + public function setAuthority($authority) + { + $this->authority = $authority; + } + + public function getAuthority() + { + return $this->authority; + } + + public function setMaxLocationChange($maxLocationChange) + { + $this->maxLocationChange = $maxLocationChange; + } + + public function getMaxLocationChange() + { + return $this->maxLocationChange; + } + + public function setMaxPollingSecs($maxPollingSecs) + { + $this->maxPollingSecs = $maxPollingSecs; + } + + public function getMaxPollingSecs() + { + return $this->maxPollingSecs; + } + + public function setRulesetIds($rulesetIds) + { + $this->rulesetIds = $rulesetIds; + } + + public function getRulesetIds() + { + return $this->rulesetIds; + } +} + +class Google_Service_Spectrum_SpectrumMessage extends Google_Collection +{ + protected $collection_key = 'frequencyRanges'; + protected $internal_gapi_mappings = array( + ); + public $bandwidth; + protected $frequencyRangesType = 'Google_Service_Spectrum_FrequencyRange'; + protected $frequencyRangesDataType = 'array'; + + public function setBandwidth($bandwidth) + { + $this->bandwidth = $bandwidth; + } + + public function getBandwidth() + { + return $this->bandwidth; + } + + public function setFrequencyRanges($frequencyRanges) + { + $this->frequencyRanges = $frequencyRanges; + } + + public function getFrequencyRanges() + { + return $this->frequencyRanges; + } +} + +class Google_Service_Spectrum_SpectrumSchedule extends Google_Collection +{ + protected $collection_key = 'spectra'; + protected $internal_gapi_mappings = array( + ); + protected $eventTimeType = 'Google_Service_Spectrum_EventTime'; + protected $eventTimeDataType = ''; + protected $spectraType = 'Google_Service_Spectrum_SpectrumMessage'; + protected $spectraDataType = 'array'; + + public function setEventTime(Google_Service_Spectrum_EventTime $eventTime) + { + $this->eventTime = $eventTime; + } + + public function getEventTime() + { + return $this->eventTime; + } + + public function setSpectra($spectra) + { + $this->spectra = $spectra; + } + + public function getSpectra() + { + return $this->spectra; + } +} + +class Google_Service_Spectrum_Vcard extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $adrType = 'Google_Service_Spectrum_VcardAddress'; + protected $adrDataType = ''; + protected $emailType = 'Google_Service_Spectrum_VcardTypedText'; + protected $emailDataType = ''; + public $fn; + protected $orgType = 'Google_Service_Spectrum_VcardTypedText'; + protected $orgDataType = ''; + protected $telType = 'Google_Service_Spectrum_VcardTelephone'; + protected $telDataType = ''; + + public function setAdr(Google_Service_Spectrum_VcardAddress $adr) + { + $this->adr = $adr; + } + + public function getAdr() + { + return $this->adr; + } + + public function setEmail(Google_Service_Spectrum_VcardTypedText $email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setFn($fn) + { + $this->fn = $fn; + } + + public function getFn() + { + return $this->fn; + } + + public function setOrg(Google_Service_Spectrum_VcardTypedText $org) + { + $this->org = $org; + } + + public function getOrg() + { + return $this->org; + } + + public function setTel(Google_Service_Spectrum_VcardTelephone $tel) + { + $this->tel = $tel; + } + + public function getTel() + { + return $this->tel; + } +} + +class Google_Service_Spectrum_VcardAddress extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $code; + public $country; + public $locality; + public $pobox; + public $region; + public $street; + + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setCountry($country) + { + $this->country = $country; + } + + public function getCountry() + { + return $this->country; + } + + public function setLocality($locality) + { + $this->locality = $locality; + } + + public function getLocality() + { + return $this->locality; + } + + public function setPobox($pobox) + { + $this->pobox = $pobox; + } + + public function getPobox() + { + return $this->pobox; + } + + public function setRegion($region) + { + $this->region = $region; + } + + public function getRegion() + { + return $this->region; + } + + public function setStreet($street) + { + $this->street = $street; + } + + public function getStreet() + { + return $this->street; + } +} + +class Google_Service_Spectrum_VcardTelephone extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $uri; + + public function setUri($uri) + { + $this->uri = $uri; + } + + public function getUri() + { + return $this->uri; + } +} + +class Google_Service_Spectrum_VcardTypedText extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $text; + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Storage.php b/vendor/google/apiclient/src/Google/Service/Storage.php new file mode 100644 index 0000000..269cc54 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Storage.php @@ -0,0 +1,3333 @@ + + * Lets you store and retrieve potentially-large, immutable data objects. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Storage extends Google_Service +{ + /** Manage your data and permissions in Google Cloud Storage. */ + const DEVSTORAGE_FULL_CONTROL = "https://www.googleapis.com/auth/devstorage.full_control"; + /** View your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_ONLY = "https://www.googleapis.com/auth/devstorage.read_only"; + /** Manage your data in Google Cloud Storage. */ + const DEVSTORAGE_READ_WRITE = "https://www.googleapis.com/auth/devstorage.read_write"; + + public $bucketAccessControls; + public $buckets; + public $channels; + public $defaultObjectAccessControls; + public $objectAccessControls; + public $objects; + + + /** + * Constructs the internal representation of the Storage service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'storage/v1/'; + $this->version = 'v1'; + $this->serviceName = 'storage'; + + $this->bucketAccessControls = new Google_Service_Storage_BucketAccessControls_Resource( + $this, + $this->serviceName, + 'bucketAccessControls', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'b/{bucket}/acl/{entity}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'b/{bucket}/acl/{entity}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'b/{bucket}/acl', + 'httpMethod' => 'POST', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'b/{bucket}/acl', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'b/{bucket}/acl/{entity}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'b/{bucket}/acl/{entity}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->buckets = new Google_Service_Storage_Buckets_Resource( + $this, + $this->serviceName, + 'buckets', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'b/{bucket}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'b/{bucket}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'b', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'predefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'b', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'b/{bucket}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'predefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'b/{bucket}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'predefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_Storage_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'stop' => array( + 'path' => 'channels/stop', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->defaultObjectAccessControls = new Google_Service_Storage_DefaultObjectAccessControls_Resource( + $this, + $this->serviceName, + 'defaultObjectAccessControls', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'b/{bucket}/defaultObjectAcl/{entity}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'b/{bucket}/defaultObjectAcl/{entity}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'b/{bucket}/defaultObjectAcl', + 'httpMethod' => 'POST', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'b/{bucket}/defaultObjectAcl', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'b/{bucket}/defaultObjectAcl/{entity}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'b/{bucket}/defaultObjectAcl/{entity}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->objectAccessControls = new Google_Service_Storage_ObjectAccessControls_Resource( + $this, + $this->serviceName, + 'objectAccessControls', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'b/{bucket}/o/{object}/acl/{entity}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'b/{bucket}/o/{object}/acl/{entity}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'b/{bucket}/o/{object}/acl', + 'httpMethod' => 'POST', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'b/{bucket}/o/{object}/acl', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'b/{bucket}/o/{object}/acl/{entity}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'b/{bucket}/o/{object}/acl/{entity}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'entity' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->objects = new Google_Service_Storage_Objects_Resource( + $this, + $this->serviceName, + 'objects', + array( + 'methods' => array( + 'compose' => array( + 'path' => 'b/{destinationBucket}/o/{destinationObject}/compose', + 'httpMethod' => 'POST', + 'parameters' => array( + 'destinationBucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'destinationObject' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'destinationPredefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'copy' => array( + 'path' => 'b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'sourceBucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sourceObject' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'destinationBucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'destinationObject' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifSourceGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifSourceMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sourceGeneration' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'destinationPredefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifSourceGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifSourceMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'delete' => array( + 'path' => 'b/{bucket}/o/{object}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'b/{bucket}/o/{object}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'ifGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'b/{bucket}/o', + 'httpMethod' => 'POST', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'predefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'contentEncoding' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'name' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'b/{bucket}/o', + 'httpMethod' => 'GET', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'versions' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'prefix' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'delimiter' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'b/{bucket}/o/{object}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'predefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'b/{bucket}/o/{object}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'object' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'predefinedAcl' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'generation' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifGenerationMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'ifMetagenerationNotMatch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watchAll' => array( + 'path' => 'b/{bucket}/o/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'bucket' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'versions' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'prefix' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'delimiter' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "bucketAccessControls" collection of methods. + * Typical usage is: + * + * $storageService = new Google_Service_Storage(...); + * $bucketAccessControls = $storageService->bucketAccessControls; + * + */ +class Google_Service_Storage_BucketAccessControls_Resource extends Google_Service_Resource +{ + + /** + * Permanently deletes the ACL entry for the specified entity on the specified + * bucket. (bucketAccessControls.delete) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param array $optParams Optional parameters. + */ + public function delete($bucket, $entity, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns the ACL entry for the specified entity on the specified bucket. + * (bucketAccessControls.get) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_BucketAccessControl + */ + public function get($bucket, $entity, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Storage_BucketAccessControl"); + } + /** + * Creates a new ACL entry on the specified bucket. + * (bucketAccessControls.insert) + * + * @param string $bucket + * Name of a bucket. + * @param Google_BucketAccessControl $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_BucketAccessControl + */ + public function insert($bucket, Google_Service_Storage_BucketAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Storage_BucketAccessControl"); + } + /** + * Retrieves ACL entries on the specified bucket. + * (bucketAccessControls.listBucketAccessControls) + * + * @param string $bucket + * Name of a bucket. + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_BucketAccessControls + */ + public function listBucketAccessControls($bucket, $optParams = array()) + { + $params = array('bucket' => $bucket); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Storage_BucketAccessControls"); + } + /** + * Updates an ACL entry on the specified bucket. This method supports patch + * semantics. (bucketAccessControls.patch) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param Google_BucketAccessControl $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_BucketAccessControl + */ + public function patch($bucket, $entity, Google_Service_Storage_BucketAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Storage_BucketAccessControl"); + } + /** + * Updates an ACL entry on the specified bucket. (bucketAccessControls.update) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param Google_BucketAccessControl $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_BucketAccessControl + */ + public function update($bucket, $entity, Google_Service_Storage_BucketAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Storage_BucketAccessControl"); + } +} + +/** + * The "buckets" collection of methods. + * Typical usage is: + * + * $storageService = new Google_Service_Storage(...); + * $buckets = $storageService->buckets; + * + */ +class Google_Service_Storage_Buckets_Resource extends Google_Service_Resource +{ + + /** + * Permanently deletes an empty bucket. (buckets.delete) + * + * @param string $bucket + * Name of a bucket. + * @param array $optParams Optional parameters. + * + * @opt_param string ifMetagenerationMatch + * If set, only deletes the bucket if its metageneration matches this value. + * @opt_param string ifMetagenerationNotMatch + * If set, only deletes the bucket if its metageneration does not match this value. + */ + public function delete($bucket, $optParams = array()) + { + $params = array('bucket' => $bucket); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns metadata for the specified bucket. (buckets.get) + * + * @param string $bucket + * Name of a bucket. + * @param array $optParams Optional parameters. + * + * @opt_param string ifMetagenerationMatch + * Makes the return of the bucket metadata conditional on whether the bucket's current + * metageneration matches the given value. + * @opt_param string ifMetagenerationNotMatch + * Makes the return of the bucket metadata conditional on whether the bucket's current + * metageneration does not match the given value. + * @opt_param string projection + * Set of properties to return. Defaults to noAcl. + * @return Google_Service_Storage_Bucket + */ + public function get($bucket, $optParams = array()) + { + $params = array('bucket' => $bucket); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Storage_Bucket"); + } + /** + * Creates a new bucket. (buckets.insert) + * + * @param string $project + * A valid API project identifier. + * @param Google_Bucket $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string predefinedAcl + * Apply a predefined set of access controls to this bucket. + * @opt_param string projection + * Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or + * defaultObjectAcl properties, when it defaults to full. + * @return Google_Service_Storage_Bucket + */ + public function insert($project, Google_Service_Storage_Bucket $postBody, $optParams = array()) + { + $params = array('project' => $project, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Storage_Bucket"); + } + /** + * Retrieves a list of buckets for a given project. (buckets.listBuckets) + * + * @param string $project + * A valid API project identifier. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * A previously-returned page token representing part of the larger set of results to view. + * @opt_param string projection + * Set of properties to return. Defaults to noAcl. + * @opt_param string maxResults + * Maximum number of buckets to return. + * @return Google_Service_Storage_Buckets + */ + public function listBuckets($project, $optParams = array()) + { + $params = array('project' => $project); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Storage_Buckets"); + } + /** + * Updates a bucket. This method supports patch semantics. (buckets.patch) + * + * @param string $bucket + * Name of a bucket. + * @param Google_Bucket $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string ifMetagenerationMatch + * Makes the return of the bucket metadata conditional on whether the bucket's current + * metageneration matches the given value. + * @opt_param string predefinedAcl + * Apply a predefined set of access controls to this bucket. + * @opt_param string ifMetagenerationNotMatch + * Makes the return of the bucket metadata conditional on whether the bucket's current + * metageneration does not match the given value. + * @opt_param string projection + * Set of properties to return. Defaults to full. + * @return Google_Service_Storage_Bucket + */ + public function patch($bucket, Google_Service_Storage_Bucket $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Storage_Bucket"); + } + /** + * Updates a bucket. (buckets.update) + * + * @param string $bucket + * Name of a bucket. + * @param Google_Bucket $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string ifMetagenerationMatch + * Makes the return of the bucket metadata conditional on whether the bucket's current + * metageneration matches the given value. + * @opt_param string predefinedAcl + * Apply a predefined set of access controls to this bucket. + * @opt_param string ifMetagenerationNotMatch + * Makes the return of the bucket metadata conditional on whether the bucket's current + * metageneration does not match the given value. + * @opt_param string projection + * Set of properties to return. Defaults to full. + * @return Google_Service_Storage_Bucket + */ + public function update($bucket, Google_Service_Storage_Bucket $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Storage_Bucket"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $storageService = new Google_Service_Storage(...); + * $channels = $storageService->channels; + * + */ +class Google_Service_Storage_Channels_Resource extends Google_Service_Resource +{ + + /** + * Stop watching resources through this channel (channels.stop) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + */ + public function stop(Google_Service_Storage_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('stop', array($params)); + } +} + +/** + * The "defaultObjectAccessControls" collection of methods. + * Typical usage is: + * + * $storageService = new Google_Service_Storage(...); + * $defaultObjectAccessControls = $storageService->defaultObjectAccessControls; + * + */ +class Google_Service_Storage_DefaultObjectAccessControls_Resource extends Google_Service_Resource +{ + + /** + * Permanently deletes the default object ACL entry for the specified entity on + * the specified bucket. (defaultObjectAccessControls.delete) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param array $optParams Optional parameters. + */ + public function delete($bucket, $entity, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns the default object ACL entry for the specified entity on the + * specified bucket. (defaultObjectAccessControls.get) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_ObjectAccessControl + */ + public function get($bucket, $entity, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Storage_ObjectAccessControl"); + } + /** + * Creates a new default object ACL entry on the specified bucket. + * (defaultObjectAccessControls.insert) + * + * @param string $bucket + * Name of a bucket. + * @param Google_ObjectAccessControl $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_ObjectAccessControl + */ + public function insert($bucket, Google_Service_Storage_ObjectAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Storage_ObjectAccessControl"); + } + /** + * Retrieves default object ACL entries on the specified bucket. + * (defaultObjectAccessControls.listDefaultObjectAccessControls) + * + * @param string $bucket + * Name of a bucket. + * @param array $optParams Optional parameters. + * + * @opt_param string ifMetagenerationMatch + * If present, only return default ACL listing if the bucket's current metageneration matches this + * value. + * @opt_param string ifMetagenerationNotMatch + * If present, only return default ACL listing if the bucket's current metageneration does not + * match the given value. + * @return Google_Service_Storage_ObjectAccessControls + */ + public function listDefaultObjectAccessControls($bucket, $optParams = array()) + { + $params = array('bucket' => $bucket); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Storage_ObjectAccessControls"); + } + /** + * Updates a default object ACL entry on the specified bucket. This method + * supports patch semantics. (defaultObjectAccessControls.patch) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param Google_ObjectAccessControl $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_ObjectAccessControl + */ + public function patch($bucket, $entity, Google_Service_Storage_ObjectAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Storage_ObjectAccessControl"); + } + /** + * Updates a default object ACL entry on the specified bucket. + * (defaultObjectAccessControls.update) + * + * @param string $bucket + * Name of a bucket. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param Google_ObjectAccessControl $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Storage_ObjectAccessControl + */ + public function update($bucket, $entity, Google_Service_Storage_ObjectAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Storage_ObjectAccessControl"); + } +} + +/** + * The "objectAccessControls" collection of methods. + * Typical usage is: + * + * $storageService = new Google_Service_Storage(...); + * $objectAccessControls = $storageService->objectAccessControls; + * + */ +class Google_Service_Storage_ObjectAccessControls_Resource extends Google_Service_Resource +{ + + /** + * Permanently deletes the ACL entry for the specified entity on the specified + * object. (objectAccessControls.delete) + * + * @param string $bucket + * Name of a bucket. + * @param string $object + * Name of the object. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param array $optParams Optional parameters. + * + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + */ + public function delete($bucket, $object, $entity, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns the ACL entry for the specified entity on the specified object. + * (objectAccessControls.get) + * + * @param string $bucket + * Name of a bucket. + * @param string $object + * Name of the object. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param array $optParams Optional parameters. + * + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @return Google_Service_Storage_ObjectAccessControl + */ + public function get($bucket, $object, $entity, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Storage_ObjectAccessControl"); + } + /** + * Creates a new ACL entry on the specified object. + * (objectAccessControls.insert) + * + * @param string $bucket + * Name of a bucket. + * @param string $object + * Name of the object. + * @param Google_ObjectAccessControl $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @return Google_Service_Storage_ObjectAccessControl + */ + public function insert($bucket, $object, Google_Service_Storage_ObjectAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Storage_ObjectAccessControl"); + } + /** + * Retrieves ACL entries on the specified object. + * (objectAccessControls.listObjectAccessControls) + * + * @param string $bucket + * Name of a bucket. + * @param string $object + * Name of the object. + * @param array $optParams Optional parameters. + * + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @return Google_Service_Storage_ObjectAccessControls + */ + public function listObjectAccessControls($bucket, $object, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Storage_ObjectAccessControls"); + } + /** + * Updates an ACL entry on the specified object. This method supports patch + * semantics. (objectAccessControls.patch) + * + * @param string $bucket + * Name of a bucket. + * @param string $object + * Name of the object. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param Google_ObjectAccessControl $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @return Google_Service_Storage_ObjectAccessControl + */ + public function patch($bucket, $object, $entity, Google_Service_Storage_ObjectAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Storage_ObjectAccessControl"); + } + /** + * Updates an ACL entry on the specified object. (objectAccessControls.update) + * + * @param string $bucket + * Name of a bucket. + * @param string $object + * Name of the object. + * @param string $entity + * The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group- + * emailAddress, allUsers, or allAuthenticatedUsers. + * @param Google_ObjectAccessControl $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @return Google_Service_Storage_ObjectAccessControl + */ + public function update($bucket, $object, $entity, Google_Service_Storage_ObjectAccessControl $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Storage_ObjectAccessControl"); + } +} + +/** + * The "objects" collection of methods. + * Typical usage is: + * + * $storageService = new Google_Service_Storage(...); + * $objects = $storageService->objects; + * + */ +class Google_Service_Storage_Objects_Resource extends Google_Service_Resource +{ + + /** + * Concatenates a list of existing objects into a new object in the same bucket. + * (objects.compose) + * + * @param string $destinationBucket + * Name of the bucket in which to store the new object. + * @param string $destinationObject + * Name of the new object. + * @param Google_ComposeRequest $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the object's current generation matches the given + * value. + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the object's current metageneration matches the given + * value. + * @opt_param string destinationPredefinedAcl + * Apply a predefined set of access controls to the destination object. + * @return Google_Service_Storage_StorageObject + */ + public function compose($destinationBucket, $destinationObject, Google_Service_Storage_ComposeRequest $postBody, $optParams = array()) + { + $params = array('destinationBucket' => $destinationBucket, 'destinationObject' => $destinationObject, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('compose', array($params), "Google_Service_Storage_StorageObject"); + } + /** + * Copies an object to a specified location. Optionally overrides metadata. + * (objects.copy) + * + * @param string $sourceBucket + * Name of the bucket in which to find the source object. + * @param string $sourceObject + * Name of the source object. + * @param string $destinationBucket + * Name of the bucket in which to store the new object. Overrides the provided object metadata's + * bucket value, if any. + * @param string $destinationObject + * Name of the new object. Required when the object metadata is not otherwise provided. Overrides + * the object metadata's name value, if any. + * @param Google_StorageObject $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string ifSourceGenerationNotMatch + * Makes the operation conditional on whether the source object's generation does not match the + * given value. + * @opt_param string ifGenerationNotMatch + * Makes the operation conditional on whether the destination object's current generation does not + * match the given value. + * @opt_param string ifSourceMetagenerationNotMatch + * Makes the operation conditional on whether the source object's current metageneration does not + * match the given value. + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the destination object's current metageneration + * matches the given value. + * @opt_param string sourceGeneration + * If present, selects a specific revision of the source object (as opposed to the latest version, + * the default). + * @opt_param string destinationPredefinedAcl + * Apply a predefined set of access controls to the destination object. + * @opt_param string ifSourceGenerationMatch + * Makes the operation conditional on whether the source object's generation matches the given + * value. + * @opt_param string ifSourceMetagenerationMatch + * Makes the operation conditional on whether the source object's current metageneration matches + * the given value. + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the destination object's current generation matches + * the given value. + * @opt_param string ifMetagenerationNotMatch + * Makes the operation conditional on whether the destination object's current metageneration does + * not match the given value. + * @opt_param string projection + * Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl + * property, when it defaults to full. + * @return Google_Service_Storage_StorageObject + */ + public function copy($sourceBucket, $sourceObject, $destinationBucket, $destinationObject, Google_Service_Storage_StorageObject $postBody, $optParams = array()) + { + $params = array('sourceBucket' => $sourceBucket, 'sourceObject' => $sourceObject, 'destinationBucket' => $destinationBucket, 'destinationObject' => $destinationObject, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('copy', array($params), "Google_Service_Storage_StorageObject"); + } + /** + * Deletes an object and its metadata. Deletions are permanent if versioning is + * not enabled for the bucket, or if the generation parameter is used. + * (objects.delete) + * + * @param string $bucket + * Name of the bucket in which the object resides. + * @param string $object + * Name of the object. + * @param array $optParams Optional parameters. + * + * @opt_param string ifGenerationNotMatch + * Makes the operation conditional on whether the object's current generation does not match the + * given value. + * @opt_param string generation + * If present, permanently deletes a specific revision of this object (as opposed to the latest + * version, the default). + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the object's current metageneration matches the given + * value. + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the object's current generation matches the given + * value. + * @opt_param string ifMetagenerationNotMatch + * Makes the operation conditional on whether the object's current metageneration does not match + * the given value. + */ + public function delete($bucket, $object, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves objects or their metadata. (objects.get) + * + * @param string $bucket + * Name of the bucket in which the object resides. + * @param string $object + * Name of the object. + * @param array $optParams Optional parameters. + * + * @opt_param string ifGenerationNotMatch + * Makes the operation conditional on whether the object's generation does not match the given + * value. + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the object's current metageneration matches the given + * value. + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the object's generation matches the given value. + * @opt_param string ifMetagenerationNotMatch + * Makes the operation conditional on whether the object's current metageneration does not match + * the given value. + * @opt_param string projection + * Set of properties to return. Defaults to noAcl. + * @return Google_Service_Storage_StorageObject + */ + public function get($bucket, $object, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Storage_StorageObject"); + } + /** + * Stores a new object and metadata. (objects.insert) + * + * @param string $bucket + * Name of the bucket in which to store the new object. Overrides the provided object metadata's + * bucket value, if any. + * @param Google_StorageObject $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string predefinedAcl + * Apply a predefined set of access controls to this object. + * @opt_param string projection + * Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl + * property, when it defaults to full. + * @opt_param string ifGenerationNotMatch + * Makes the operation conditional on whether the object's current generation does not match the + * given value. + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the object's current metageneration matches the given + * value. + * @opt_param string contentEncoding + * If set, sets the contentEncoding property of the final object to this value. Setting this + * parameter is equivalent to setting the contentEncoding metadata property. This can be useful + * when uploading an object with uploadType=media to indicate the encoding of the content being + * uploaded. + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the object's current generation matches the given + * value. + * @opt_param string ifMetagenerationNotMatch + * Makes the operation conditional on whether the object's current metageneration does not match + * the given value. + * @opt_param string name + * Name of the object. Required when the object metadata is not otherwise provided. Overrides the + * object metadata's name value, if any. + * @return Google_Service_Storage_StorageObject + */ + public function insert($bucket, Google_Service_Storage_StorageObject $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Storage_StorageObject"); + } + /** + * Retrieves a list of objects matching the criteria. (objects.listObjects) + * + * @param string $bucket + * Name of the bucket in which to look for objects. + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Set of properties to return. Defaults to noAcl. + * @opt_param bool versions + * If true, lists all versions of a file as distinct results. + * @opt_param string prefix + * Filter results to objects whose names begin with this prefix. + * @opt_param string maxResults + * Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total + * results may be returned than requested. + * @opt_param string pageToken + * A previously-returned page token representing part of the larger set of results to view. + * @opt_param string delimiter + * Returns results in a directory-like mode. items will contain only objects whose names, aside + * from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain + * delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate + * prefixes are omitted. + * @return Google_Service_Storage_Objects + */ + public function listObjects($bucket, $optParams = array()) + { + $params = array('bucket' => $bucket); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Storage_Objects"); + } + /** + * Updates an object's metadata. This method supports patch semantics. + * (objects.patch) + * + * @param string $bucket + * Name of the bucket in which the object resides. + * @param string $object + * Name of the object. + * @param Google_StorageObject $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string predefinedAcl + * Apply a predefined set of access controls to this object. + * @opt_param string ifGenerationNotMatch + * Makes the operation conditional on whether the object's current generation does not match the + * given value. + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the object's current metageneration matches the given + * value. + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the object's current generation matches the given + * value. + * @opt_param string ifMetagenerationNotMatch + * Makes the operation conditional on whether the object's current metageneration does not match + * the given value. + * @opt_param string projection + * Set of properties to return. Defaults to full. + * @return Google_Service_Storage_StorageObject + */ + public function patch($bucket, $object, Google_Service_Storage_StorageObject $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Storage_StorageObject"); + } + /** + * Updates an object's metadata. (objects.update) + * + * @param string $bucket + * Name of the bucket in which the object resides. + * @param string $object + * Name of the object. + * @param Google_StorageObject $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string predefinedAcl + * Apply a predefined set of access controls to this object. + * @opt_param string ifGenerationNotMatch + * Makes the operation conditional on whether the object's current generation does not match the + * given value. + * @opt_param string generation + * If present, selects a specific revision of this object (as opposed to the latest version, the + * default). + * @opt_param string ifMetagenerationMatch + * Makes the operation conditional on whether the object's current metageneration matches the given + * value. + * @opt_param string ifGenerationMatch + * Makes the operation conditional on whether the object's current generation matches the given + * value. + * @opt_param string ifMetagenerationNotMatch + * Makes the operation conditional on whether the object's current metageneration does not match + * the given value. + * @opt_param string projection + * Set of properties to return. Defaults to full. + * @return Google_Service_Storage_StorageObject + */ + public function update($bucket, $object, Google_Service_Storage_StorageObject $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'object' => $object, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Storage_StorageObject"); + } + /** + * Watch for changes on all objects in a bucket. (objects.watchAll) + * + * @param string $bucket + * Name of the bucket in which to look for objects. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Set of properties to return. Defaults to noAcl. + * @opt_param bool versions + * If true, lists all versions of a file as distinct results. + * @opt_param string prefix + * Filter results to objects whose names begin with this prefix. + * @opt_param string maxResults + * Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total + * results may be returned than requested. + * @opt_param string pageToken + * A previously-returned page token representing part of the larger set of results to view. + * @opt_param string delimiter + * Returns results in a directory-like mode. items will contain only objects whose names, aside + * from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain + * delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate + * prefixes are omitted. + * @return Google_Service_Storage_Channel + */ + public function watchAll($bucket, Google_Service_Storage_Channel $postBody, $optParams = array()) + { + $params = array('bucket' => $bucket, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watchAll', array($params), "Google_Service_Storage_Channel"); + } +} + + + + +class Google_Service_Storage_Bucket extends Google_Collection +{ + protected $collection_key = 'defaultObjectAcl'; + protected $internal_gapi_mappings = array( + ); + protected $aclType = 'Google_Service_Storage_BucketAccessControl'; + protected $aclDataType = 'array'; + protected $corsType = 'Google_Service_Storage_BucketCors'; + protected $corsDataType = 'array'; + protected $defaultObjectAclType = 'Google_Service_Storage_ObjectAccessControl'; + protected $defaultObjectAclDataType = 'array'; + public $etag; + public $id; + public $kind; + protected $lifecycleType = 'Google_Service_Storage_BucketLifecycle'; + protected $lifecycleDataType = ''; + public $location; + protected $loggingType = 'Google_Service_Storage_BucketLogging'; + protected $loggingDataType = ''; + public $metageneration; + public $name; + protected $ownerType = 'Google_Service_Storage_BucketOwner'; + protected $ownerDataType = ''; + public $projectNumber; + public $selfLink; + public $storageClass; + public $timeCreated; + protected $versioningType = 'Google_Service_Storage_BucketVersioning'; + protected $versioningDataType = ''; + protected $websiteType = 'Google_Service_Storage_BucketWebsite'; + protected $websiteDataType = ''; + + public function setAcl($acl) + { + $this->acl = $acl; + } + + public function getAcl() + { + return $this->acl; + } + + public function setCors($cors) + { + $this->cors = $cors; + } + + public function getCors() + { + return $this->cors; + } + + public function setDefaultObjectAcl($defaultObjectAcl) + { + $this->defaultObjectAcl = $defaultObjectAcl; + } + + public function getDefaultObjectAcl() + { + return $this->defaultObjectAcl; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLifecycle(Google_Service_Storage_BucketLifecycle $lifecycle) + { + $this->lifecycle = $lifecycle; + } + + public function getLifecycle() + { + return $this->lifecycle; + } + + public function setLocation($location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setLogging(Google_Service_Storage_BucketLogging $logging) + { + $this->logging = $logging; + } + + public function getLogging() + { + return $this->logging; + } + + public function setMetageneration($metageneration) + { + $this->metageneration = $metageneration; + } + + public function getMetageneration() + { + return $this->metageneration; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOwner(Google_Service_Storage_BucketOwner $owner) + { + $this->owner = $owner; + } + + public function getOwner() + { + return $this->owner; + } + + public function setProjectNumber($projectNumber) + { + $this->projectNumber = $projectNumber; + } + + public function getProjectNumber() + { + return $this->projectNumber; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStorageClass($storageClass) + { + $this->storageClass = $storageClass; + } + + public function getStorageClass() + { + return $this->storageClass; + } + + public function setTimeCreated($timeCreated) + { + $this->timeCreated = $timeCreated; + } + + public function getTimeCreated() + { + return $this->timeCreated; + } + + public function setVersioning(Google_Service_Storage_BucketVersioning $versioning) + { + $this->versioning = $versioning; + } + + public function getVersioning() + { + return $this->versioning; + } + + public function setWebsite(Google_Service_Storage_BucketWebsite $website) + { + $this->website = $website; + } + + public function getWebsite() + { + return $this->website; + } +} + +class Google_Service_Storage_BucketAccessControl extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bucket; + public $domain; + public $email; + public $entity; + public $entityId; + public $etag; + public $id; + public $kind; + protected $projectTeamType = 'Google_Service_Storage_BucketAccessControlProjectTeam'; + protected $projectTeamDataType = ''; + public $role; + public $selfLink; + + public function setBucket($bucket) + { + $this->bucket = $bucket; + } + + public function getBucket() + { + return $this->bucket; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEntity($entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setEntityId($entityId) + { + $this->entityId = $entityId; + } + + public function getEntityId() + { + return $this->entityId; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setProjectTeam(Google_Service_Storage_BucketAccessControlProjectTeam $projectTeam) + { + $this->projectTeam = $projectTeam; + } + + public function getProjectTeam() + { + return $this->projectTeam; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Storage_BucketAccessControlProjectTeam extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $projectNumber; + public $team; + + public function setProjectNumber($projectNumber) + { + $this->projectNumber = $projectNumber; + } + + public function getProjectNumber() + { + return $this->projectNumber; + } + + public function setTeam($team) + { + $this->team = $team; + } + + public function getTeam() + { + return $this->team; + } +} + +class Google_Service_Storage_BucketAccessControls extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Storage_BucketAccessControl'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Storage_BucketCors extends Google_Collection +{ + protected $collection_key = 'responseHeader'; + protected $internal_gapi_mappings = array( + ); + public $maxAgeSeconds; + public $method; + public $origin; + public $responseHeader; + + public function setMaxAgeSeconds($maxAgeSeconds) + { + $this->maxAgeSeconds = $maxAgeSeconds; + } + + public function getMaxAgeSeconds() + { + return $this->maxAgeSeconds; + } + + public function setMethod($method) + { + $this->method = $method; + } + + public function getMethod() + { + return $this->method; + } + + public function setOrigin($origin) + { + $this->origin = $origin; + } + + public function getOrigin() + { + return $this->origin; + } + + public function setResponseHeader($responseHeader) + { + $this->responseHeader = $responseHeader; + } + + public function getResponseHeader() + { + return $this->responseHeader; + } +} + +class Google_Service_Storage_BucketLifecycle extends Google_Collection +{ + protected $collection_key = 'rule'; + protected $internal_gapi_mappings = array( + ); + protected $ruleType = 'Google_Service_Storage_BucketLifecycleRule'; + protected $ruleDataType = 'array'; + + public function setRule($rule) + { + $this->rule = $rule; + } + + public function getRule() + { + return $this->rule; + } +} + +class Google_Service_Storage_BucketLifecycleRule extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $actionType = 'Google_Service_Storage_BucketLifecycleRuleAction'; + protected $actionDataType = ''; + protected $conditionType = 'Google_Service_Storage_BucketLifecycleRuleCondition'; + protected $conditionDataType = ''; + + public function setAction(Google_Service_Storage_BucketLifecycleRuleAction $action) + { + $this->action = $action; + } + + public function getAction() + { + return $this->action; + } + + public function setCondition(Google_Service_Storage_BucketLifecycleRuleCondition $condition) + { + $this->condition = $condition; + } + + public function getCondition() + { + return $this->condition; + } +} + +class Google_Service_Storage_BucketLifecycleRuleAction extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Storage_BucketLifecycleRuleCondition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $age; + public $createdBefore; + public $isLive; + public $numNewerVersions; + + public function setAge($age) + { + $this->age = $age; + } + + public function getAge() + { + return $this->age; + } + + public function setCreatedBefore($createdBefore) + { + $this->createdBefore = $createdBefore; + } + + public function getCreatedBefore() + { + return $this->createdBefore; + } + + public function setIsLive($isLive) + { + $this->isLive = $isLive; + } + + public function getIsLive() + { + return $this->isLive; + } + + public function setNumNewerVersions($numNewerVersions) + { + $this->numNewerVersions = $numNewerVersions; + } + + public function getNumNewerVersions() + { + return $this->numNewerVersions; + } +} + +class Google_Service_Storage_BucketLogging extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $logBucket; + public $logObjectPrefix; + + public function setLogBucket($logBucket) + { + $this->logBucket = $logBucket; + } + + public function getLogBucket() + { + return $this->logBucket; + } + + public function setLogObjectPrefix($logObjectPrefix) + { + $this->logObjectPrefix = $logObjectPrefix; + } + + public function getLogObjectPrefix() + { + return $this->logObjectPrefix; + } +} + +class Google_Service_Storage_BucketOwner extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $entity; + public $entityId; + + public function setEntity($entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setEntityId($entityId) + { + $this->entityId = $entityId; + } + + public function getEntityId() + { + return $this->entityId; + } +} + +class Google_Service_Storage_BucketVersioning extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $enabled; + + public function setEnabled($enabled) + { + $this->enabled = $enabled; + } + + public function getEnabled() + { + return $this->enabled; + } +} + +class Google_Service_Storage_BucketWebsite extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $mainPageSuffix; + public $notFoundPage; + + public function setMainPageSuffix($mainPageSuffix) + { + $this->mainPageSuffix = $mainPageSuffix; + } + + public function getMainPageSuffix() + { + return $this->mainPageSuffix; + } + + public function setNotFoundPage($notFoundPage) + { + $this->notFoundPage = $notFoundPage; + } + + public function getNotFoundPage() + { + return $this->notFoundPage; + } +} + +class Google_Service_Storage_Buckets extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Storage_Bucket'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Storage_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $expiration; + public $id; + public $kind; + public $params; + public $payload; + public $resourceId; + public $resourceUri; + public $token; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setExpiration($expiration) + { + $this->expiration = $expiration; + } + + public function getExpiration() + { + return $this->expiration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParams($params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setResourceUri($resourceUri) + { + $this->resourceUri = $resourceUri; + } + + public function getResourceUri() + { + return $this->resourceUri; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Storage_ChannelParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Storage_ComposeRequest extends Google_Collection +{ + protected $collection_key = 'sourceObjects'; + protected $internal_gapi_mappings = array( + ); + protected $destinationType = 'Google_Service_Storage_StorageObject'; + protected $destinationDataType = ''; + public $kind; + protected $sourceObjectsType = 'Google_Service_Storage_ComposeRequestSourceObjects'; + protected $sourceObjectsDataType = 'array'; + + public function setDestination(Google_Service_Storage_StorageObject $destination) + { + $this->destination = $destination; + } + + public function getDestination() + { + return $this->destination; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSourceObjects($sourceObjects) + { + $this->sourceObjects = $sourceObjects; + } + + public function getSourceObjects() + { + return $this->sourceObjects; + } +} + +class Google_Service_Storage_ComposeRequestSourceObjects extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $generation; + public $name; + protected $objectPreconditionsType = 'Google_Service_Storage_ComposeRequestSourceObjectsObjectPreconditions'; + protected $objectPreconditionsDataType = ''; + + public function setGeneration($generation) + { + $this->generation = $generation; + } + + public function getGeneration() + { + return $this->generation; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setObjectPreconditions(Google_Service_Storage_ComposeRequestSourceObjectsObjectPreconditions $objectPreconditions) + { + $this->objectPreconditions = $objectPreconditions; + } + + public function getObjectPreconditions() + { + return $this->objectPreconditions; + } +} + +class Google_Service_Storage_ComposeRequestSourceObjectsObjectPreconditions extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $ifGenerationMatch; + + public function setIfGenerationMatch($ifGenerationMatch) + { + $this->ifGenerationMatch = $ifGenerationMatch; + } + + public function getIfGenerationMatch() + { + return $this->ifGenerationMatch; + } +} + +class Google_Service_Storage_ObjectAccessControl extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bucket; + public $domain; + public $email; + public $entity; + public $entityId; + public $etag; + public $generation; + public $id; + public $kind; + public $object; + protected $projectTeamType = 'Google_Service_Storage_ObjectAccessControlProjectTeam'; + protected $projectTeamDataType = ''; + public $role; + public $selfLink; + + public function setBucket($bucket) + { + $this->bucket = $bucket; + } + + public function getBucket() + { + return $this->bucket; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setEmail($email) + { + $this->email = $email; + } + + public function getEmail() + { + return $this->email; + } + + public function setEntity($entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setEntityId($entityId) + { + $this->entityId = $entityId; + } + + public function getEntityId() + { + return $this->entityId; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGeneration($generation) + { + $this->generation = $generation; + } + + public function getGeneration() + { + return $this->generation; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setObject($object) + { + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } + + public function setProjectTeam(Google_Service_Storage_ObjectAccessControlProjectTeam $projectTeam) + { + $this->projectTeam = $projectTeam; + } + + public function getProjectTeam() + { + return $this->projectTeam; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Storage_ObjectAccessControlProjectTeam extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $projectNumber; + public $team; + + public function setProjectNumber($projectNumber) + { + $this->projectNumber = $projectNumber; + } + + public function getProjectNumber() + { + return $this->projectNumber; + } + + public function setTeam($team) + { + $this->team = $team; + } + + public function getTeam() + { + return $this->team; + } +} + +class Google_Service_Storage_ObjectAccessControls extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $items; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Storage_Objects extends Google_Collection +{ + protected $collection_key = 'prefixes'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Storage_StorageObject'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + public $prefixes; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPrefixes($prefixes) + { + $this->prefixes = $prefixes; + } + + public function getPrefixes() + { + return $this->prefixes; + } +} + +class Google_Service_Storage_StorageObject extends Google_Collection +{ + protected $collection_key = 'acl'; + protected $internal_gapi_mappings = array( + ); + protected $aclType = 'Google_Service_Storage_ObjectAccessControl'; + protected $aclDataType = 'array'; + public $bucket; + public $cacheControl; + public $componentCount; + public $contentDisposition; + public $contentEncoding; + public $contentLanguage; + public $contentType; + public $crc32c; + public $etag; + public $generation; + public $id; + public $kind; + public $md5Hash; + public $mediaLink; + public $metadata; + public $metageneration; + public $name; + protected $ownerType = 'Google_Service_Storage_StorageObjectOwner'; + protected $ownerDataType = ''; + public $selfLink; + public $size; + public $storageClass; + public $timeDeleted; + public $updated; + + public function setAcl($acl) + { + $this->acl = $acl; + } + + public function getAcl() + { + return $this->acl; + } + + public function setBucket($bucket) + { + $this->bucket = $bucket; + } + + public function getBucket() + { + return $this->bucket; + } + + public function setCacheControl($cacheControl) + { + $this->cacheControl = $cacheControl; + } + + public function getCacheControl() + { + return $this->cacheControl; + } + + public function setComponentCount($componentCount) + { + $this->componentCount = $componentCount; + } + + public function getComponentCount() + { + return $this->componentCount; + } + + public function setContentDisposition($contentDisposition) + { + $this->contentDisposition = $contentDisposition; + } + + public function getContentDisposition() + { + return $this->contentDisposition; + } + + public function setContentEncoding($contentEncoding) + { + $this->contentEncoding = $contentEncoding; + } + + public function getContentEncoding() + { + return $this->contentEncoding; + } + + public function setContentLanguage($contentLanguage) + { + $this->contentLanguage = $contentLanguage; + } + + public function getContentLanguage() + { + return $this->contentLanguage; + } + + public function setContentType($contentType) + { + $this->contentType = $contentType; + } + + public function getContentType() + { + return $this->contentType; + } + + public function setCrc32c($crc32c) + { + $this->crc32c = $crc32c; + } + + public function getCrc32c() + { + return $this->crc32c; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setGeneration($generation) + { + $this->generation = $generation; + } + + public function getGeneration() + { + return $this->generation; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMd5Hash($md5Hash) + { + $this->md5Hash = $md5Hash; + } + + public function getMd5Hash() + { + return $this->md5Hash; + } + + public function setMediaLink($mediaLink) + { + $this->mediaLink = $mediaLink; + } + + public function getMediaLink() + { + return $this->mediaLink; + } + + public function setMetadata($metadata) + { + $this->metadata = $metadata; + } + + public function getMetadata() + { + return $this->metadata; + } + + public function setMetageneration($metageneration) + { + $this->metageneration = $metageneration; + } + + public function getMetageneration() + { + return $this->metageneration; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setOwner(Google_Service_Storage_StorageObjectOwner $owner) + { + $this->owner = $owner; + } + + public function getOwner() + { + return $this->owner; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setStorageClass($storageClass) + { + $this->storageClass = $storageClass; + } + + public function getStorageClass() + { + return $this->storageClass; + } + + public function setTimeDeleted($timeDeleted) + { + $this->timeDeleted = $timeDeleted; + } + + public function getTimeDeleted() + { + return $this->timeDeleted; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Storage_StorageObjectMetadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Storage_StorageObjectOwner extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $entity; + public $entityId; + + public function setEntity($entity) + { + $this->entity = $entity; + } + + public function getEntity() + { + return $this->entity; + } + + public function setEntityId($entityId) + { + $this->entityId = $entityId; + } + + public function getEntityId() + { + return $this->entityId; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Taskqueue.php b/vendor/google/apiclient/src/Google/Service/Taskqueue.php new file mode 100644 index 0000000..41b4c0f --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Taskqueue.php @@ -0,0 +1,743 @@ + + * Lets you access a Google App Engine Pull Task Queue over REST. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Taskqueue extends Google_Service +{ + /** Manage your Tasks and Taskqueues. */ + const TASKQUEUE = "https://www.googleapis.com/auth/taskqueue"; + /** Consume Tasks from your Taskqueues. */ + const TASKQUEUE_CONSUMER = "https://www.googleapis.com/auth/taskqueue.consumer"; + + public $taskqueues; + public $tasks; + + + /** + * Constructs the internal representation of the Taskqueue service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'taskqueue/v1beta2/projects/'; + $this->version = 'v1beta2'; + $this->serviceName = 'taskqueue'; + + $this->taskqueues = new Google_Service_Taskqueue_Taskqueues_Resource( + $this, + $this->serviceName, + 'taskqueues', + array( + 'methods' => array( + 'get' => array( + 'path' => '{project}/taskqueues/{taskqueue}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'getStats' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->tasks = new Google_Service_Taskqueue_Tasks_Resource( + $this, + $this->serviceName, + 'tasks', + array( + 'methods' => array( + 'delete' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks/{task}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks/{task}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'lease' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks/lease', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'numTasks' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'leaseSecs' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + 'groupByTag' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'tag' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks/{task}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'newLeaseSeconds' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => '{project}/taskqueues/{taskqueue}/tasks/{task}', + 'httpMethod' => 'POST', + 'parameters' => array( + 'project' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'taskqueue' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'newLeaseSeconds' => array( + 'location' => 'query', + 'type' => 'integer', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "taskqueues" collection of methods. + * Typical usage is: + * + * $taskqueueService = new Google_Service_Taskqueue(...); + * $taskqueues = $taskqueueService->taskqueues; + * + */ +class Google_Service_Taskqueue_Taskqueues_Resource extends Google_Service_Resource +{ + + /** + * Get detailed information about a TaskQueue. (taskqueues.get) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * The id of the taskqueue to get the properties of. + * @param array $optParams Optional parameters. + * + * @opt_param bool getStats + * Whether to get stats. Optional. + * @return Google_Service_Taskqueue_TaskQueue + */ + public function get($project, $taskqueue, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Taskqueue_TaskQueue"); + } +} + +/** + * The "tasks" collection of methods. + * Typical usage is: + * + * $taskqueueService = new Google_Service_Taskqueue(...); + * $tasks = $taskqueueService->tasks; + * + */ +class Google_Service_Taskqueue_Tasks_Resource extends Google_Service_Resource +{ + + /** + * Delete a task from a TaskQueue. (tasks.delete) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * The taskqueue to delete a task from. + * @param string $task + * The id of the task to delete. + * @param array $optParams Optional parameters. + */ + public function delete($project, $taskqueue, $task, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Get a particular task from a TaskQueue. (tasks.get) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * The taskqueue in which the task belongs. + * @param string $task + * The task to get properties of. + * @param array $optParams Optional parameters. + * @return Google_Service_Taskqueue_Task + */ + public function get($project, $taskqueue, $task, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Taskqueue_Task"); + } + /** + * Insert a new task in a TaskQueue (tasks.insert) + * + * @param string $project + * The project under which the queue lies + * @param string $taskqueue + * The taskqueue to insert the task into + * @param Google_Task $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Taskqueue_Task + */ + public function insert($project, $taskqueue, Google_Service_Taskqueue_Task $postBody, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Taskqueue_Task"); + } + /** + * Lease 1 or more tasks from a TaskQueue. (tasks.lease) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * The taskqueue to lease a task from. + * @param int $numTasks + * The number of tasks to lease. + * @param int $leaseSecs + * The lease in seconds. + * @param array $optParams Optional parameters. + * + * @opt_param bool groupByTag + * When true, all returned tasks will have the same tag + * @opt_param string tag + * The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If + * group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, + * i.e. the first available tag + * @return Google_Service_Taskqueue_Tasks + */ + public function lease($project, $taskqueue, $numTasks, $leaseSecs, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue, 'numTasks' => $numTasks, 'leaseSecs' => $leaseSecs); + $params = array_merge($params, $optParams); + return $this->call('lease', array($params), "Google_Service_Taskqueue_Tasks"); + } + /** + * List Tasks in a TaskQueue (tasks.listTasks) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * The id of the taskqueue to list tasks from. + * @param array $optParams Optional parameters. + * @return Google_Service_Taskqueue_Tasks2 + */ + public function listTasks($project, $taskqueue, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Taskqueue_Tasks2"); + } + /** + * Update tasks that are leased out of a TaskQueue. This method supports patch + * semantics. (tasks.patch) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * + * @param string $task + * + * @param int $newLeaseSeconds + * The new lease in seconds. + * @param Google_Task $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Taskqueue_Task + */ + public function patch($project, $taskqueue, $task, $newLeaseSeconds, Google_Service_Taskqueue_Task $postBody, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task, 'newLeaseSeconds' => $newLeaseSeconds, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Taskqueue_Task"); + } + /** + * Update tasks that are leased out of a TaskQueue. (tasks.update) + * + * @param string $project + * The project under which the queue lies. + * @param string $taskqueue + * + * @param string $task + * + * @param int $newLeaseSeconds + * The new lease in seconds. + * @param Google_Task $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Taskqueue_Task + */ + public function update($project, $taskqueue, $task, $newLeaseSeconds, Google_Service_Taskqueue_Task $postBody, $optParams = array()) + { + $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task, 'newLeaseSeconds' => $newLeaseSeconds, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Taskqueue_Task"); + } +} + + + + +class Google_Service_Taskqueue_Task extends Google_Model +{ + protected $internal_gapi_mappings = array( + "retryCount" => "retry_count", + ); + public $enqueueTimestamp; + public $id; + public $kind; + public $leaseTimestamp; + public $payloadBase64; + public $queueName; + public $retryCount; + public $tag; + + public function setEnqueueTimestamp($enqueueTimestamp) + { + $this->enqueueTimestamp = $enqueueTimestamp; + } + + public function getEnqueueTimestamp() + { + return $this->enqueueTimestamp; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLeaseTimestamp($leaseTimestamp) + { + $this->leaseTimestamp = $leaseTimestamp; + } + + public function getLeaseTimestamp() + { + return $this->leaseTimestamp; + } + + public function setPayloadBase64($payloadBase64) + { + $this->payloadBase64 = $payloadBase64; + } + + public function getPayloadBase64() + { + return $this->payloadBase64; + } + + public function setQueueName($queueName) + { + $this->queueName = $queueName; + } + + public function getQueueName() + { + return $this->queueName; + } + + public function setRetryCount($retryCount) + { + $this->retryCount = $retryCount; + } + + public function getRetryCount() + { + return $this->retryCount; + } + + public function setTag($tag) + { + $this->tag = $tag; + } + + public function getTag() + { + return $this->tag; + } +} + +class Google_Service_Taskqueue_TaskQueue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $aclType = 'Google_Service_Taskqueue_TaskQueueAcl'; + protected $aclDataType = ''; + public $id; + public $kind; + public $maxLeases; + protected $statsType = 'Google_Service_Taskqueue_TaskQueueStats'; + protected $statsDataType = ''; + + public function setAcl(Google_Service_Taskqueue_TaskQueueAcl $acl) + { + $this->acl = $acl; + } + + public function getAcl() + { + return $this->acl; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setMaxLeases($maxLeases) + { + $this->maxLeases = $maxLeases; + } + + public function getMaxLeases() + { + return $this->maxLeases; + } + + public function setStats(Google_Service_Taskqueue_TaskQueueStats $stats) + { + $this->stats = $stats; + } + + public function getStats() + { + return $this->stats; + } +} + +class Google_Service_Taskqueue_TaskQueueAcl extends Google_Collection +{ + protected $collection_key = 'producerEmails'; + protected $internal_gapi_mappings = array( + ); + public $adminEmails; + public $consumerEmails; + public $producerEmails; + + public function setAdminEmails($adminEmails) + { + $this->adminEmails = $adminEmails; + } + + public function getAdminEmails() + { + return $this->adminEmails; + } + + public function setConsumerEmails($consumerEmails) + { + $this->consumerEmails = $consumerEmails; + } + + public function getConsumerEmails() + { + return $this->consumerEmails; + } + + public function setProducerEmails($producerEmails) + { + $this->producerEmails = $producerEmails; + } + + public function getProducerEmails() + { + return $this->producerEmails; + } +} + +class Google_Service_Taskqueue_TaskQueueStats extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $leasedLastHour; + public $leasedLastMinute; + public $oldestTask; + public $totalTasks; + + public function setLeasedLastHour($leasedLastHour) + { + $this->leasedLastHour = $leasedLastHour; + } + + public function getLeasedLastHour() + { + return $this->leasedLastHour; + } + + public function setLeasedLastMinute($leasedLastMinute) + { + $this->leasedLastMinute = $leasedLastMinute; + } + + public function getLeasedLastMinute() + { + return $this->leasedLastMinute; + } + + public function setOldestTask($oldestTask) + { + $this->oldestTask = $oldestTask; + } + + public function getOldestTask() + { + return $this->oldestTask; + } + + public function setTotalTasks($totalTasks) + { + $this->totalTasks = $totalTasks; + } + + public function getTotalTasks() + { + return $this->totalTasks; + } +} + +class Google_Service_Taskqueue_Tasks extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Taskqueue_Task'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Taskqueue_Tasks2 extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Taskqueue_Task'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Tasks.php b/vendor/google/apiclient/src/Google/Service/Tasks.php new file mode 100644 index 0000000..eacd007 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Tasks.php @@ -0,0 +1,971 @@ + + * Lets you manage your tasks and task lists. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Tasks extends Google_Service +{ + /** Manage your tasks. */ + const TASKS = "https://www.googleapis.com/auth/tasks"; + /** View your tasks. */ + const TASKS_READONLY = "https://www.googleapis.com/auth/tasks.readonly"; + + public $tasklists; + public $tasks; + + + /** + * Constructs the internal representation of the Tasks service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'tasks/v1/'; + $this->version = 'v1'; + $this->serviceName = 'tasks'; + + $this->tasklists = new Google_Service_Tasks_Tasklists_Resource( + $this, + $this->serviceName, + 'tasklists', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'users/@me/lists/{tasklist}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'users/@me/lists/{tasklist}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'users/@me/lists', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'users/@me/lists', + 'httpMethod' => 'GET', + 'parameters' => array( + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'users/@me/lists/{tasklist}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'users/@me/lists/{tasklist}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->tasks = new Google_Service_Tasks_Tasks_Resource( + $this, + $this->serviceName, + 'tasks', + array( + 'methods' => array( + 'clear' => array( + 'path' => 'lists/{tasklist}/clear', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'lists/{tasklist}/tasks/{task}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'lists/{tasklist}/tasks/{task}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'lists/{tasklist}/tasks', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parent' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'previous' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'lists/{tasklist}/tasks', + 'httpMethod' => 'GET', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'dueMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'completedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showCompleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'completedMax' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'showHidden' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'dueMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'move' => array( + 'path' => 'lists/{tasklist}/tasks/{task}/move', + 'httpMethod' => 'POST', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parent' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'previous' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'patch' => array( + 'path' => 'lists/{tasklist}/tasks/{task}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'lists/{tasklist}/tasks/{task}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'tasklist' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'task' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "tasklists" collection of methods. + * Typical usage is: + * + * $tasksService = new Google_Service_Tasks(...); + * $tasklists = $tasksService->tasklists; + * + */ +class Google_Service_Tasks_Tasklists_Resource extends Google_Service_Resource +{ + + /** + * Deletes the authenticated user's specified task list. (tasklists.delete) + * + * @param string $tasklist + * Task list identifier. + * @param array $optParams Optional parameters. + */ + public function delete($tasklist, $optParams = array()) + { + $params = array('tasklist' => $tasklist); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns the authenticated user's specified task list. (tasklists.get) + * + * @param string $tasklist + * Task list identifier. + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_TaskList + */ + public function get($tasklist, $optParams = array()) + { + $params = array('tasklist' => $tasklist); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Tasks_TaskList"); + } + /** + * Creates a new task list and adds it to the authenticated user's task lists. + * (tasklists.insert) + * + * @param Google_TaskList $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_TaskList + */ + public function insert(Google_Service_Tasks_TaskList $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Tasks_TaskList"); + } + /** + * Returns all the authenticated user's task lists. (tasklists.listTasklists) + * + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * Token specifying the result page to return. Optional. + * @opt_param string maxResults + * Maximum number of task lists returned on one page. Optional. The default is 100. + * @return Google_Service_Tasks_TaskLists + */ + public function listTasklists($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Tasks_TaskLists"); + } + /** + * Updates the authenticated user's specified task list. This method supports + * patch semantics. (tasklists.patch) + * + * @param string $tasklist + * Task list identifier. + * @param Google_TaskList $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_TaskList + */ + public function patch($tasklist, Google_Service_Tasks_TaskList $postBody, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Tasks_TaskList"); + } + /** + * Updates the authenticated user's specified task list. (tasklists.update) + * + * @param string $tasklist + * Task list identifier. + * @param Google_TaskList $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_TaskList + */ + public function update($tasklist, Google_Service_Tasks_TaskList $postBody, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Tasks_TaskList"); + } +} + +/** + * The "tasks" collection of methods. + * Typical usage is: + * + * $tasksService = new Google_Service_Tasks(...); + * $tasks = $tasksService->tasks; + * + */ +class Google_Service_Tasks_Tasks_Resource extends Google_Service_Resource +{ + + /** + * Clears all completed tasks from the specified task list. The affected tasks + * will be marked as 'hidden' and no longer be returned by default when + * retrieving all tasks for a task list. (tasks.clear) + * + * @param string $tasklist + * Task list identifier. + * @param array $optParams Optional parameters. + */ + public function clear($tasklist, $optParams = array()) + { + $params = array('tasklist' => $tasklist); + $params = array_merge($params, $optParams); + return $this->call('clear', array($params)); + } + /** + * Deletes the specified task from the task list. (tasks.delete) + * + * @param string $tasklist + * Task list identifier. + * @param string $task + * Task identifier. + * @param array $optParams Optional parameters. + */ + public function delete($tasklist, $task, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'task' => $task); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Returns the specified task. (tasks.get) + * + * @param string $tasklist + * Task list identifier. + * @param string $task + * Task identifier. + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_Task + */ + public function get($tasklist, $task, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'task' => $task); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Tasks_Task"); + } + /** + * Creates a new task on the specified task list. (tasks.insert) + * + * @param string $tasklist + * Task list identifier. + * @param Google_Task $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string parent + * Parent task identifier. If the task is created at the top level, this parameter is omitted. + * Optional. + * @opt_param string previous + * Previous sibling task identifier. If the task is created at the first position among its + * siblings, this parameter is omitted. Optional. + * @return Google_Service_Tasks_Task + */ + public function insert($tasklist, Google_Service_Tasks_Task $postBody, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Tasks_Task"); + } + /** + * Returns all tasks in the specified task list. (tasks.listTasks) + * + * @param string $tasklist + * Task list identifier. + * @param array $optParams Optional parameters. + * + * @opt_param string dueMax + * Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default + * is not to filter by due date. + * @opt_param bool showDeleted + * Flag indicating whether deleted tasks are returned in the result. Optional. The default is + * False. + * @opt_param string updatedMin + * Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. + * Optional. The default is not to filter by last modification time. + * @opt_param string completedMin + * Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The + * default is not to filter by completion date. + * @opt_param string maxResults + * Maximum number of task lists returned on one page. Optional. The default is 100. + * @opt_param bool showCompleted + * Flag indicating whether completed tasks are returned in the result. Optional. The default is + * True. + * @opt_param string pageToken + * Token specifying the result page to return. Optional. + * @opt_param string completedMax + * Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The + * default is not to filter by completion date. + * @opt_param bool showHidden + * Flag indicating whether hidden tasks are returned in the result. Optional. The default is False. + * @opt_param string dueMin + * Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default + * is not to filter by due date. + * @return Google_Service_Tasks_Tasks + */ + public function listTasks($tasklist, $optParams = array()) + { + $params = array('tasklist' => $tasklist); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Tasks_Tasks"); + } + /** + * Moves the specified task to another position in the task list. This can + * include putting it as a child task under a new parent and/or move it to a + * different position among its sibling tasks. (tasks.move) + * + * @param string $tasklist + * Task list identifier. + * @param string $task + * Task identifier. + * @param array $optParams Optional parameters. + * + * @opt_param string parent + * New parent task identifier. If the task is moved to the top level, this parameter is omitted. + * Optional. + * @opt_param string previous + * New previous sibling task identifier. If the task is moved to the first position among its + * siblings, this parameter is omitted. Optional. + * @return Google_Service_Tasks_Task + */ + public function move($tasklist, $task, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'task' => $task); + $params = array_merge($params, $optParams); + return $this->call('move', array($params), "Google_Service_Tasks_Task"); + } + /** + * Updates the specified task. This method supports patch semantics. + * (tasks.patch) + * + * @param string $tasklist + * Task list identifier. + * @param string $task + * Task identifier. + * @param Google_Task $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_Task + */ + public function patch($tasklist, $task, Google_Service_Tasks_Task $postBody, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'task' => $task, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Tasks_Task"); + } + /** + * Updates the specified task. (tasks.update) + * + * @param string $tasklist + * Task list identifier. + * @param string $task + * Task identifier. + * @param Google_Task $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Tasks_Task + */ + public function update($tasklist, $task, Google_Service_Tasks_Task $postBody, $optParams = array()) + { + $params = array('tasklist' => $tasklist, 'task' => $task, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Tasks_Task"); + } +} + + + + +class Google_Service_Tasks_Task extends Google_Collection +{ + protected $collection_key = 'links'; + protected $internal_gapi_mappings = array( + ); + public $completed; + public $deleted; + public $due; + public $etag; + public $hidden; + public $id; + public $kind; + protected $linksType = 'Google_Service_Tasks_TaskLinks'; + protected $linksDataType = 'array'; + public $notes; + public $parent; + public $position; + public $selfLink; + public $status; + public $title; + public $updated; + + public function setCompleted($completed) + { + $this->completed = $completed; + } + + public function getCompleted() + { + return $this->completed; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setDue($due) + { + $this->due = $due; + } + + public function getDue() + { + return $this->due; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + public function getHidden() + { + return $this->hidden; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLinks($links) + { + $this->links = $links; + } + + public function getLinks() + { + return $this->links; + } + + public function setNotes($notes) + { + $this->notes = $notes; + } + + public function getNotes() + { + return $this->notes; + } + + public function setParent($parent) + { + $this->parent = $parent; + } + + public function getParent() + { + return $this->parent; + } + + public function setPosition($position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Tasks_TaskLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $link; + public $type; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setLink($link) + { + $this->link = $link; + } + + public function getLink() + { + return $this->link; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Tasks_TaskList extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + public $selfLink; + public $title; + public $updated; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + } + + public function getUpdated() + { + return $this->updated; + } +} + +class Google_Service_Tasks_TaskLists extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Tasks_TaskList'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} + +class Google_Service_Tasks_Tasks extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Tasks_Task'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Translate.php b/vendor/google/apiclient/src/Google/Service/Translate.php new file mode 100644 index 0000000..42f4402 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Translate.php @@ -0,0 +1,382 @@ + + * Lets you translate text from one language to another + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Translate extends Google_Service +{ + + + public $detections; + public $languages; + public $translations; + + + /** + * Constructs the internal representation of the Translate service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'language/translate/'; + $this->version = 'v2'; + $this->serviceName = 'translate'; + + $this->detections = new Google_Service_Translate_Detections_Resource( + $this, + $this->serviceName, + 'detections', + array( + 'methods' => array( + 'list' => array( + 'path' => 'v2/detect', + 'httpMethod' => 'GET', + 'parameters' => array( + 'q' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->languages = new Google_Service_Translate_Languages_Resource( + $this, + $this->serviceName, + 'languages', + array( + 'methods' => array( + 'list' => array( + 'path' => 'v2/languages', + 'httpMethod' => 'GET', + 'parameters' => array( + 'target' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->translations = new Google_Service_Translate_Translations_Resource( + $this, + $this->serviceName, + 'translations', + array( + 'methods' => array( + 'list' => array( + 'path' => 'v2', + 'httpMethod' => 'GET', + 'parameters' => array( + 'q' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + 'required' => true, + ), + 'target' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'source' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'format' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'cid' => array( + 'location' => 'query', + 'type' => 'string', + 'repeated' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "detections" collection of methods. + * Typical usage is: + * + * $translateService = new Google_Service_Translate(...); + * $detections = $translateService->detections; + * + */ +class Google_Service_Translate_Detections_Resource extends Google_Service_Resource +{ + + /** + * Detect the language of text. (detections.listDetections) + * + * @param string $q + * The text to detect + * @param array $optParams Optional parameters. + * @return Google_Service_Translate_DetectionsListResponse + */ + public function listDetections($q, $optParams = array()) + { + $params = array('q' => $q); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Translate_DetectionsListResponse"); + } +} + +/** + * The "languages" collection of methods. + * Typical usage is: + * + * $translateService = new Google_Service_Translate(...); + * $languages = $translateService->languages; + * + */ +class Google_Service_Translate_Languages_Resource extends Google_Service_Resource +{ + + /** + * List the source/target languages supported by the API + * (languages.listLanguages) + * + * @param array $optParams Optional parameters. + * + * @opt_param string target + * the language and collation in which the localized results should be returned + * @return Google_Service_Translate_LanguagesListResponse + */ + public function listLanguages($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Translate_LanguagesListResponse"); + } +} + +/** + * The "translations" collection of methods. + * Typical usage is: + * + * $translateService = new Google_Service_Translate(...); + * $translations = $translateService->translations; + * + */ +class Google_Service_Translate_Translations_Resource extends Google_Service_Resource +{ + + /** + * Returns text translations from one language to another. + * (translations.listTranslations) + * + * @param string $q + * The text to translate + * @param string $target + * The target language into which the text should be translated + * @param array $optParams Optional parameters. + * + * @opt_param string source + * The source language of the text + * @opt_param string format + * The format of the text + * @opt_param string cid + * The customization id for translate + * @return Google_Service_Translate_TranslationsListResponse + */ + public function listTranslations($q, $target, $optParams = array()) + { + $params = array('q' => $q, 'target' => $target); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Translate_TranslationsListResponse"); + } +} + + + + +class Google_Service_Translate_DetectionsListResponse extends Google_Collection +{ + protected $collection_key = 'detections'; + protected $internal_gapi_mappings = array( + ); + protected $detectionsType = 'Google_Service_Translate_DetectionsResourceItems'; + protected $detectionsDataType = 'array'; + + public function setDetections($detections) + { + $this->detections = $detections; + } + + public function getDetections() + { + return $this->detections; + } +} + +class Google_Service_Translate_DetectionsResourceItems extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $confidence; + public $isReliable; + public $language; + + public function setConfidence($confidence) + { + $this->confidence = $confidence; + } + + public function getConfidence() + { + return $this->confidence; + } + + public function setIsReliable($isReliable) + { + $this->isReliable = $isReliable; + } + + public function getIsReliable() + { + return $this->isReliable; + } + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } +} + +class Google_Service_Translate_LanguagesListResponse extends Google_Collection +{ + protected $collection_key = 'languages'; + protected $internal_gapi_mappings = array( + ); + protected $languagesType = 'Google_Service_Translate_LanguagesResource'; + protected $languagesDataType = 'array'; + + public function setLanguages($languages) + { + $this->languages = $languages; + } + + public function getLanguages() + { + return $this->languages; + } +} + +class Google_Service_Translate_LanguagesResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $language; + public $name; + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_Translate_TranslationsListResponse extends Google_Collection +{ + protected $collection_key = 'translations'; + protected $internal_gapi_mappings = array( + ); + protected $translationsType = 'Google_Service_Translate_TranslationsResource'; + protected $translationsDataType = 'array'; + + public function setTranslations($translations) + { + $this->translations = $translations; + } + + public function getTranslations() + { + return $this->translations; + } +} + +class Google_Service_Translate_TranslationsResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $detectedSourceLanguage; + public $translatedText; + + public function setDetectedSourceLanguage($detectedSourceLanguage) + { + $this->detectedSourceLanguage = $detectedSourceLanguage; + } + + public function getDetectedSourceLanguage() + { + return $this->detectedSourceLanguage; + } + + public function setTranslatedText($translatedText) + { + $this->translatedText = $translatedText; + } + + public function getTranslatedText() + { + return $this->translatedText; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Urlshortener.php b/vendor/google/apiclient/src/Google/Service/Urlshortener.php new file mode 100644 index 0000000..2ac1b6a --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Urlshortener.php @@ -0,0 +1,465 @@ + + * Lets you create, inspect, and manage goo.gl short URLs + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Urlshortener extends Google_Service +{ + /** Manage your goo.gl short URLs. */ + const URLSHORTENER = "https://www.googleapis.com/auth/urlshortener"; + + public $url; + + + /** + * Constructs the internal representation of the Urlshortener service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'urlshortener/v1/'; + $this->version = 'v1'; + $this->serviceName = 'urlshortener'; + + $this->url = new Google_Service_Urlshortener_Url_Resource( + $this, + $this->serviceName, + 'url', + array( + 'methods' => array( + 'get' => array( + 'path' => 'url', + 'httpMethod' => 'GET', + 'parameters' => array( + 'shortUrl' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'url', + 'httpMethod' => 'POST', + 'parameters' => array(), + ),'list' => array( + 'path' => 'url/history', + 'httpMethod' => 'GET', + 'parameters' => array( + 'start-token' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "url" collection of methods. + * Typical usage is: + * + * $urlshortenerService = new Google_Service_Urlshortener(...); + * $url = $urlshortenerService->url; + * + */ +class Google_Service_Urlshortener_Url_Resource extends Google_Service_Resource +{ + + /** + * Expands a short URL or gets creation time and analytics. (url.get) + * + * @param string $shortUrl + * The short URL, including the protocol. + * @param array $optParams Optional parameters. + * + * @opt_param string projection + * Additional information to return. + * @return Google_Service_Urlshortener_Url + */ + public function get($shortUrl, $optParams = array()) + { + $params = array('shortUrl' => $shortUrl); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Urlshortener_Url"); + } + /** + * Creates a new short URL. (url.insert) + * + * @param Google_Url $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Urlshortener_Url + */ + public function insert(Google_Service_Urlshortener_Url $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Urlshortener_Url"); + } + /** + * Retrieves a list of URLs shortened by a user. (url.listUrl) + * + * @param array $optParams Optional parameters. + * + * @opt_param string start-token + * Token for requesting successive pages of results. + * @opt_param string projection + * Additional information to return. + * @return Google_Service_Urlshortener_UrlHistory + */ + public function listUrl($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Urlshortener_UrlHistory"); + } +} + + + + +class Google_Service_Urlshortener_AnalyticsSnapshot extends Google_Collection +{ + protected $collection_key = 'referrers'; + protected $internal_gapi_mappings = array( + ); + protected $browsersType = 'Google_Service_Urlshortener_StringCount'; + protected $browsersDataType = 'array'; + protected $countriesType = 'Google_Service_Urlshortener_StringCount'; + protected $countriesDataType = 'array'; + public $longUrlClicks; + protected $platformsType = 'Google_Service_Urlshortener_StringCount'; + protected $platformsDataType = 'array'; + protected $referrersType = 'Google_Service_Urlshortener_StringCount'; + protected $referrersDataType = 'array'; + public $shortUrlClicks; + + public function setBrowsers($browsers) + { + $this->browsers = $browsers; + } + + public function getBrowsers() + { + return $this->browsers; + } + + public function setCountries($countries) + { + $this->countries = $countries; + } + + public function getCountries() + { + return $this->countries; + } + + public function setLongUrlClicks($longUrlClicks) + { + $this->longUrlClicks = $longUrlClicks; + } + + public function getLongUrlClicks() + { + return $this->longUrlClicks; + } + + public function setPlatforms($platforms) + { + $this->platforms = $platforms; + } + + public function getPlatforms() + { + return $this->platforms; + } + + public function setReferrers($referrers) + { + $this->referrers = $referrers; + } + + public function getReferrers() + { + return $this->referrers; + } + + public function setShortUrlClicks($shortUrlClicks) + { + $this->shortUrlClicks = $shortUrlClicks; + } + + public function getShortUrlClicks() + { + return $this->shortUrlClicks; + } +} + +class Google_Service_Urlshortener_AnalyticsSummary extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $allTimeType = 'Google_Service_Urlshortener_AnalyticsSnapshot'; + protected $allTimeDataType = ''; + protected $dayType = 'Google_Service_Urlshortener_AnalyticsSnapshot'; + protected $dayDataType = ''; + protected $monthType = 'Google_Service_Urlshortener_AnalyticsSnapshot'; + protected $monthDataType = ''; + protected $twoHoursType = 'Google_Service_Urlshortener_AnalyticsSnapshot'; + protected $twoHoursDataType = ''; + protected $weekType = 'Google_Service_Urlshortener_AnalyticsSnapshot'; + protected $weekDataType = ''; + + public function setAllTime(Google_Service_Urlshortener_AnalyticsSnapshot $allTime) + { + $this->allTime = $allTime; + } + + public function getAllTime() + { + return $this->allTime; + } + + public function setDay(Google_Service_Urlshortener_AnalyticsSnapshot $day) + { + $this->day = $day; + } + + public function getDay() + { + return $this->day; + } + + public function setMonth(Google_Service_Urlshortener_AnalyticsSnapshot $month) + { + $this->month = $month; + } + + public function getMonth() + { + return $this->month; + } + + public function setTwoHours(Google_Service_Urlshortener_AnalyticsSnapshot $twoHours) + { + $this->twoHours = $twoHours; + } + + public function getTwoHours() + { + return $this->twoHours; + } + + public function setWeek(Google_Service_Urlshortener_AnalyticsSnapshot $week) + { + $this->week = $week; + } + + public function getWeek() + { + return $this->week; + } +} + +class Google_Service_Urlshortener_StringCount extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $id; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } +} + +class Google_Service_Urlshortener_Url extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $analyticsType = 'Google_Service_Urlshortener_AnalyticsSummary'; + protected $analyticsDataType = ''; + public $created; + public $id; + public $kind; + public $longUrl; + public $status; + + public function setAnalytics(Google_Service_Urlshortener_AnalyticsSummary $analytics) + { + $this->analytics = $analytics; + } + + public function getAnalytics() + { + return $this->analytics; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreated() + { + return $this->created; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLongUrl($longUrl) + { + $this->longUrl = $longUrl; + } + + public function getLongUrl() + { + return $this->longUrl; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Urlshortener_UrlHistory extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Urlshortener_Url'; + protected $itemsDataType = 'array'; + public $itemsPerPage; + public $kind; + public $nextPageToken; + public $totalItems; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setItemsPerPage($itemsPerPage) + { + $this->itemsPerPage = $itemsPerPage; + } + + public function getItemsPerPage() + { + return $this->itemsPerPage; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setTotalItems($totalItems) + { + $this->totalItems = $totalItems; + } + + public function getTotalItems() + { + return $this->totalItems; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Webfonts.php b/vendor/google/apiclient/src/Google/Service/Webfonts.php new file mode 100644 index 0000000..dd7d7af --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Webfonts.php @@ -0,0 +1,235 @@ + + * The Google Fonts Developer API. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Webfonts extends Google_Service +{ + + + public $webfonts; + + + /** + * Constructs the internal representation of the Webfonts service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'webfonts/v1/'; + $this->version = 'v1'; + $this->serviceName = 'webfonts'; + + $this->webfonts = new Google_Service_Webfonts_Webfonts_Resource( + $this, + $this->serviceName, + 'webfonts', + array( + 'methods' => array( + 'list' => array( + 'path' => 'webfonts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "webfonts" collection of methods. + * Typical usage is: + * + * $webfontsService = new Google_Service_Webfonts(...); + * $webfonts = $webfontsService->webfonts; + * + */ +class Google_Service_Webfonts_Webfonts_Resource extends Google_Service_Resource +{ + + /** + * Retrieves the list of fonts currently served by the Google Fonts Developer + * API (webfonts.listWebfonts) + * + * @param array $optParams Optional parameters. + * + * @opt_param string sort + * Enables sorting of the list + * @return Google_Service_Webfonts_WebfontList + */ + public function listWebfonts($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Webfonts_WebfontList"); + } +} + + + + +class Google_Service_Webfonts_Webfont extends Google_Collection +{ + protected $collection_key = 'variants'; + protected $internal_gapi_mappings = array( + ); + public $category; + public $family; + public $files; + public $kind; + public $lastModified; + public $subsets; + public $variants; + public $version; + + public function setCategory($category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setFamily($family) + { + $this->family = $family; + } + + public function getFamily() + { + return $this->family; + } + + public function setFiles($files) + { + $this->files = $files; + } + + public function getFiles() + { + return $this->files; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModified($lastModified) + { + $this->lastModified = $lastModified; + } + + public function getLastModified() + { + return $this->lastModified; + } + + public function setSubsets($subsets) + { + $this->subsets = $subsets; + } + + public function getSubsets() + { + return $this->subsets; + } + + public function setVariants($variants) + { + $this->variants = $variants; + } + + public function getVariants() + { + return $this->variants; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } +} + +class Google_Service_Webfonts_WebfontFiles extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Webfonts_WebfontList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Webfonts_Webfont'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/Webmasters.php b/vendor/google/apiclient/src/Google/Service/Webmasters.php new file mode 100644 index 0000000..1662e17 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/Webmasters.php @@ -0,0 +1,951 @@ + + * Lets you view Google Webmaster Tools data for your verified sites. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Webmasters extends Google_Service +{ + /** View and modify Webmaster Tools data for your verified sites. */ + const WEBMASTERS = "https://www.googleapis.com/auth/webmasters"; + /** View Webmaster Tools data for your verified sites. */ + const WEBMASTERS_READONLY = "https://www.googleapis.com/auth/webmasters.readonly"; + + public $sitemaps; + public $sites; + public $urlcrawlerrorscounts; + public $urlcrawlerrorssamples; + + + /** + * Constructs the internal representation of the Webmasters service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'webmasters/v3/'; + $this->version = 'v3'; + $this->serviceName = 'webmasters'; + + $this->sitemaps = new Google_Service_Webmasters_Sitemaps_Resource( + $this, + $this->serviceName, + 'sitemaps', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'sites/{siteUrl}/sitemaps/{feedpath}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'feedpath' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'sites/{siteUrl}/sitemaps/{feedpath}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'feedpath' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'sites/{siteUrl}/sitemaps', + 'httpMethod' => 'GET', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'sitemapIndex' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'submit' => array( + 'path' => 'sites/{siteUrl}/sitemaps/{feedpath}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'feedpath' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->sites = new Google_Service_Webmasters_Sites_Resource( + $this, + $this->serviceName, + 'sites', + array( + 'methods' => array( + 'add' => array( + 'path' => 'sites/{siteUrl}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'delete' => array( + 'path' => 'sites/{siteUrl}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'sites/{siteUrl}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'sites', + 'httpMethod' => 'GET', + 'parameters' => array(), + ), + ) + ) + ); + $this->urlcrawlerrorscounts = new Google_Service_Webmasters_Urlcrawlerrorscounts_Resource( + $this, + $this->serviceName, + 'urlcrawlerrorscounts', + array( + 'methods' => array( + 'query' => array( + 'path' => 'sites/{siteUrl}/urlCrawlErrorsCounts/query', + 'httpMethod' => 'GET', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'category' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'platform' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'latestCountsOnly' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->urlcrawlerrorssamples = new Google_Service_Webmasters_Urlcrawlerrorssamples_Resource( + $this, + $this->serviceName, + 'urlcrawlerrorssamples', + array( + 'methods' => array( + 'get' => array( + 'path' => 'sites/{siteUrl}/urlCrawlErrorsSamples/{url}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'url' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'category' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'platform' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'sites/{siteUrl}/urlCrawlErrorsSamples', + 'httpMethod' => 'GET', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'category' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'platform' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'markAsFixed' => array( + 'path' => 'sites/{siteUrl}/urlCrawlErrorsSamples/{url}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'siteUrl' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'url' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'category' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'platform' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "sitemaps" collection of methods. + * Typical usage is: + * + * $webmastersService = new Google_Service_Webmasters(...); + * $sitemaps = $webmastersService->sitemaps; + * + */ +class Google_Service_Webmasters_Sitemaps_Resource extends Google_Service_Resource +{ + + /** + * Deletes a sitemap from this site. (sitemaps.delete) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param string $feedpath + * The URL of the actual sitemap (for example http://www.example.com/sitemap.xml). + * @param array $optParams Optional parameters. + */ + public function delete($siteUrl, $feedpath, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl, 'feedpath' => $feedpath); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves information about a specific sitemap. (sitemaps.get) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param string $feedpath + * The URL of the actual sitemap (for example http://www.example.com/sitemap.xml). + * @param array $optParams Optional parameters. + * @return Google_Service_Webmasters_WmxSitemap + */ + public function get($siteUrl, $feedpath, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl, 'feedpath' => $feedpath); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Webmasters_WmxSitemap"); + } + /** + * Lists sitemaps uploaded to the site. (sitemaps.listSitemaps) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param array $optParams Optional parameters. + * + * @opt_param string sitemapIndex + * A URL of a site's sitemap index. + * @return Google_Service_Webmasters_SitemapsListResponse + */ + public function listSitemaps($siteUrl, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Webmasters_SitemapsListResponse"); + } + /** + * Submits a sitemap for a site. (sitemaps.submit) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param string $feedpath + * The URL of the sitemap to add. + * @param array $optParams Optional parameters. + */ + public function submit($siteUrl, $feedpath, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl, 'feedpath' => $feedpath); + $params = array_merge($params, $optParams); + return $this->call('submit', array($params)); + } +} + +/** + * The "sites" collection of methods. + * Typical usage is: + * + * $webmastersService = new Google_Service_Webmasters(...); + * $sites = $webmastersService->sites; + * + */ +class Google_Service_Webmasters_Sites_Resource extends Google_Service_Resource +{ + + /** + * Adds a site to the set of the user's sites in Webmaster Tools. (sites.add) + * + * @param string $siteUrl + * The URL of the site to add. + * @param array $optParams Optional parameters. + */ + public function add($siteUrl, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl); + $params = array_merge($params, $optParams); + return $this->call('add', array($params)); + } + /** + * Removes a site from the set of the user's Webmaster Tools sites. + * (sites.delete) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param array $optParams Optional parameters. + */ + public function delete($siteUrl, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves information about specific site. (sites.get) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param array $optParams Optional parameters. + * @return Google_Service_Webmasters_WmxSite + */ + public function get($siteUrl, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Webmasters_WmxSite"); + } + /** + * Lists your Webmaster Tools sites. (sites.listSites) + * + * @param array $optParams Optional parameters. + * @return Google_Service_Webmasters_SitesListResponse + */ + public function listSites($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Webmasters_SitesListResponse"); + } +} + +/** + * The "urlcrawlerrorscounts" collection of methods. + * Typical usage is: + * + * $webmastersService = new Google_Service_Webmasters(...); + * $urlcrawlerrorscounts = $webmastersService->urlcrawlerrorscounts; + * + */ +class Google_Service_Webmasters_Urlcrawlerrorscounts_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a time series of the number of URL crawl errors per error category + * and platform. (urlcrawlerrorscounts.query) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param array $optParams Optional parameters. + * + * @opt_param string category + * The crawl error category, for example 'serverError'. If not specified, we return results for all + * categories. + * @opt_param string platform + * The user agent type (platform) that made the request, for example 'web'. If not specified, we + * return results for all platforms. + * @opt_param bool latestCountsOnly + * If true, returns only the latest crawl error counts. + * @return Google_Service_Webmasters_UrlCrawlErrorsCountsQueryResponse + */ + public function query($siteUrl, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl); + $params = array_merge($params, $optParams); + return $this->call('query', array($params), "Google_Service_Webmasters_UrlCrawlErrorsCountsQueryResponse"); + } +} + +/** + * The "urlcrawlerrorssamples" collection of methods. + * Typical usage is: + * + * $webmastersService = new Google_Service_Webmasters(...); + * $urlcrawlerrorssamples = $webmastersService->urlcrawlerrorssamples; + * + */ +class Google_Service_Webmasters_Urlcrawlerrorssamples_Resource extends Google_Service_Resource +{ + + /** + * Retrieves details about crawl errors for a site's sample URL. + * (urlcrawlerrorssamples.get) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param string $url + * The relative path (without the site) of the sample URL; must be one of the URLs returned by list + * @param string $category + * The crawl error category, for example 'authPermissions' + * @param string $platform + * The user agent type (platform) that made the request, for example 'web' + * @param array $optParams Optional parameters. + * @return Google_Service_Webmasters_UrlCrawlErrorsSample + */ + public function get($siteUrl, $url, $category, $platform, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl, 'url' => $url, 'category' => $category, 'platform' => $platform); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Webmasters_UrlCrawlErrorsSample"); + } + /** + * Lists a site's sample URLs for the specified crawl error category and + * platform. (urlcrawlerrorssamples.listUrlcrawlerrorssamples) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param string $category + * The crawl error category, for example 'authPermissions' + * @param string $platform + * The user agent type (platform) that made the request, for example 'web' + * @param array $optParams Optional parameters. + * @return Google_Service_Webmasters_UrlCrawlErrorsSamplesListResponse + */ + public function listUrlcrawlerrorssamples($siteUrl, $category, $platform, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl, 'category' => $category, 'platform' => $platform); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Webmasters_UrlCrawlErrorsSamplesListResponse"); + } + /** + * Marks the provided site's sample URL as fixed, and removes it from the + * samples list. (urlcrawlerrorssamples.markAsFixed) + * + * @param string $siteUrl + * The site's URL, including protocol, for example 'http://www.example.com/' + * @param string $url + * The relative path (without the site) of the sample URL; must be one of the URLs returned by list + * @param string $category + * The crawl error category, for example 'authPermissions' + * @param string $platform + * The user agent type (platform) that made the request, for example 'web' + * @param array $optParams Optional parameters. + */ + public function markAsFixed($siteUrl, $url, $category, $platform, $optParams = array()) + { + $params = array('siteUrl' => $siteUrl, 'url' => $url, 'category' => $category, 'platform' => $platform); + $params = array_merge($params, $optParams); + return $this->call('markAsFixed', array($params)); + } +} + + + + +class Google_Service_Webmasters_SitemapsListResponse extends Google_Collection +{ + protected $collection_key = 'sitemap'; + protected $internal_gapi_mappings = array( + ); + protected $sitemapType = 'Google_Service_Webmasters_WmxSitemap'; + protected $sitemapDataType = 'array'; + + public function setSitemap($sitemap) + { + $this->sitemap = $sitemap; + } + + public function getSitemap() + { + return $this->sitemap; + } +} + +class Google_Service_Webmasters_SitesListResponse extends Google_Collection +{ + protected $collection_key = 'siteEntry'; + protected $internal_gapi_mappings = array( + ); + protected $siteEntryType = 'Google_Service_Webmasters_WmxSite'; + protected $siteEntryDataType = 'array'; + + public function setSiteEntry($siteEntry) + { + $this->siteEntry = $siteEntry; + } + + public function getSiteEntry() + { + return $this->siteEntry; + } +} + +class Google_Service_Webmasters_UrlCrawlErrorCount extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $count; + public $timestamp; + + public function setCount($count) + { + $this->count = $count; + } + + public function getCount() + { + return $this->count; + } + + public function setTimestamp($timestamp) + { + $this->timestamp = $timestamp; + } + + public function getTimestamp() + { + return $this->timestamp; + } +} + +class Google_Service_Webmasters_UrlCrawlErrorCountsPerType extends Google_Collection +{ + protected $collection_key = 'entries'; + protected $internal_gapi_mappings = array( + ); + public $category; + protected $entriesType = 'Google_Service_Webmasters_UrlCrawlErrorCount'; + protected $entriesDataType = 'array'; + public $platform; + + public function setCategory($category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setEntries($entries) + { + $this->entries = $entries; + } + + public function getEntries() + { + return $this->entries; + } + + public function setPlatform($platform) + { + $this->platform = $platform; + } + + public function getPlatform() + { + return $this->platform; + } +} + +class Google_Service_Webmasters_UrlCrawlErrorsCountsQueryResponse extends Google_Collection +{ + protected $collection_key = 'countPerTypes'; + protected $internal_gapi_mappings = array( + ); + protected $countPerTypesType = 'Google_Service_Webmasters_UrlCrawlErrorCountsPerType'; + protected $countPerTypesDataType = 'array'; + + public function setCountPerTypes($countPerTypes) + { + $this->countPerTypes = $countPerTypes; + } + + public function getCountPerTypes() + { + return $this->countPerTypes; + } +} + +class Google_Service_Webmasters_UrlCrawlErrorsSample extends Google_Model +{ + protected $internal_gapi_mappings = array( + "firstDetected" => "first_detected", + "lastCrawled" => "last_crawled", + ); + public $firstDetected; + public $lastCrawled; + public $pageUrl; + public $responseCode; + protected $urlDetailsType = 'Google_Service_Webmasters_UrlSampleDetails'; + protected $urlDetailsDataType = ''; + + public function setFirstDetected($firstDetected) + { + $this->firstDetected = $firstDetected; + } + + public function getFirstDetected() + { + return $this->firstDetected; + } + + public function setLastCrawled($lastCrawled) + { + $this->lastCrawled = $lastCrawled; + } + + public function getLastCrawled() + { + return $this->lastCrawled; + } + + public function setPageUrl($pageUrl) + { + $this->pageUrl = $pageUrl; + } + + public function getPageUrl() + { + return $this->pageUrl; + } + + public function setResponseCode($responseCode) + { + $this->responseCode = $responseCode; + } + + public function getResponseCode() + { + return $this->responseCode; + } + + public function setUrlDetails(Google_Service_Webmasters_UrlSampleDetails $urlDetails) + { + $this->urlDetails = $urlDetails; + } + + public function getUrlDetails() + { + return $this->urlDetails; + } +} + +class Google_Service_Webmasters_UrlCrawlErrorsSamplesListResponse extends Google_Collection +{ + protected $collection_key = 'urlCrawlErrorSample'; + protected $internal_gapi_mappings = array( + ); + protected $urlCrawlErrorSampleType = 'Google_Service_Webmasters_UrlCrawlErrorsSample'; + protected $urlCrawlErrorSampleDataType = 'array'; + + public function setUrlCrawlErrorSample($urlCrawlErrorSample) + { + $this->urlCrawlErrorSample = $urlCrawlErrorSample; + } + + public function getUrlCrawlErrorSample() + { + return $this->urlCrawlErrorSample; + } +} + +class Google_Service_Webmasters_UrlSampleDetails extends Google_Collection +{ + protected $collection_key = 'linkedFromUrls'; + protected $internal_gapi_mappings = array( + ); + public $containingSitemaps; + public $linkedFromUrls; + + public function setContainingSitemaps($containingSitemaps) + { + $this->containingSitemaps = $containingSitemaps; + } + + public function getContainingSitemaps() + { + return $this->containingSitemaps; + } + + public function setLinkedFromUrls($linkedFromUrls) + { + $this->linkedFromUrls = $linkedFromUrls; + } + + public function getLinkedFromUrls() + { + return $this->linkedFromUrls; + } +} + +class Google_Service_Webmasters_WmxSite extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $permissionLevel; + public $siteUrl; + + public function setPermissionLevel($permissionLevel) + { + $this->permissionLevel = $permissionLevel; + } + + public function getPermissionLevel() + { + return $this->permissionLevel; + } + + public function setSiteUrl($siteUrl) + { + $this->siteUrl = $siteUrl; + } + + public function getSiteUrl() + { + return $this->siteUrl; + } +} + +class Google_Service_Webmasters_WmxSitemap extends Google_Collection +{ + protected $collection_key = 'contents'; + protected $internal_gapi_mappings = array( + ); + protected $contentsType = 'Google_Service_Webmasters_WmxSitemapContent'; + protected $contentsDataType = 'array'; + public $errors; + public $isPending; + public $isSitemapsIndex; + public $lastDownloaded; + public $lastSubmitted; + public $path; + public $type; + public $warnings; + + public function setContents($contents) + { + $this->contents = $contents; + } + + public function getContents() + { + return $this->contents; + } + + public function setErrors($errors) + { + $this->errors = $errors; + } + + public function getErrors() + { + return $this->errors; + } + + public function setIsPending($isPending) + { + $this->isPending = $isPending; + } + + public function getIsPending() + { + return $this->isPending; + } + + public function setIsSitemapsIndex($isSitemapsIndex) + { + $this->isSitemapsIndex = $isSitemapsIndex; + } + + public function getIsSitemapsIndex() + { + return $this->isSitemapsIndex; + } + + public function setLastDownloaded($lastDownloaded) + { + $this->lastDownloaded = $lastDownloaded; + } + + public function getLastDownloaded() + { + return $this->lastDownloaded; + } + + public function setLastSubmitted($lastSubmitted) + { + $this->lastSubmitted = $lastSubmitted; + } + + public function getLastSubmitted() + { + return $this->lastSubmitted; + } + + public function setPath($path) + { + $this->path = $path; + } + + public function getPath() + { + return $this->path; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setWarnings($warnings) + { + $this->warnings = $warnings; + } + + public function getWarnings() + { + return $this->warnings; + } +} + +class Google_Service_Webmasters_WmxSitemapContent extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $indexed; + public $submitted; + public $type; + + public function setIndexed($indexed) + { + $this->indexed = $indexed; + } + + public function getIndexed() + { + return $this->indexed; + } + + public function setSubmitted($submitted) + { + $this->submitted = $submitted; + } + + public function getSubmitted() + { + return $this->submitted; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/YouTube.php b/vendor/google/apiclient/src/Google/Service/YouTube.php new file mode 100644 index 0000000..63ca442 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/YouTube.php @@ -0,0 +1,11259 @@ + + * Programmatic access to YouTube features. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_YouTube extends Google_Service +{ + /** Manage your YouTube account. */ + const YOUTUBE = "https://www.googleapis.com/auth/youtube"; + /** View your YouTube account. */ + const YOUTUBE_READONLY = "https://www.googleapis.com/auth/youtube.readonly"; + /** Manage your YouTube videos. */ + const YOUTUBE_UPLOAD = "https://www.googleapis.com/auth/youtube.upload"; + /** View and manage your assets and associated content on YouTube. */ + const YOUTUBEPARTNER = "https://www.googleapis.com/auth/youtubepartner"; + /** View private information of your YouTube channel relevant during the audit process with a YouTube partner. */ + const YOUTUBEPARTNER_CHANNEL_AUDIT = "https://www.googleapis.com/auth/youtubepartner-channel-audit"; + + public $activities; + public $channelBanners; + public $channelSections; + public $channels; + public $guideCategories; + public $i18nLanguages; + public $i18nRegions; + public $liveBroadcasts; + public $liveStreams; + public $playlistItems; + public $playlists; + public $search; + public $subscriptions; + public $thumbnails; + public $videoCategories; + public $videos; + public $watermarks; + + + /** + * Constructs the internal representation of the YouTube service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'youtube/v3/'; + $this->version = 'v3'; + $this->serviceName = 'youtube'; + + $this->activities = new Google_Service_YouTube_Activities_Resource( + $this, + $this->serviceName, + 'activities', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'activities', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'activities', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'regionCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'publishedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'home' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'publishedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->channelBanners = new Google_Service_YouTube_ChannelBanners_Resource( + $this, + $this->serviceName, + 'channelBanners', + array( + 'methods' => array( + 'insert' => array( + 'path' => 'channelBanners/insert', + 'httpMethod' => 'POST', + 'parameters' => array( + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->channelSections = new Google_Service_YouTube_ChannelSections_Resource( + $this, + $this->serviceName, + 'channelSections', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'channelSections', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'channelSections', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'channelSections', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'channelSections', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_YouTube_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'list' => array( + 'path' => 'channels', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'managedByMe' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'forUsername' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mySubscribers' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'categoryId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'channels', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->guideCategories = new Google_Service_YouTube_GuideCategories_Resource( + $this, + $this->serviceName, + 'guideCategories', + array( + 'methods' => array( + 'list' => array( + 'path' => 'guideCategories', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'regionCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->i18nLanguages = new Google_Service_YouTube_I18nLanguages_Resource( + $this, + $this->serviceName, + 'i18nLanguages', + array( + 'methods' => array( + 'list' => array( + 'path' => 'i18nLanguages', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->i18nRegions = new Google_Service_YouTube_I18nRegions_Resource( + $this, + $this->serviceName, + 'i18nRegions', + array( + 'methods' => array( + 'list' => array( + 'path' => 'i18nRegions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->liveBroadcasts = new Google_Service_YouTube_LiveBroadcasts_Resource( + $this, + $this->serviceName, + 'liveBroadcasts', + array( + 'methods' => array( + 'bind' => array( + 'path' => 'liveBroadcasts/bind', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'streamId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'control' => array( + 'path' => 'liveBroadcasts/control', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'displaySlate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'offsetTimeMs' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'walltime' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'delete' => array( + 'path' => 'liveBroadcasts', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'liveBroadcasts', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'liveBroadcasts', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'broadcastStatus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'transition' => array( + 'path' => 'liveBroadcasts/transition', + 'httpMethod' => 'POST', + 'parameters' => array( + 'broadcastStatus' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'liveBroadcasts', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->liveStreams = new Google_Service_YouTube_LiveStreams_Resource( + $this, + $this->serviceName, + 'liveStreams', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'liveStreams', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'liveStreams', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'liveStreams', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'liveStreams', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->playlistItems = new Google_Service_YouTube_PlaylistItems_Resource( + $this, + $this->serviceName, + 'playlistItems', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'playlistItems', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'playlistItems', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'playlistItems', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'playlistId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'playlistItems', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->playlists = new Google_Service_YouTube_Playlists_Resource( + $this, + $this->serviceName, + 'playlists', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'playlists', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'playlists', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'playlists', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'playlists', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->search = new Google_Service_YouTube_Search_Resource( + $this, + $this->serviceName, + 'search', + array( + 'methods' => array( + 'list' => array( + 'path' => 'search', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'eventType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoSyndicated' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'channelType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoCaption' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'publishedAfter' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'forContentOwner' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'regionCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'location' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'locationRadius' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoType' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'type' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'topicId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'publishedBefore' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoDimension' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoLicense' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'relatedToVideoId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoDefinition' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoDuration' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'forMine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'safeSearch' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoEmbeddable' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoCategoryId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'order' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->subscriptions = new Google_Service_YouTube_Subscriptions_Resource( + $this, + $this->serviceName, + 'subscriptions', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'subscriptions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mine' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'forChannelId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'mySubscribers' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'order' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->thumbnails = new Google_Service_YouTube_Thumbnails_Resource( + $this, + $this->serviceName, + 'thumbnails', + array( + 'methods' => array( + 'set' => array( + 'path' => 'thumbnails/set', + 'httpMethod' => 'POST', + 'parameters' => array( + 'videoId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->videoCategories = new Google_Service_YouTube_VideoCategories_Resource( + $this, + $this->serviceName, + 'videoCategories', + array( + 'methods' => array( + 'list' => array( + 'path' => 'videoCategories', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'regionCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'hl' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->videos = new Google_Service_YouTube_Videos_Resource( + $this, + $this->serviceName, + 'videos', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'videos', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'getRating' => array( + 'path' => 'videos/getRating', + 'httpMethod' => 'GET', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'videos', + 'httpMethod' => 'POST', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'stabilize' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'onBehalfOfContentOwnerChannel' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'notifySubscribers' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'autoLevels' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'videos', + 'httpMethod' => 'GET', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'regionCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'locale' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'videoCategoryId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'chart' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'myRating' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'id' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'rate' => array( + 'path' => 'videos/rate', + 'httpMethod' => 'POST', + 'parameters' => array( + 'id' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'rating' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'videos', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'part' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->watermarks = new Google_Service_YouTube_Watermarks_Resource( + $this, + $this->serviceName, + 'watermarks', + array( + 'methods' => array( + 'set' => array( + 'path' => 'watermarks/set', + 'httpMethod' => 'POST', + 'parameters' => array( + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'unset' => array( + 'path' => 'watermarks/unset', + 'httpMethod' => 'POST', + 'parameters' => array( + 'channelId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "activities" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $activities = $youtubeService->activities; + * + */ +class Google_Service_YouTube_Activities_Resource extends Google_Service_Resource +{ + + /** + * Posts a bulletin for a specific channel. (The user submitting the request + * must be authorized to act on the channel's behalf.) + * + * Note: Even though an activity resource can contain information about actions + * like a user rating a video or marking a video as a favorite, you need to use + * other API methods to generate those activity resources. For example, you + * would use the API's videos.rate() method to rate a video and the + * playlistItems.insert() method to mark a video as a favorite. + * (activities.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet and contentDetails. + * @param Google_Activity $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_YouTube_Activity + */ + public function insert($part, Google_Service_YouTube_Activity $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_Activity"); + } + /** + * Returns a list of channel activity events that match the request criteria. + * For example, you can retrieve events associated with a particular channel, + * events associated with the user's subscriptions and Google+ friends, or the + * YouTube home page feed, which is customized for each user. + * (activities.listActivities) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more activity resource properties + * that the API response will include. The part names that you can include in the parameter value + * are id, snippet, and contentDetails. + If the parameter identifies a property that contains child + * properties, the child properties will be included in the response. For example, in a activity + * resource, the snippet property contains other properties that identify the type of activity, a + * display title for the activity, and so forth. If you set part=snippet, the API response will + * also contain all of those nested properties. + * @param array $optParams Optional parameters. + * + * @opt_param string regionCode + * The regionCode parameter instructs the API to return results for the specified country. The + * parameter value is an ISO 3166-1 alpha-2 country code. YouTube uses this value when the + * authorized user's previous activity on YouTube does not provide enough information to generate + * the activity feed. + * @opt_param string publishedBefore + * The publishedBefore parameter specifies the date and time before which an activity must have + * occurred for that activity to be included in the API response. If the parameter value specifies + * a day, but not a time, then any activities that occurred that day will be excluded from the + * result set. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. + * @opt_param string channelId + * The channelId parameter specifies a unique YouTube channel ID. The API will then return a list + * of that channel's activities. + * @opt_param bool mine + * Set this parameter's value to true to retrieve a feed of the authenticated user's activities. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param bool home + * Set this parameter's value to true to retrieve the activity feed that displays on the YouTube + * home page for the currently authenticated user. + * @opt_param string publishedAfter + * The publishedAfter parameter specifies the earliest date and time that an activity could have + * occurred for that activity to be included in the API response. If the parameter value specifies + * a day, but not a time, then any activities that occurred that day will be included in the result + * set. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. + * @return Google_Service_YouTube_ActivityListResponse + */ + public function listActivities($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_ActivityListResponse"); + } +} + +/** + * The "channelBanners" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $channelBanners = $youtubeService->channelBanners; + * + */ +class Google_Service_YouTube_ChannelBanners_Resource extends Google_Service_Resource +{ + + /** + * Uploads a channel banner image to YouTube. This method represents the first + * two steps in a three-step process to update the banner image for a channel: + * + * - Call the channelBanners.insert method to upload the binary image data to + * YouTube. The image must have a 16:9 aspect ratio and be at least 2120x1192 + * pixels. - Extract the url property's value from the response that the API + * returns for step 1. - Call the channels.update method to update the channel's + * branding settings. Set the brandingSettings.image.bannerExternalUrl + * property's value to the URL obtained in step 2. (channelBanners.insert) + * + * @param Google_ChannelBannerResource $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_ChannelBannerResource + */ + public function insert(Google_Service_YouTube_ChannelBannerResource $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_ChannelBannerResource"); + } +} + +/** + * The "channelSections" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $channelSections = $youtubeService->channelSections; + * + */ +class Google_Service_YouTube_ChannelSections_Resource extends Google_Service_Resource +{ + + /** + * Deletes a channelSection. (channelSections.delete) + * + * @param string $id + * The id parameter specifies the YouTube channelSection ID for the resource that is being deleted. + * In a channelSection resource, the id property specifies the YouTube channelSection ID. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a channelSection for the authenticated user's channel. + * (channelSections.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet and contentDetails. + * @param Google_ChannelSection $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_ChannelSection + */ + public function insert($part, Google_Service_YouTube_ChannelSection $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_ChannelSection"); + } + /** + * Returns channelSection resources that match the API request criteria. + * (channelSections.listChannelSections) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more channelSection resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, and contentDetails. + If the parameter identifies a property + * that contains child properties, the child properties will be included in the response. For + * example, in a channelSection resource, the snippet property contains other properties, such as a + * display title for the channelSection. If you set part=snippet, the API response will also + * contain all of those nested properties. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string channelId + * The channelId parameter specifies a YouTube channel ID. The API will only return that channel's + * channelSections. + * @opt_param string id + * The id parameter specifies a comma-separated list of the YouTube channelSection ID(s) for the + * resource(s) that are being retrieved. In a channelSection resource, the id property specifies + * the YouTube channelSection ID. + * @opt_param bool mine + * Set this parameter's value to true to retrieve a feed of the authenticated user's + * channelSections. + * @return Google_Service_YouTube_ChannelSectionListResponse + */ + public function listChannelSections($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_ChannelSectionListResponse"); + } + /** + * Update a channelSection. (channelSections.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet and contentDetails. + * @param Google_ChannelSection $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_YouTube_ChannelSection + */ + public function update($part, Google_Service_YouTube_ChannelSection $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_ChannelSection"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $channels = $youtubeService->channels; + * + */ +class Google_Service_YouTube_Channels_Resource extends Google_Service_Resource +{ + + /** + * Returns a collection of zero or more channel resources that match the request + * criteria. (channels.listChannels) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more channel resource properties + * that the API response will include. The part names that you can include in the parameter value + * are id, snippet, contentDetails, statistics, topicDetails, and invideoPromotion. + If the + * parameter identifies a property that contains child properties, the child properties will be + * included in the response. For example, in a channel resource, the contentDetails property + * contains other properties, such as the uploads properties. As such, if you set + * part=contentDetails, the API response will also contain all of those nested properties. + * @param array $optParams Optional parameters. + * + * @opt_param bool managedByMe + * Set this parameter's value to true to instruct the API to only return channels managed by the + * content owner that the onBehalfOfContentOwner parameter specifies. The user must be + * authenticated as a CMS account linked to the specified content owner and onBehalfOfContentOwner + * must be provided. + * @opt_param string onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter indicates that the authenticated user is acting on behalf + * of the content owner specified in the parameter value. This parameter is intended for YouTube + * content partners that own and manage many different YouTube channels. It allows content owners + * to authenticate once and get access to all their video and channel data, without having to + * provide authentication credentials for each individual channel. The actual CMS account that the + * user authenticates with needs to be linked to the specified YouTube content owner. + * @opt_param string forUsername + * The forUsername parameter specifies a YouTube username, thereby requesting the channel + * associated with that username. + * @opt_param bool mine + * Set this parameter's value to true to instruct the API to only return channels owned by the + * authenticated user. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string id + * The id parameter specifies a comma-separated list of the YouTube channel ID(s) for the + * resource(s) that are being retrieved. In a channel resource, the id property specifies the + * channel's YouTube channel ID. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param bool mySubscribers + * Set this parameter's value to true to retrieve a list of channels that subscribed to the + * authenticated user's channel. + * @opt_param string categoryId + * The categoryId parameter specifies a YouTube guide category, thereby requesting YouTube channels + * associated with that category. + * @return Google_Service_YouTube_ChannelListResponse + */ + public function listChannels($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_ChannelListResponse"); + } + /** + * Updates a channel's metadata. (channels.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are id and invideoPromotion. + Note that this + * method will override the existing values for all of the mutable properties that are contained in + * any parts that the parameter value specifies. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter indicates that the authenticated user is acting on behalf + * of the content owner specified in the parameter value. This parameter is intended for YouTube + * content partners that own and manage many different YouTube channels. It allows content owners + * to authenticate once and get access to all their video and channel data, without having to + * provide authentication credentials for each individual channel. The actual CMS account that the + * user authenticates with needs to be linked to the specified YouTube content owner. + * @return Google_Service_YouTube_Channel + */ + public function update($part, Google_Service_YouTube_Channel $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_Channel"); + } +} + +/** + * The "guideCategories" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $guideCategories = $youtubeService->guideCategories; + * + */ +class Google_Service_YouTube_GuideCategories_Resource extends Google_Service_Resource +{ + + /** + * Returns a list of categories that can be associated with YouTube channels. + * (guideCategories.listGuideCategories) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more guideCategory resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id and snippet. + If the parameter identifies a property that contains child + * properties, the child properties will be included in the response. For example, in a + * guideCategory resource, the snippet property contains other properties, such as the category's + * title. If you set part=snippet, the API response will also contain all of those nested + * properties. + * @param array $optParams Optional parameters. + * + * @opt_param string regionCode + * The regionCode parameter instructs the API to return the list of guide categories available in + * the specified country. The parameter value is an ISO 3166-1 alpha-2 country code. + * @opt_param string id + * The id parameter specifies a comma-separated list of the YouTube channel category ID(s) for the + * resource(s) that are being retrieved. In a guideCategory resource, the id property specifies the + * YouTube channel category ID. + * @opt_param string hl + * The hl parameter specifies the language that will be used for text values in the API response. + * @return Google_Service_YouTube_GuideCategoryListResponse + */ + public function listGuideCategories($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_GuideCategoryListResponse"); + } +} + +/** + * The "i18nLanguages" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $i18nLanguages = $youtubeService->i18nLanguages; + * + */ +class Google_Service_YouTube_I18nLanguages_Resource extends Google_Service_Resource +{ + + /** + * Returns a list of supported languages. (i18nLanguages.listI18nLanguages) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more i18nLanguage resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id and snippet. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * The hl parameter specifies the language that should be used for text values in the API response. + * @return Google_Service_YouTube_I18nLanguageListResponse + */ + public function listI18nLanguages($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_I18nLanguageListResponse"); + } +} + +/** + * The "i18nRegions" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $i18nRegions = $youtubeService->i18nRegions; + * + */ +class Google_Service_YouTube_I18nRegions_Resource extends Google_Service_Resource +{ + + /** + * Returns a list of supported regions. (i18nRegions.listI18nRegions) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more i18nRegion resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id and snippet. + * @param array $optParams Optional parameters. + * + * @opt_param string hl + * The hl parameter specifies the language that should be used for text values in the API response. + * @return Google_Service_YouTube_I18nRegionListResponse + */ + public function listI18nRegions($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_I18nRegionListResponse"); + } +} + +/** + * The "liveBroadcasts" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $liveBroadcasts = $youtubeService->liveBroadcasts; + * + */ +class Google_Service_YouTube_LiveBroadcasts_Resource extends Google_Service_Resource +{ + + /** + * Binds a YouTube broadcast to a stream or removes an existing binding between + * a broadcast and a stream. A broadcast can only be bound to one video stream. + * (liveBroadcasts.bind) + * + * @param string $id + * The id parameter specifies the unique ID of the broadcast that is being bound to a video stream. + * @param string $part + * The part parameter specifies a comma-separated list of one or more liveBroadcast resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, contentDetails, and status. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string streamId + * The streamId parameter specifies the unique ID of the video stream that is being bound to a + * broadcast. If this parameter is omitted, the API will remove any existing binding between the + * broadcast and a video stream. + * @return Google_Service_YouTube_LiveBroadcast + */ + public function bind($id, $part, $optParams = array()) + { + $params = array('id' => $id, 'part' => $part); + $params = array_merge($params, $optParams); + return $this->call('bind', array($params), "Google_Service_YouTube_LiveBroadcast"); + } + /** + * Controls the settings for a slate that can be displayed in the broadcast + * stream. (liveBroadcasts.control) + * + * @param string $id + * The id parameter specifies the YouTube live broadcast ID that uniquely identifies the broadcast + * in which the slate is being updated. + * @param string $part + * The part parameter specifies a comma-separated list of one or more liveBroadcast resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, contentDetails, and status. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param bool displaySlate + * The displaySlate parameter specifies whether the slate is being enabled or disabled. + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string offsetTimeMs + * The offsetTimeMs parameter specifies a positive time offset when the specified slate change will + * occur. The value is measured in milliseconds from the beginning of the broadcast's monitor + * stream, which is the time that the testing phase for the broadcast began. Even though it is + * specified in milliseconds, the value is actually an approximation, and YouTube completes the + * requested action as closely as possible to that time. + If you do not specify a value for this + * parameter, then YouTube performs the action as soon as possible. See the Getting started guide + * for more details. + Important: You should only specify a value for this parameter if your + * broadcast stream is delayed. + * @opt_param string walltime + * The walltime parameter specifies the wall clock time at which the specified slate change will + * occur. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format. + * @return Google_Service_YouTube_LiveBroadcast + */ + public function control($id, $part, $optParams = array()) + { + $params = array('id' => $id, 'part' => $part); + $params = array_merge($params, $optParams); + return $this->call('control', array($params), "Google_Service_YouTube_LiveBroadcast"); + } + /** + * Deletes a broadcast. (liveBroadcasts.delete) + * + * @param string $id + * The id parameter specifies the YouTube live broadcast ID for the resource that is being deleted. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Creates a broadcast. (liveBroadcasts.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * properties that you can include in the parameter value are id, snippet, contentDetails, and + * status. + * @param Google_LiveBroadcast $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_LiveBroadcast + */ + public function insert($part, Google_Service_YouTube_LiveBroadcast $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_LiveBroadcast"); + } + /** + * Returns a list of YouTube broadcasts that match the API request parameters. + * (liveBroadcasts.listLiveBroadcasts) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more liveBroadcast resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, contentDetails, and status. + * @param array $optParams Optional parameters. + * + * @opt_param string broadcastStatus + * The broadcastStatus parameter filters the API response to only include broadcasts with the + * specified status. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param bool mine + * The mine parameter can be used to instruct the API to only return broadcasts owned by the + * authenticated user. Set the parameter value to true to only retrieve your own broadcasts. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param string id + * The id parameter specifies a comma-separated list of YouTube broadcast IDs that identify the + * broadcasts being retrieved. In a liveBroadcast resource, the id property specifies the + * broadcast's ID. + * @return Google_Service_YouTube_LiveBroadcastListResponse + */ + public function listLiveBroadcasts($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_LiveBroadcastListResponse"); + } + /** + * Changes the status of a YouTube live broadcast and initiates any processes + * associated with the new status. For example, when you transition a + * broadcast's status to testing, YouTube starts to transmit video to that + * broadcast's monitor stream. Before calling this method, you should confirm + * that the value of the status.streamStatus property for the stream bound to + * your broadcast is active. (liveBroadcasts.transition) + * + * @param string $broadcastStatus + * The broadcastStatus parameter identifies the state to which the broadcast is changing. Note that + * to transition a broadcast to either the testing or live state, the status.streamStatus must be + * active for the stream that the broadcast is bound to. + * @param string $id + * The id parameter specifies the unique ID of the broadcast that is transitioning to another + * status. + * @param string $part + * The part parameter specifies a comma-separated list of one or more liveBroadcast resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, contentDetails, and status. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_LiveBroadcast + */ + public function transition($broadcastStatus, $id, $part, $optParams = array()) + { + $params = array('broadcastStatus' => $broadcastStatus, 'id' => $id, 'part' => $part); + $params = array_merge($params, $optParams); + return $this->call('transition', array($params), "Google_Service_YouTube_LiveBroadcast"); + } + /** + * Updates a broadcast. For example, you could modify the broadcast settings + * defined in the liveBroadcast resource's contentDetails object. + * (liveBroadcasts.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * properties that you can include in the parameter value are id, snippet, contentDetails, and + * status. + Note that this method will override the existing values for all of the mutable + * properties that are contained in any parts that the parameter value specifies. For example, a + * broadcast's privacy status is defined in the status part. As such, if your request is updating a + * private or unlisted broadcast, and the request's part parameter value includes the status part, + * the broadcast's privacy setting will be updated to whatever value the request body specifies. If + * the request body does not specify a value, the existing privacy setting will be removed and the + * broadcast will revert to the default privacy setting. + * @param Google_LiveBroadcast $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_LiveBroadcast + */ + public function update($part, Google_Service_YouTube_LiveBroadcast $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_LiveBroadcast"); + } +} + +/** + * The "liveStreams" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $liveStreams = $youtubeService->liveStreams; + * + */ +class Google_Service_YouTube_LiveStreams_Resource extends Google_Service_Resource +{ + + /** + * Deletes a video stream. (liveStreams.delete) + * + * @param string $id + * The id parameter specifies the YouTube live stream ID for the resource that is being deleted. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Creates a video stream. The stream enables you to send your video to YouTube, + * which can then broadcast the video to your audience. (liveStreams.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * properties that you can include in the parameter value are id, snippet, cdn, and status. + * @param Google_LiveStream $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_LiveStream + */ + public function insert($part, Google_Service_YouTube_LiveStream $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_LiveStream"); + } + /** + * Returns a list of video streams that match the API request parameters. + * (liveStreams.listLiveStreams) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more liveStream resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, cdn, and status. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param bool mine + * The mine parameter can be used to instruct the API to only return streams owned by the + * authenticated user. Set the parameter value to true to only retrieve your own streams. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. Acceptable values are 0 to 50, inclusive. The default value is 5. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param string id + * The id parameter specifies a comma-separated list of YouTube stream IDs that identify the + * streams being retrieved. In a liveStream resource, the id property specifies the stream's ID. + * @return Google_Service_YouTube_LiveStreamListResponse + */ + public function listLiveStreams($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_LiveStreamListResponse"); + } + /** + * Updates a video stream. If the properties that you want to change cannot be + * updated, then you need to create a new stream with the proper settings. + * (liveStreams.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * properties that you can include in the parameter value are id, snippet, cdn, and status. + Note + * that this method will override the existing values for all of the mutable properties that are + * contained in any parts that the parameter value specifies. If the request body does not specify + * a value for a mutable property, the existing value for that property will be removed. + * @param Google_LiveStream $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_LiveStream + */ + public function update($part, Google_Service_YouTube_LiveStream $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_LiveStream"); + } +} + +/** + * The "playlistItems" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $playlistItems = $youtubeService->playlistItems; + * + */ +class Google_Service_YouTube_PlaylistItems_Resource extends Google_Service_Resource +{ + + /** + * Deletes a playlist item. (playlistItems.delete) + * + * @param string $id + * The id parameter specifies the YouTube playlist item ID for the playlist item that is being + * deleted. In a playlistItem resource, the id property specifies the playlist item's ID. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a resource to a playlist. (playlistItems.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet, contentDetails, and status. + * @param Google_PlaylistItem $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_PlaylistItem + */ + public function insert($part, Google_Service_YouTube_PlaylistItem $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_PlaylistItem"); + } + /** + * Returns a collection of playlist items that match the API request parameters. + * You can retrieve all of the playlist items in a specified playlist or + * retrieve one or more playlist items by their unique IDs. + * (playlistItems.listPlaylistItems) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more playlistItem resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, contentDetails, and status. + If the parameter identifies a + * property that contains child properties, the child properties will be included in the response. + * For example, in a playlistItem resource, the snippet property contains numerous fields, + * including the title, description, position, and resourceId properties. As such, if you set + * part=snippet, the API response will contain all of those properties. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string playlistId + * The playlistId parameter specifies the unique ID of the playlist for which you want to retrieve + * playlist items. Note that even though this is an optional parameter, every request to retrieve + * playlist items must specify a value for either the id parameter or the playlistId parameter. + * @opt_param string videoId + * The videoId parameter specifies that the request should return only the playlist items that + * contain the specified video. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param string id + * The id parameter specifies a comma-separated list of one or more unique playlist item IDs. + * @return Google_Service_YouTube_PlaylistItemListResponse + */ + public function listPlaylistItems($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_PlaylistItemListResponse"); + } + /** + * Modifies a playlist item. For example, you could update the item's position + * in the playlist. (playlistItems.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet, contentDetails, and status. + Note + * that this method will override the existing values for all of the mutable properties that are + * contained in any parts that the parameter value specifies. For example, a playlist item can + * specify a start time and end time, which identify the times portion of the video that should + * play when users watch the video in the playlist. If your request is updating a playlist item + * that sets these values, and the request's part parameter value includes the contentDetails part, + * the playlist item's start and end times will be updated to whatever value the request body + * specifies. If the request body does not specify values, the existing start and end times will be + * removed and replaced with the default settings. + * @param Google_PlaylistItem $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_YouTube_PlaylistItem + */ + public function update($part, Google_Service_YouTube_PlaylistItem $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_PlaylistItem"); + } +} + +/** + * The "playlists" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $playlists = $youtubeService->playlists; + * + */ +class Google_Service_YouTube_Playlists_Resource extends Google_Service_Resource +{ + + /** + * Deletes a playlist. (playlists.delete) + * + * @param string $id + * The id parameter specifies the YouTube playlist ID for the playlist that is being deleted. In a + * playlist resource, the id property specifies the playlist's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Creates a playlist. (playlists.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet and status. + * @param Google_Playlist $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_Playlist + */ + public function insert($part, Google_Service_YouTube_Playlist $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_Playlist"); + } + /** + * Returns a collection of playlists that match the API request parameters. For + * example, you can retrieve all playlists that the authenticated user owns, or + * you can retrieve one or more playlists by their unique IDs. + * (playlists.listPlaylists) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more playlist resource properties + * that the API response will include. The part names that you can include in the parameter value + * are id, snippet, status, and contentDetails. + If the parameter identifies a property that + * contains child properties, the child properties will be included in the response. For example, + * in a playlist resource, the snippet property contains properties like author, title, + * description, tags, and timeCreated. As such, if you set part=snippet, the API response will + * contain all of those properties. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string channelId + * This value indicates that the API should only return the specified channel's playlists. + * @opt_param bool mine + * Set this parameter's value to true to instruct the API to only return playlists owned by the + * authenticated user. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param string id + * The id parameter specifies a comma-separated list of the YouTube playlist ID(s) for the + * resource(s) that are being retrieved. In a playlist resource, the id property specifies the + * playlist's YouTube playlist ID. + * @return Google_Service_YouTube_PlaylistListResponse + */ + public function listPlaylists($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_PlaylistListResponse"); + } + /** + * Modifies a playlist. For example, you could change a playlist's title, + * description, or privacy status. (playlists.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet and status. + Note that this method + * will override the existing values for all of the mutable properties that are contained in any + * parts that the parameter value specifies. For example, a playlist's privacy setting is contained + * in the status part. As such, if your request is updating a private playlist, and the request's + * part parameter value includes the status part, the playlist's privacy setting will be updated to + * whatever value the request body specifies. If the request body does not specify a value, the + * existing privacy setting will be removed and the playlist will revert to the default privacy + * setting. + * @param Google_Playlist $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_Playlist + */ + public function update($part, Google_Service_YouTube_Playlist $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_Playlist"); + } +} + +/** + * The "search" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $search = $youtubeService->search; + * + */ +class Google_Service_YouTube_Search_Resource extends Google_Service_Resource +{ + + /** + * Returns a collection of search results that match the query parameters + * specified in the API request. By default, a search result set identifies + * matching video, channel, and playlist resources, but you can also configure + * queries to only retrieve a specific type of resource. (search.listSearch) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more search resource properties + * that the API response will include. The part names that you can include in the parameter value + * are id and snippet. + If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a search result, the snippet + * property contains other properties that identify the result's title, description, and so forth. + * If you set part=snippet, the API response will also contain all of those nested properties. + * @param array $optParams Optional parameters. + * + * @opt_param string eventType + * The eventType parameter restricts a search to broadcast events. + * @opt_param string channelId + * The channelId parameter indicates that the API response should only contain resources created by + * the channel + * @opt_param string videoSyndicated + * The videoSyndicated parameter lets you to restrict a search to only videos that can be played + * outside youtube.com. + * @opt_param string channelType + * The channelType parameter lets you restrict a search to a particular type of channel. + * @opt_param string videoCaption + * The videoCaption parameter indicates whether the API should filter video search results based on + * whether they have captions. + * @opt_param string publishedAfter + * The publishedAfter parameter indicates that the API response should only contain resources + * created after the specified time. The value is an RFC 3339 formatted date-time value + * (1970-01-01T00:00:00Z). + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param bool forContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The forContentOwner + * parameter restricts the search to only retrieve resources owned by the content owner specified + * by the onBehalfOfContentOwner parameter. The user must be authenticated using a CMS account + * linked to the specified content owner and onBehalfOfContentOwner must be provided. + * @opt_param string regionCode + * The regionCode parameter instructs the API to return search results for the specified country. + * The parameter value is an ISO 3166-1 alpha-2 country code. + * @opt_param string location + * The location parameter restricts a search to videos that have a geographical location specified + * in their metadata. The value is a string that specifies geographic latitude/longitude + * coordinates e.g. (37.42307,-122.08427) + * @opt_param string locationRadius + * The locationRadius, in conjunction with the location parameter, defines a geographic area. If + * the geographic coordinates associated with a video fall within that area, then the video may be + * included in search results. This parameter value must be a floating point number followed by a + * measurement unit. Valid measurement units are m, km, ft, and mi. For example, valid parameter + * values include 1500m, 5km, 10000ft, and 0.75mi. The API does not support locationRadius + * parameter values larger than 1000 kilometers. + * @opt_param string videoType + * The videoType parameter lets you restrict a search to a particular type of videos. + * @opt_param string type + * The type parameter restricts a search query to only retrieve a particular type of resource. The + * value is a comma-separated list of resource types. + * @opt_param string topicId + * The topicId parameter indicates that the API response should only contain resources associated + * with the specified topic. The value identifies a Freebase topic ID. + * @opt_param string publishedBefore + * The publishedBefore parameter indicates that the API response should only contain resources + * created before the specified time. The value is an RFC 3339 formatted date-time value + * (1970-01-01T00:00:00Z). + * @opt_param string videoDimension + * The videoDimension parameter lets you restrict a search to only retrieve 2D or 3D videos. + * @opt_param string videoLicense + * The videoLicense parameter filters search results to only include videos with a particular + * license. YouTube lets video uploaders choose to attach either the Creative Commons license or + * the standard YouTube license to each of their videos. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string relatedToVideoId + * The relatedToVideoId parameter retrieves a list of videos that are related to the video that the + * parameter value identifies. The parameter value must be set to a YouTube video ID and, if you + * are using this parameter, the type parameter must be set to video. + * @opt_param string videoDefinition + * The videoDefinition parameter lets you restrict a search to only include either high definition + * (HD) or standard definition (SD) videos. HD videos are available for playback in at least 720p, + * though higher resolutions, like 1080p, might also be available. + * @opt_param string videoDuration + * The videoDuration parameter filters video search results based on their duration. + * @opt_param bool forMine + * The forMine parameter restricts the search to only retrieve videos owned by the authenticated + * user. If you set this parameter to true, then the type parameter's value must also be set to + * video. + * @opt_param string q + * The q parameter specifies the query term to search for. + * @opt_param string safeSearch + * The safeSearch parameter indicates whether the search results should include restricted content + * as well as standard content. + * @opt_param string videoEmbeddable + * The videoEmbeddable parameter lets you to restrict a search to only videos that can be embedded + * into a webpage. + * @opt_param string videoCategoryId + * The videoCategoryId parameter filters video search results based on their category. + * @opt_param string order + * The order parameter specifies the method that will be used to order resources in the API + * response. + * @return Google_Service_YouTube_SearchListResponse + */ + public function listSearch($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_SearchListResponse"); + } +} + +/** + * The "subscriptions" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $subscriptions = $youtubeService->subscriptions; + * + */ +class Google_Service_YouTube_Subscriptions_Resource extends Google_Service_Resource +{ + + /** + * Deletes a subscription. (subscriptions.delete) + * + * @param string $id + * The id parameter specifies the YouTube subscription ID for the resource that is being deleted. + * In a subscription resource, the id property specifies the YouTube subscription ID. + * @param array $optParams Optional parameters. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Adds a subscription for the authenticated user's channel. + * (subscriptions.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet and contentDetails. + * @param Google_Subscription $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_YouTube_Subscription + */ + public function insert($part, Google_Service_YouTube_Subscription $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_Subscription"); + } + /** + * Returns subscription resources that match the API request criteria. + * (subscriptions.listSubscriptions) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more subscription resource + * properties that the API response will include. The part names that you can include in the + * parameter value are id, snippet, and contentDetails. + If the parameter identifies a property + * that contains child properties, the child properties will be included in the response. For + * example, in a subscription resource, the snippet property contains other properties, such as a + * display title for the subscription. If you set part=snippet, the API response will also contain + * all of those nested properties. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param string channelId + * The channelId parameter specifies a YouTube channel ID. The API will only return that channel's + * subscriptions. + * @opt_param bool mine + * Set this parameter's value to true to retrieve a feed of the authenticated user's subscriptions. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + * @opt_param string forChannelId + * The forChannelId parameter specifies a comma-separated list of channel IDs. The API response + * will then only contain subscriptions matching those channels. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + * @opt_param bool mySubscribers + * Set this parameter's value to true to retrieve a feed of the subscribers of the authenticated + * user. + * @opt_param string order + * The order parameter specifies the method that will be used to sort resources in the API + * response. + * @opt_param string id + * The id parameter specifies a comma-separated list of the YouTube subscription ID(s) for the + * resource(s) that are being retrieved. In a subscription resource, the id property specifies the + * YouTube subscription ID. + * @return Google_Service_YouTube_SubscriptionListResponse + */ + public function listSubscriptions($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_SubscriptionListResponse"); + } +} + +/** + * The "thumbnails" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $thumbnails = $youtubeService->thumbnails; + * + */ +class Google_Service_YouTube_Thumbnails_Resource extends Google_Service_Resource +{ + + /** + * Uploads a custom video thumbnail to YouTube and sets it for a video. + * (thumbnails.set) + * + * @param string $videoId + * The videoId parameter specifies a YouTube video ID for which the custom video thumbnail is being + * provided. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter indicates that the authenticated user is acting on behalf + * of the content owner specified in the parameter value. This parameter is intended for YouTube + * content partners that own and manage many different YouTube channels. It allows content owners + * to authenticate once and get access to all their video and channel data, without having to + * provide authentication credentials for each individual channel. The actual CMS account that the + * user authenticates with needs to be linked to the specified YouTube content owner. + * @return Google_Service_YouTube_ThumbnailSetResponse + */ + public function set($videoId, $optParams = array()) + { + $params = array('videoId' => $videoId); + $params = array_merge($params, $optParams); + return $this->call('set', array($params), "Google_Service_YouTube_ThumbnailSetResponse"); + } +} + +/** + * The "videoCategories" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $videoCategories = $youtubeService->videoCategories; + * + */ +class Google_Service_YouTube_VideoCategories_Resource extends Google_Service_Resource +{ + + /** + * Returns a list of categories that can be associated with YouTube videos. + * (videoCategories.listVideoCategories) + * + * @param string $part + * The part parameter specifies the videoCategory resource parts that the API response will + * include. Supported values are id and snippet. + * @param array $optParams Optional parameters. + * + * @opt_param string regionCode + * The regionCode parameter instructs the API to return the list of video categories available in + * the specified country. The parameter value is an ISO 3166-1 alpha-2 country code. + * @opt_param string id + * The id parameter specifies a comma-separated list of video category IDs for the resources that + * you are retrieving. + * @opt_param string hl + * The hl parameter specifies the language that should be used for text values in the API response. + * @return Google_Service_YouTube_VideoCategoryListResponse + */ + public function listVideoCategories($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_VideoCategoryListResponse"); + } +} + +/** + * The "videos" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $videos = $youtubeService->videos; + * + */ +class Google_Service_YouTube_Videos_Resource extends Google_Service_Resource +{ + + /** + * Deletes a YouTube video. (videos.delete) + * + * @param string $id + * The id parameter specifies the YouTube video ID for the resource that is being deleted. In a + * video resource, the id property specifies the video's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The actual CMS account that the user authenticates with must be linked to + * the specified YouTube content owner. + */ + public function delete($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Retrieves the ratings that the authorized user gave to a list of specified + * videos. (videos.getRating) + * + * @param string $id + * The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) + * for which you are retrieving rating data. In a video resource, the id property specifies the + * video's ID. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @return Google_Service_YouTube_VideoGetRatingResponse + */ + public function getRating($id, $optParams = array()) + { + $params = array('id' => $id); + $params = array_merge($params, $optParams); + return $this->call('getRating', array($params), "Google_Service_YouTube_VideoGetRatingResponse"); + } + /** + * Uploads a video to YouTube and optionally sets the video's metadata. + * (videos.insert) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet, contentDetails, fileDetails, + * liveStreamingDetails, player, processingDetails, recordingDetails, statistics, status, + * suggestions, and topicDetails. However, not all of those parts contain properties that can be + * set when setting or updating a video's metadata. For example, the statistics object encapsulates + * statistics that YouTube calculates for a video and does not contain values that you can set or + * modify. If the parameter value specifies a part that does not contain mutable values, that part + * will still be included in the API response. + * @param Google_Video $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param bool stabilize + * The stabilize parameter indicates whether YouTube should adjust the video to remove shaky camera + * motions. + * @opt_param string onBehalfOfContentOwnerChannel + * This parameter can only be used in a properly authorized request. Note: This parameter is + * intended exclusively for YouTube content partners. + The onBehalfOfContentOwnerChannel parameter + * specifies the YouTube channel ID of the channel to which a video is being added. This parameter + * is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it + * can only be used in conjunction with that parameter. In addition, the request must be authorized + * using a CMS account that is linked to the content owner that the onBehalfOfContentOwner + * parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value + * specifies must be linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. + This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and perform actions on + * behalf of the channel specified in the parameter value, without having to provide authentication + * credentials for each separate channel. + * @opt_param bool notifySubscribers + * The notifySubscribers parameter indicates whether YouTube should send notification to + * subscribers about the inserted video. + * @opt_param bool autoLevels + * The autoLevels parameter indicates whether YouTube should automatically enhance the video's + * lighting and color. + * @return Google_Service_YouTube_Video + */ + public function insert($part, Google_Service_YouTube_Video $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_YouTube_Video"); + } + /** + * Returns a list of videos that match the API request parameters. + * (videos.listVideos) + * + * @param string $part + * The part parameter specifies a comma-separated list of one or more video resource properties + * that the API response will include. The part names that you can include in the parameter value + * are id, snippet, contentDetails, fileDetails, liveStreamingDetails, player, processingDetails, + * recordingDetails, statistics, status, suggestions, and topicDetails. + If the parameter + * identifies a property that contains child properties, the child properties will be included in + * the response. For example, in a video resource, the snippet property contains the channelId, + * title, description, tags, and categoryId properties. As such, if you set part=snippet, the API + * response will contain all of those properties. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + * @opt_param string regionCode + * The regionCode parameter instructs the API to select a video chart available in the specified + * region. This parameter can only be used in conjunction with the chart parameter. The parameter + * value is an ISO 3166-1 alpha-2 country code. + * @opt_param string locale + * DEPRECATED + * @opt_param string videoCategoryId + * The videoCategoryId parameter identifies the video category for which the chart should be + * retrieved. This parameter can only be used in conjunction with the chart parameter. By default, + * charts are not restricted to a particular category. + * @opt_param string chart + * The chart parameter identifies the chart that you want to retrieve. + * @opt_param string maxResults + * The maxResults parameter specifies the maximum number of items that should be returned in the + * result set. + Note: This parameter is supported for use in conjunction with the myRating + * parameter, but it is not supported for use in conjunction with the id parameter. + * @opt_param string pageToken + * The pageToken parameter identifies a specific page in the result set that should be returned. In + * an API response, the nextPageToken and prevPageToken properties identify other pages that could + * be retrieved. + Note: This parameter is supported for use in conjunction with the myRating + * parameter, but it is not supported for use in conjunction with the id parameter. + * @opt_param string myRating + * Set this parameter's value to like or dislike to instruct the API to only return videos liked or + * disliked by the authenticated user. + * @opt_param string id + * The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) + * that are being retrieved. In a video resource, the id property specifies the video's ID. + * @return Google_Service_YouTube_VideoListResponse + */ + public function listVideos($part, $optParams = array()) + { + $params = array('part' => $part); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTube_VideoListResponse"); + } + /** + * Add a like or dislike rating to a video or remove a rating from a video. + * (videos.rate) + * + * @param string $id + * The id parameter specifies the YouTube video ID of the video that is being rated or having its + * rating removed. + * @param string $rating + * Specifies the rating to record. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + public function rate($id, $rating, $optParams = array()) + { + $params = array('id' => $id, 'rating' => $rating); + $params = array_merge($params, $optParams); + return $this->call('rate', array($params)); + } + /** + * Updates a video's metadata. (videos.update) + * + * @param string $part + * The part parameter serves two purposes in this operation. It identifies the properties that the + * write operation will set as well as the properties that the API response will include. + The part + * names that you can include in the parameter value are snippet, contentDetails, fileDetails, + * liveStreamingDetails, player, processingDetails, recordingDetails, statistics, status, + * suggestions, and topicDetails. + Note that this method will override the existing values for all + * of the mutable properties that are contained in any parts that the parameter value specifies. + * For example, a video's privacy setting is contained in the status part. As such, if your request + * is updating a private video, and the request's part parameter value includes the status part, + * the video's privacy setting will be updated to whatever value the request body specifies. If the + * request body does not specify a value, the existing privacy setting will be removed and the + * video will revert to the default privacy setting. + In addition, not all of those parts contain + * properties that can be set when setting or updating a video's metadata. For example, the + * statistics object encapsulates statistics that YouTube calculates for a video and does not + * contain values that you can set or modify. If the parameter value specifies a part that does not + * contain mutable values, that part will still be included in the API response. + * @param Google_Video $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * Note: This parameter is intended exclusively for YouTube content partners. + The + * onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify + * a YouTube CMS user who is acting on behalf of the content owner specified in the parameter + * value. This parameter is intended for YouTube content partners that own and manage many + * different YouTube channels. It allows content owners to authenticate once and get access to all + * their video and channel data, without having to provide authentication credentials for each + * individual channel. The actual CMS account that the user authenticates with must be linked to + * the specified YouTube content owner. + * @return Google_Service_YouTube_Video + */ + public function update($part, Google_Service_YouTube_Video $postBody, $optParams = array()) + { + $params = array('part' => $part, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_YouTube_Video"); + } +} + +/** + * The "watermarks" collection of methods. + * Typical usage is: + * + * $youtubeService = new Google_Service_YouTube(...); + * $watermarks = $youtubeService->watermarks; + * + */ +class Google_Service_YouTube_Watermarks_Resource extends Google_Service_Resource +{ + + /** + * Uploads a watermark image to YouTube and sets it for a channel. + * (watermarks.set) + * + * @param string $channelId + * The channelId parameter specifies a YouTube channel ID for which the watermark is being + * provided. + * @param Google_InvideoBranding $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter indicates that the authenticated user is acting on behalf + * of the content owner specified in the parameter value. This parameter is intended for YouTube + * content partners that own and manage many different YouTube channels. It allows content owners + * to authenticate once and get access to all their video and channel data, without having to + * provide authentication credentials for each individual channel. The actual CMS account that the + * user authenticates with needs to be linked to the specified YouTube content owner. + */ + public function set($channelId, Google_Service_YouTube_InvideoBranding $postBody, $optParams = array()) + { + $params = array('channelId' => $channelId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('set', array($params)); + } + /** + * Deletes a watermark. (watermarks.unsetWatermarks) + * + * @param string $channelId + * The channelId parameter specifies a YouTube channel ID for which the watermark is being unset. + * @param array $optParams Optional parameters. + * + * @opt_param string onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter indicates that the authenticated user is acting on behalf + * of the content owner specified in the parameter value. This parameter is intended for YouTube + * content partners that own and manage many different YouTube channels. It allows content owners + * to authenticate once and get access to all their video and channel data, without having to + * provide authentication credentials for each individual channel. The actual CMS account that the + * user authenticates with needs to be linked to the specified YouTube content owner. + */ + public function unsetWatermarks($channelId, $optParams = array()) + { + $params = array('channelId' => $channelId); + $params = array_merge($params, $optParams); + return $this->call('unset', array($params)); + } +} + + + + +class Google_Service_YouTube_AccessPolicy extends Google_Collection +{ + protected $collection_key = 'exception'; + protected $internal_gapi_mappings = array( + ); + public $allowed; + public $exception; + + public function setAllowed($allowed) + { + $this->allowed = $allowed; + } + + public function getAllowed() + { + return $this->allowed; + } + + public function setException($exception) + { + $this->exception = $exception; + } + + public function getException() + { + return $this->exception; + } +} + +class Google_Service_YouTube_Activity extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentDetailsType = 'Google_Service_YouTube_ActivityContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_ActivitySnippet'; + protected $snippetDataType = ''; + + public function setContentDetails(Google_Service_YouTube_ActivityContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_ActivitySnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_ActivityContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $bulletinType = 'Google_Service_YouTube_ActivityContentDetailsBulletin'; + protected $bulletinDataType = ''; + protected $channelItemType = 'Google_Service_YouTube_ActivityContentDetailsChannelItem'; + protected $channelItemDataType = ''; + protected $commentType = 'Google_Service_YouTube_ActivityContentDetailsComment'; + protected $commentDataType = ''; + protected $favoriteType = 'Google_Service_YouTube_ActivityContentDetailsFavorite'; + protected $favoriteDataType = ''; + protected $likeType = 'Google_Service_YouTube_ActivityContentDetailsLike'; + protected $likeDataType = ''; + protected $playlistItemType = 'Google_Service_YouTube_ActivityContentDetailsPlaylistItem'; + protected $playlistItemDataType = ''; + protected $promotedItemType = 'Google_Service_YouTube_ActivityContentDetailsPromotedItem'; + protected $promotedItemDataType = ''; + protected $recommendationType = 'Google_Service_YouTube_ActivityContentDetailsRecommendation'; + protected $recommendationDataType = ''; + protected $socialType = 'Google_Service_YouTube_ActivityContentDetailsSocial'; + protected $socialDataType = ''; + protected $subscriptionType = 'Google_Service_YouTube_ActivityContentDetailsSubscription'; + protected $subscriptionDataType = ''; + protected $uploadType = 'Google_Service_YouTube_ActivityContentDetailsUpload'; + protected $uploadDataType = ''; + + public function setBulletin(Google_Service_YouTube_ActivityContentDetailsBulletin $bulletin) + { + $this->bulletin = $bulletin; + } + + public function getBulletin() + { + return $this->bulletin; + } + + public function setChannelItem(Google_Service_YouTube_ActivityContentDetailsChannelItem $channelItem) + { + $this->channelItem = $channelItem; + } + + public function getChannelItem() + { + return $this->channelItem; + } + + public function setComment(Google_Service_YouTube_ActivityContentDetailsComment $comment) + { + $this->comment = $comment; + } + + public function getComment() + { + return $this->comment; + } + + public function setFavorite(Google_Service_YouTube_ActivityContentDetailsFavorite $favorite) + { + $this->favorite = $favorite; + } + + public function getFavorite() + { + return $this->favorite; + } + + public function setLike(Google_Service_YouTube_ActivityContentDetailsLike $like) + { + $this->like = $like; + } + + public function getLike() + { + return $this->like; + } + + public function setPlaylistItem(Google_Service_YouTube_ActivityContentDetailsPlaylistItem $playlistItem) + { + $this->playlistItem = $playlistItem; + } + + public function getPlaylistItem() + { + return $this->playlistItem; + } + + public function setPromotedItem(Google_Service_YouTube_ActivityContentDetailsPromotedItem $promotedItem) + { + $this->promotedItem = $promotedItem; + } + + public function getPromotedItem() + { + return $this->promotedItem; + } + + public function setRecommendation(Google_Service_YouTube_ActivityContentDetailsRecommendation $recommendation) + { + $this->recommendation = $recommendation; + } + + public function getRecommendation() + { + return $this->recommendation; + } + + public function setSocial(Google_Service_YouTube_ActivityContentDetailsSocial $social) + { + $this->social = $social; + } + + public function getSocial() + { + return $this->social; + } + + public function setSubscription(Google_Service_YouTube_ActivityContentDetailsSubscription $subscription) + { + $this->subscription = $subscription; + } + + public function getSubscription() + { + return $this->subscription; + } + + public function setUpload(Google_Service_YouTube_ActivityContentDetailsUpload $upload) + { + $this->upload = $upload; + } + + public function getUpload() + { + return $this->upload; + } +} + +class Google_Service_YouTube_ActivityContentDetailsBulletin extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsChannelItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsComment extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsFavorite extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsLike extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsPlaylistItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $playlistId; + public $playlistItemId; + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setPlaylistId($playlistId) + { + $this->playlistId = $playlistId; + } + + public function getPlaylistId() + { + return $this->playlistId; + } + + public function setPlaylistItemId($playlistItemId) + { + $this->playlistItemId = $playlistItemId; + } + + public function getPlaylistItemId() + { + return $this->playlistItemId; + } + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsPromotedItem extends Google_Collection +{ + protected $collection_key = 'impressionUrl'; + protected $internal_gapi_mappings = array( + ); + public $adTag; + public $clickTrackingUrl; + public $creativeViewUrl; + public $ctaType; + public $customCtaButtonText; + public $descriptionText; + public $destinationUrl; + public $forecastingUrl; + public $impressionUrl; + public $videoId; + + public function setAdTag($adTag) + { + $this->adTag = $adTag; + } + + public function getAdTag() + { + return $this->adTag; + } + + public function setClickTrackingUrl($clickTrackingUrl) + { + $this->clickTrackingUrl = $clickTrackingUrl; + } + + public function getClickTrackingUrl() + { + return $this->clickTrackingUrl; + } + + public function setCreativeViewUrl($creativeViewUrl) + { + $this->creativeViewUrl = $creativeViewUrl; + } + + public function getCreativeViewUrl() + { + return $this->creativeViewUrl; + } + + public function setCtaType($ctaType) + { + $this->ctaType = $ctaType; + } + + public function getCtaType() + { + return $this->ctaType; + } + + public function setCustomCtaButtonText($customCtaButtonText) + { + $this->customCtaButtonText = $customCtaButtonText; + } + + public function getCustomCtaButtonText() + { + return $this->customCtaButtonText; + } + + public function setDescriptionText($descriptionText) + { + $this->descriptionText = $descriptionText; + } + + public function getDescriptionText() + { + return $this->descriptionText; + } + + public function setDestinationUrl($destinationUrl) + { + $this->destinationUrl = $destinationUrl; + } + + public function getDestinationUrl() + { + return $this->destinationUrl; + } + + public function setForecastingUrl($forecastingUrl) + { + $this->forecastingUrl = $forecastingUrl; + } + + public function getForecastingUrl() + { + return $this->forecastingUrl; + } + + public function setImpressionUrl($impressionUrl) + { + $this->impressionUrl = $impressionUrl; + } + + public function getImpressionUrl() + { + return $this->impressionUrl; + } + + public function setVideoId($videoId) + { + $this->videoId = $videoId; + } + + public function getVideoId() + { + return $this->videoId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsRecommendation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $reason; + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + protected $seedResourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $seedResourceIdDataType = ''; + + public function setReason($reason) + { + $this->reason = $reason; + } + + public function getReason() + { + return $this->reason; + } + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setSeedResourceId(Google_Service_YouTube_ResourceId $seedResourceId) + { + $this->seedResourceId = $seedResourceId; + } + + public function getSeedResourceId() + { + return $this->seedResourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsSocial extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $author; + public $imageUrl; + public $referenceUrl; + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + public $type; + + public function setAuthor($author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setImageUrl($imageUrl) + { + $this->imageUrl = $imageUrl; + } + + public function getImageUrl() + { + return $this->imageUrl; + } + + public function setReferenceUrl($referenceUrl) + { + $this->referenceUrl = $referenceUrl; + } + + public function getReferenceUrl() + { + return $this->referenceUrl; + } + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTube_ActivityContentDetailsSubscription extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } +} + +class Google_Service_YouTube_ActivityContentDetailsUpload extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $videoId; + + public function setVideoId($videoId) + { + $this->videoId = $videoId; + } + + public function getVideoId() + { + return $this->videoId; + } +} + +class Google_Service_YouTube_ActivityListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_Activity'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_ActivitySnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $channelTitle; + public $description; + public $groupId; + public $publishedAt; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + public $type; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setChannelTitle($channelTitle) + { + $this->channelTitle = $channelTitle; + } + + public function getChannelTitle() + { + return $this->channelTitle; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setGroupId($groupId) + { + $this->groupId = $groupId; + } + + public function getGroupId() + { + return $this->groupId; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTube_CdnSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $format; + protected $ingestionInfoType = 'Google_Service_YouTube_IngestionInfo'; + protected $ingestionInfoDataType = ''; + public $ingestionType; + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setIngestionInfo(Google_Service_YouTube_IngestionInfo $ingestionInfo) + { + $this->ingestionInfo = $ingestionInfo; + } + + public function getIngestionInfo() + { + return $this->ingestionInfo; + } + + public function setIngestionType($ingestionType) + { + $this->ingestionType = $ingestionType; + } + + public function getIngestionType() + { + return $this->ingestionType; + } +} + +class Google_Service_YouTube_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $auditDetailsType = 'Google_Service_YouTube_ChannelAuditDetails'; + protected $auditDetailsDataType = ''; + protected $brandingSettingsType = 'Google_Service_YouTube_ChannelBrandingSettings'; + protected $brandingSettingsDataType = ''; + protected $contentDetailsType = 'Google_Service_YouTube_ChannelContentDetails'; + protected $contentDetailsDataType = ''; + protected $contentOwnerDetailsType = 'Google_Service_YouTube_ChannelContentOwnerDetails'; + protected $contentOwnerDetailsDataType = ''; + protected $conversionPingsType = 'Google_Service_YouTube_ChannelConversionPings'; + protected $conversionPingsDataType = ''; + public $etag; + public $id; + protected $invideoPromotionType = 'Google_Service_YouTube_InvideoPromotion'; + protected $invideoPromotionDataType = ''; + public $kind; + protected $snippetType = 'Google_Service_YouTube_ChannelSnippet'; + protected $snippetDataType = ''; + protected $statisticsType = 'Google_Service_YouTube_ChannelStatistics'; + protected $statisticsDataType = ''; + protected $statusType = 'Google_Service_YouTube_ChannelStatus'; + protected $statusDataType = ''; + protected $topicDetailsType = 'Google_Service_YouTube_ChannelTopicDetails'; + protected $topicDetailsDataType = ''; + + public function setAuditDetails(Google_Service_YouTube_ChannelAuditDetails $auditDetails) + { + $this->auditDetails = $auditDetails; + } + + public function getAuditDetails() + { + return $this->auditDetails; + } + + public function setBrandingSettings(Google_Service_YouTube_ChannelBrandingSettings $brandingSettings) + { + $this->brandingSettings = $brandingSettings; + } + + public function getBrandingSettings() + { + return $this->brandingSettings; + } + + public function setContentDetails(Google_Service_YouTube_ChannelContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setContentOwnerDetails(Google_Service_YouTube_ChannelContentOwnerDetails $contentOwnerDetails) + { + $this->contentOwnerDetails = $contentOwnerDetails; + } + + public function getContentOwnerDetails() + { + return $this->contentOwnerDetails; + } + + public function setConversionPings(Google_Service_YouTube_ChannelConversionPings $conversionPings) + { + $this->conversionPings = $conversionPings; + } + + public function getConversionPings() + { + return $this->conversionPings; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInvideoPromotion(Google_Service_YouTube_InvideoPromotion $invideoPromotion) + { + $this->invideoPromotion = $invideoPromotion; + } + + public function getInvideoPromotion() + { + return $this->invideoPromotion; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_ChannelSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStatistics(Google_Service_YouTube_ChannelStatistics $statistics) + { + $this->statistics = $statistics; + } + + public function getStatistics() + { + return $this->statistics; + } + + public function setStatus(Google_Service_YouTube_ChannelStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTopicDetails(Google_Service_YouTube_ChannelTopicDetails $topicDetails) + { + $this->topicDetails = $topicDetails; + } + + public function getTopicDetails() + { + return $this->topicDetails; + } +} + +class Google_Service_YouTube_ChannelAuditDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $communityGuidelinesGoodStanding; + public $contentIdClaimsGoodStanding; + public $copyrightStrikesGoodStanding; + public $overallGoodStanding; + + public function setCommunityGuidelinesGoodStanding($communityGuidelinesGoodStanding) + { + $this->communityGuidelinesGoodStanding = $communityGuidelinesGoodStanding; + } + + public function getCommunityGuidelinesGoodStanding() + { + return $this->communityGuidelinesGoodStanding; + } + + public function setContentIdClaimsGoodStanding($contentIdClaimsGoodStanding) + { + $this->contentIdClaimsGoodStanding = $contentIdClaimsGoodStanding; + } + + public function getContentIdClaimsGoodStanding() + { + return $this->contentIdClaimsGoodStanding; + } + + public function setCopyrightStrikesGoodStanding($copyrightStrikesGoodStanding) + { + $this->copyrightStrikesGoodStanding = $copyrightStrikesGoodStanding; + } + + public function getCopyrightStrikesGoodStanding() + { + return $this->copyrightStrikesGoodStanding; + } + + public function setOverallGoodStanding($overallGoodStanding) + { + $this->overallGoodStanding = $overallGoodStanding; + } + + public function getOverallGoodStanding() + { + return $this->overallGoodStanding; + } +} + +class Google_Service_YouTube_ChannelBannerResource extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $kind; + public $url; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} + +class Google_Service_YouTube_ChannelBrandingSettings extends Google_Collection +{ + protected $collection_key = 'hints'; + protected $internal_gapi_mappings = array( + ); + protected $channelType = 'Google_Service_YouTube_ChannelSettings'; + protected $channelDataType = ''; + protected $hintsType = 'Google_Service_YouTube_PropertyValue'; + protected $hintsDataType = 'array'; + protected $imageType = 'Google_Service_YouTube_ImageSettings'; + protected $imageDataType = ''; + protected $watchType = 'Google_Service_YouTube_WatchSettings'; + protected $watchDataType = ''; + + public function setChannel(Google_Service_YouTube_ChannelSettings $channel) + { + $this->channel = $channel; + } + + public function getChannel() + { + return $this->channel; + } + + public function setHints($hints) + { + $this->hints = $hints; + } + + public function getHints() + { + return $this->hints; + } + + public function setImage(Google_Service_YouTube_ImageSettings $image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setWatch(Google_Service_YouTube_WatchSettings $watch) + { + $this->watch = $watch; + } + + public function getWatch() + { + return $this->watch; + } +} + +class Google_Service_YouTube_ChannelContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $googlePlusUserId; + protected $relatedPlaylistsType = 'Google_Service_YouTube_ChannelContentDetailsRelatedPlaylists'; + protected $relatedPlaylistsDataType = ''; + + public function setGooglePlusUserId($googlePlusUserId) + { + $this->googlePlusUserId = $googlePlusUserId; + } + + public function getGooglePlusUserId() + { + return $this->googlePlusUserId; + } + + public function setRelatedPlaylists(Google_Service_YouTube_ChannelContentDetailsRelatedPlaylists $relatedPlaylists) + { + $this->relatedPlaylists = $relatedPlaylists; + } + + public function getRelatedPlaylists() + { + return $this->relatedPlaylists; + } +} + +class Google_Service_YouTube_ChannelContentDetailsRelatedPlaylists extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $favorites; + public $likes; + public $uploads; + public $watchHistory; + public $watchLater; + + public function setFavorites($favorites) + { + $this->favorites = $favorites; + } + + public function getFavorites() + { + return $this->favorites; + } + + public function setLikes($likes) + { + $this->likes = $likes; + } + + public function getLikes() + { + return $this->likes; + } + + public function setUploads($uploads) + { + $this->uploads = $uploads; + } + + public function getUploads() + { + return $this->uploads; + } + + public function setWatchHistory($watchHistory) + { + $this->watchHistory = $watchHistory; + } + + public function getWatchHistory() + { + return $this->watchHistory; + } + + public function setWatchLater($watchLater) + { + $this->watchLater = $watchLater; + } + + public function getWatchLater() + { + return $this->watchLater; + } +} + +class Google_Service_YouTube_ChannelContentOwnerDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $contentOwner; + public $timeLinked; + + public function setContentOwner($contentOwner) + { + $this->contentOwner = $contentOwner; + } + + public function getContentOwner() + { + return $this->contentOwner; + } + + public function setTimeLinked($timeLinked) + { + $this->timeLinked = $timeLinked; + } + + public function getTimeLinked() + { + return $this->timeLinked; + } +} + +class Google_Service_YouTube_ChannelConversionPing extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $context; + public $conversionUrl; + + public function setContext($context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setConversionUrl($conversionUrl) + { + $this->conversionUrl = $conversionUrl; + } + + public function getConversionUrl() + { + return $this->conversionUrl; + } +} + +class Google_Service_YouTube_ChannelConversionPings extends Google_Collection +{ + protected $collection_key = 'pings'; + protected $internal_gapi_mappings = array( + ); + protected $pingsType = 'Google_Service_YouTube_ChannelConversionPing'; + protected $pingsDataType = 'array'; + + public function setPings($pings) + { + $this->pings = $pings; + } + + public function getPings() + { + return $this->pings; + } +} + +class Google_Service_YouTube_ChannelListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_Channel'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_ChannelSection extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentDetailsType = 'Google_Service_YouTube_ChannelSectionContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_ChannelSectionSnippet'; + protected $snippetDataType = ''; + + public function setContentDetails(Google_Service_YouTube_ChannelSectionContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_ChannelSectionSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_ChannelSectionContentDetails extends Google_Collection +{ + protected $collection_key = 'playlists'; + protected $internal_gapi_mappings = array( + ); + public $channels; + public $playlists; + + public function setChannels($channels) + { + $this->channels = $channels; + } + + public function getChannels() + { + return $this->channels; + } + + public function setPlaylists($playlists) + { + $this->playlists = $playlists; + } + + public function getPlaylists() + { + return $this->playlists; + } +} + +class Google_Service_YouTube_ChannelSectionListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_ChannelSection'; + protected $itemsDataType = 'array'; + public $kind; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_ChannelSectionSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $position; + public $style; + public $title; + public $type; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setPosition($position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } + + public function setStyle($style) + { + $this->style = $style; + } + + public function getStyle() + { + return $this->style; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTube_ChannelSettings extends Google_Collection +{ + protected $collection_key = 'featuredChannelsUrls'; + protected $internal_gapi_mappings = array( + ); + public $defaultTab; + public $description; + public $featuredChannelsTitle; + public $featuredChannelsUrls; + public $keywords; + public $moderateComments; + public $profileColor; + public $showBrowseView; + public $showRelatedChannels; + public $title; + public $trackingAnalyticsAccountId; + public $unsubscribedTrailer; + + public function setDefaultTab($defaultTab) + { + $this->defaultTab = $defaultTab; + } + + public function getDefaultTab() + { + return $this->defaultTab; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setFeaturedChannelsTitle($featuredChannelsTitle) + { + $this->featuredChannelsTitle = $featuredChannelsTitle; + } + + public function getFeaturedChannelsTitle() + { + return $this->featuredChannelsTitle; + } + + public function setFeaturedChannelsUrls($featuredChannelsUrls) + { + $this->featuredChannelsUrls = $featuredChannelsUrls; + } + + public function getFeaturedChannelsUrls() + { + return $this->featuredChannelsUrls; + } + + public function setKeywords($keywords) + { + $this->keywords = $keywords; + } + + public function getKeywords() + { + return $this->keywords; + } + + public function setModerateComments($moderateComments) + { + $this->moderateComments = $moderateComments; + } + + public function getModerateComments() + { + return $this->moderateComments; + } + + public function setProfileColor($profileColor) + { + $this->profileColor = $profileColor; + } + + public function getProfileColor() + { + return $this->profileColor; + } + + public function setShowBrowseView($showBrowseView) + { + $this->showBrowseView = $showBrowseView; + } + + public function getShowBrowseView() + { + return $this->showBrowseView; + } + + public function setShowRelatedChannels($showRelatedChannels) + { + $this->showRelatedChannels = $showRelatedChannels; + } + + public function getShowRelatedChannels() + { + return $this->showRelatedChannels; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setTrackingAnalyticsAccountId($trackingAnalyticsAccountId) + { + $this->trackingAnalyticsAccountId = $trackingAnalyticsAccountId; + } + + public function getTrackingAnalyticsAccountId() + { + return $this->trackingAnalyticsAccountId; + } + + public function setUnsubscribedTrailer($unsubscribedTrailer) + { + $this->unsubscribedTrailer = $unsubscribedTrailer; + } + + public function getUnsubscribedTrailer() + { + return $this->unsubscribedTrailer; + } +} + +class Google_Service_YouTube_ChannelSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $description; + public $publishedAt; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_ChannelStatistics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $commentCount; + public $hiddenSubscriberCount; + public $subscriberCount; + public $videoCount; + public $viewCount; + + public function setCommentCount($commentCount) + { + $this->commentCount = $commentCount; + } + + public function getCommentCount() + { + return $this->commentCount; + } + + public function setHiddenSubscriberCount($hiddenSubscriberCount) + { + $this->hiddenSubscriberCount = $hiddenSubscriberCount; + } + + public function getHiddenSubscriberCount() + { + return $this->hiddenSubscriberCount; + } + + public function setSubscriberCount($subscriberCount) + { + $this->subscriberCount = $subscriberCount; + } + + public function getSubscriberCount() + { + return $this->subscriberCount; + } + + public function setVideoCount($videoCount) + { + $this->videoCount = $videoCount; + } + + public function getVideoCount() + { + return $this->videoCount; + } + + public function setViewCount($viewCount) + { + $this->viewCount = $viewCount; + } + + public function getViewCount() + { + return $this->viewCount; + } +} + +class Google_Service_YouTube_ChannelStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $isLinked; + public $longUploadsStatus; + public $privacyStatus; + + public function setIsLinked($isLinked) + { + $this->isLinked = $isLinked; + } + + public function getIsLinked() + { + return $this->isLinked; + } + + public function setLongUploadsStatus($longUploadsStatus) + { + $this->longUploadsStatus = $longUploadsStatus; + } + + public function getLongUploadsStatus() + { + return $this->longUploadsStatus; + } + + public function setPrivacyStatus($privacyStatus) + { + $this->privacyStatus = $privacyStatus; + } + + public function getPrivacyStatus() + { + return $this->privacyStatus; + } +} + +class Google_Service_YouTube_ChannelTopicDetails extends Google_Collection +{ + protected $collection_key = 'topicIds'; + protected $internal_gapi_mappings = array( + ); + public $topicIds; + + public function setTopicIds($topicIds) + { + $this->topicIds = $topicIds; + } + + public function getTopicIds() + { + return $this->topicIds; + } +} + +class Google_Service_YouTube_ContentRating extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $acbRating; + public $agcomRating; + public $anatelRating; + public $bbfcRating; + public $bfvcRating; + public $bmukkRating; + public $catvRating; + public $catvfrRating; + public $cbfcRating; + public $cccRating; + public $cceRating; + public $chfilmRating; + public $chvrsRating; + public $cicfRating; + public $cnaRating; + public $csaRating; + public $cscfRating; + public $czfilmRating; + public $djctqRating; + public $eefilmRating; + public $egfilmRating; + public $eirinRating; + public $fcbmRating; + public $fcoRating; + public $fmocRating; + public $fpbRating; + public $fskRating; + public $grfilmRating; + public $icaaRating; + public $ifcoRating; + public $ilfilmRating; + public $incaaRating; + public $kfcbRating; + public $kijkwijzerRating; + public $kmrbRating; + public $lsfRating; + public $mccaaRating; + public $mccypRating; + public $mdaRating; + public $medietilsynetRating; + public $mekuRating; + public $mibacRating; + public $mocRating; + public $moctwRating; + public $mpaaRating; + public $mtrcbRating; + public $nbcRating; + public $nbcplRating; + public $nfrcRating; + public $nfvcbRating; + public $nkclvRating; + public $oflcRating; + public $pefilmRating; + public $rcnofRating; + public $resorteviolenciaRating; + public $rtcRating; + public $rteRating; + public $russiaRating; + public $skfilmRating; + public $smaisRating; + public $smsaRating; + public $tvpgRating; + public $ytRating; + + public function setAcbRating($acbRating) + { + $this->acbRating = $acbRating; + } + + public function getAcbRating() + { + return $this->acbRating; + } + + public function setAgcomRating($agcomRating) + { + $this->agcomRating = $agcomRating; + } + + public function getAgcomRating() + { + return $this->agcomRating; + } + + public function setAnatelRating($anatelRating) + { + $this->anatelRating = $anatelRating; + } + + public function getAnatelRating() + { + return $this->anatelRating; + } + + public function setBbfcRating($bbfcRating) + { + $this->bbfcRating = $bbfcRating; + } + + public function getBbfcRating() + { + return $this->bbfcRating; + } + + public function setBfvcRating($bfvcRating) + { + $this->bfvcRating = $bfvcRating; + } + + public function getBfvcRating() + { + return $this->bfvcRating; + } + + public function setBmukkRating($bmukkRating) + { + $this->bmukkRating = $bmukkRating; + } + + public function getBmukkRating() + { + return $this->bmukkRating; + } + + public function setCatvRating($catvRating) + { + $this->catvRating = $catvRating; + } + + public function getCatvRating() + { + return $this->catvRating; + } + + public function setCatvfrRating($catvfrRating) + { + $this->catvfrRating = $catvfrRating; + } + + public function getCatvfrRating() + { + return $this->catvfrRating; + } + + public function setCbfcRating($cbfcRating) + { + $this->cbfcRating = $cbfcRating; + } + + public function getCbfcRating() + { + return $this->cbfcRating; + } + + public function setCccRating($cccRating) + { + $this->cccRating = $cccRating; + } + + public function getCccRating() + { + return $this->cccRating; + } + + public function setCceRating($cceRating) + { + $this->cceRating = $cceRating; + } + + public function getCceRating() + { + return $this->cceRating; + } + + public function setChfilmRating($chfilmRating) + { + $this->chfilmRating = $chfilmRating; + } + + public function getChfilmRating() + { + return $this->chfilmRating; + } + + public function setChvrsRating($chvrsRating) + { + $this->chvrsRating = $chvrsRating; + } + + public function getChvrsRating() + { + return $this->chvrsRating; + } + + public function setCicfRating($cicfRating) + { + $this->cicfRating = $cicfRating; + } + + public function getCicfRating() + { + return $this->cicfRating; + } + + public function setCnaRating($cnaRating) + { + $this->cnaRating = $cnaRating; + } + + public function getCnaRating() + { + return $this->cnaRating; + } + + public function setCsaRating($csaRating) + { + $this->csaRating = $csaRating; + } + + public function getCsaRating() + { + return $this->csaRating; + } + + public function setCscfRating($cscfRating) + { + $this->cscfRating = $cscfRating; + } + + public function getCscfRating() + { + return $this->cscfRating; + } + + public function setCzfilmRating($czfilmRating) + { + $this->czfilmRating = $czfilmRating; + } + + public function getCzfilmRating() + { + return $this->czfilmRating; + } + + public function setDjctqRating($djctqRating) + { + $this->djctqRating = $djctqRating; + } + + public function getDjctqRating() + { + return $this->djctqRating; + } + + public function setEefilmRating($eefilmRating) + { + $this->eefilmRating = $eefilmRating; + } + + public function getEefilmRating() + { + return $this->eefilmRating; + } + + public function setEgfilmRating($egfilmRating) + { + $this->egfilmRating = $egfilmRating; + } + + public function getEgfilmRating() + { + return $this->egfilmRating; + } + + public function setEirinRating($eirinRating) + { + $this->eirinRating = $eirinRating; + } + + public function getEirinRating() + { + return $this->eirinRating; + } + + public function setFcbmRating($fcbmRating) + { + $this->fcbmRating = $fcbmRating; + } + + public function getFcbmRating() + { + return $this->fcbmRating; + } + + public function setFcoRating($fcoRating) + { + $this->fcoRating = $fcoRating; + } + + public function getFcoRating() + { + return $this->fcoRating; + } + + public function setFmocRating($fmocRating) + { + $this->fmocRating = $fmocRating; + } + + public function getFmocRating() + { + return $this->fmocRating; + } + + public function setFpbRating($fpbRating) + { + $this->fpbRating = $fpbRating; + } + + public function getFpbRating() + { + return $this->fpbRating; + } + + public function setFskRating($fskRating) + { + $this->fskRating = $fskRating; + } + + public function getFskRating() + { + return $this->fskRating; + } + + public function setGrfilmRating($grfilmRating) + { + $this->grfilmRating = $grfilmRating; + } + + public function getGrfilmRating() + { + return $this->grfilmRating; + } + + public function setIcaaRating($icaaRating) + { + $this->icaaRating = $icaaRating; + } + + public function getIcaaRating() + { + return $this->icaaRating; + } + + public function setIfcoRating($ifcoRating) + { + $this->ifcoRating = $ifcoRating; + } + + public function getIfcoRating() + { + return $this->ifcoRating; + } + + public function setIlfilmRating($ilfilmRating) + { + $this->ilfilmRating = $ilfilmRating; + } + + public function getIlfilmRating() + { + return $this->ilfilmRating; + } + + public function setIncaaRating($incaaRating) + { + $this->incaaRating = $incaaRating; + } + + public function getIncaaRating() + { + return $this->incaaRating; + } + + public function setKfcbRating($kfcbRating) + { + $this->kfcbRating = $kfcbRating; + } + + public function getKfcbRating() + { + return $this->kfcbRating; + } + + public function setKijkwijzerRating($kijkwijzerRating) + { + $this->kijkwijzerRating = $kijkwijzerRating; + } + + public function getKijkwijzerRating() + { + return $this->kijkwijzerRating; + } + + public function setKmrbRating($kmrbRating) + { + $this->kmrbRating = $kmrbRating; + } + + public function getKmrbRating() + { + return $this->kmrbRating; + } + + public function setLsfRating($lsfRating) + { + $this->lsfRating = $lsfRating; + } + + public function getLsfRating() + { + return $this->lsfRating; + } + + public function setMccaaRating($mccaaRating) + { + $this->mccaaRating = $mccaaRating; + } + + public function getMccaaRating() + { + return $this->mccaaRating; + } + + public function setMccypRating($mccypRating) + { + $this->mccypRating = $mccypRating; + } + + public function getMccypRating() + { + return $this->mccypRating; + } + + public function setMdaRating($mdaRating) + { + $this->mdaRating = $mdaRating; + } + + public function getMdaRating() + { + return $this->mdaRating; + } + + public function setMedietilsynetRating($medietilsynetRating) + { + $this->medietilsynetRating = $medietilsynetRating; + } + + public function getMedietilsynetRating() + { + return $this->medietilsynetRating; + } + + public function setMekuRating($mekuRating) + { + $this->mekuRating = $mekuRating; + } + + public function getMekuRating() + { + return $this->mekuRating; + } + + public function setMibacRating($mibacRating) + { + $this->mibacRating = $mibacRating; + } + + public function getMibacRating() + { + return $this->mibacRating; + } + + public function setMocRating($mocRating) + { + $this->mocRating = $mocRating; + } + + public function getMocRating() + { + return $this->mocRating; + } + + public function setMoctwRating($moctwRating) + { + $this->moctwRating = $moctwRating; + } + + public function getMoctwRating() + { + return $this->moctwRating; + } + + public function setMpaaRating($mpaaRating) + { + $this->mpaaRating = $mpaaRating; + } + + public function getMpaaRating() + { + return $this->mpaaRating; + } + + public function setMtrcbRating($mtrcbRating) + { + $this->mtrcbRating = $mtrcbRating; + } + + public function getMtrcbRating() + { + return $this->mtrcbRating; + } + + public function setNbcRating($nbcRating) + { + $this->nbcRating = $nbcRating; + } + + public function getNbcRating() + { + return $this->nbcRating; + } + + public function setNbcplRating($nbcplRating) + { + $this->nbcplRating = $nbcplRating; + } + + public function getNbcplRating() + { + return $this->nbcplRating; + } + + public function setNfrcRating($nfrcRating) + { + $this->nfrcRating = $nfrcRating; + } + + public function getNfrcRating() + { + return $this->nfrcRating; + } + + public function setNfvcbRating($nfvcbRating) + { + $this->nfvcbRating = $nfvcbRating; + } + + public function getNfvcbRating() + { + return $this->nfvcbRating; + } + + public function setNkclvRating($nkclvRating) + { + $this->nkclvRating = $nkclvRating; + } + + public function getNkclvRating() + { + return $this->nkclvRating; + } + + public function setOflcRating($oflcRating) + { + $this->oflcRating = $oflcRating; + } + + public function getOflcRating() + { + return $this->oflcRating; + } + + public function setPefilmRating($pefilmRating) + { + $this->pefilmRating = $pefilmRating; + } + + public function getPefilmRating() + { + return $this->pefilmRating; + } + + public function setRcnofRating($rcnofRating) + { + $this->rcnofRating = $rcnofRating; + } + + public function getRcnofRating() + { + return $this->rcnofRating; + } + + public function setResorteviolenciaRating($resorteviolenciaRating) + { + $this->resorteviolenciaRating = $resorteviolenciaRating; + } + + public function getResorteviolenciaRating() + { + return $this->resorteviolenciaRating; + } + + public function setRtcRating($rtcRating) + { + $this->rtcRating = $rtcRating; + } + + public function getRtcRating() + { + return $this->rtcRating; + } + + public function setRteRating($rteRating) + { + $this->rteRating = $rteRating; + } + + public function getRteRating() + { + return $this->rteRating; + } + + public function setRussiaRating($russiaRating) + { + $this->russiaRating = $russiaRating; + } + + public function getRussiaRating() + { + return $this->russiaRating; + } + + public function setSkfilmRating($skfilmRating) + { + $this->skfilmRating = $skfilmRating; + } + + public function getSkfilmRating() + { + return $this->skfilmRating; + } + + public function setSmaisRating($smaisRating) + { + $this->smaisRating = $smaisRating; + } + + public function getSmaisRating() + { + return $this->smaisRating; + } + + public function setSmsaRating($smsaRating) + { + $this->smsaRating = $smsaRating; + } + + public function getSmsaRating() + { + return $this->smsaRating; + } + + public function setTvpgRating($tvpgRating) + { + $this->tvpgRating = $tvpgRating; + } + + public function getTvpgRating() + { + return $this->tvpgRating; + } + + public function setYtRating($ytRating) + { + $this->ytRating = $ytRating; + } + + public function getYtRating() + { + return $this->ytRating; + } +} + +class Google_Service_YouTube_GeoPoint extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $altitude; + public $latitude; + public $longitude; + + public function setAltitude($altitude) + { + $this->altitude = $altitude; + } + + public function getAltitude() + { + return $this->altitude; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_YouTube_GuideCategory extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_GuideCategorySnippet'; + protected $snippetDataType = ''; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_GuideCategorySnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_GuideCategoryListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_GuideCategory'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_GuideCategorySnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_I18nLanguage extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_I18nLanguageSnippet'; + protected $snippetDataType = ''; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_I18nLanguageSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_I18nLanguageListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_I18nLanguage'; + protected $itemsDataType = 'array'; + public $kind; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_I18nLanguageSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hl; + public $name; + + public function setHl($hl) + { + $this->hl = $hl; + } + + public function getHl() + { + return $this->hl; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_YouTube_I18nRegion extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_I18nRegionSnippet'; + protected $snippetDataType = ''; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_I18nRegionSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_I18nRegionListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_I18nRegion'; + protected $itemsDataType = 'array'; + public $kind; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_I18nRegionSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $gl; + public $name; + + public function setGl($gl) + { + $this->gl = $gl; + } + + public function getGl() + { + return $this->gl; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} + +class Google_Service_YouTube_ImageSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $backgroundImageUrlType = 'Google_Service_YouTube_LocalizedProperty'; + protected $backgroundImageUrlDataType = ''; + public $bannerExternalUrl; + public $bannerImageUrl; + public $bannerMobileExtraHdImageUrl; + public $bannerMobileHdImageUrl; + public $bannerMobileImageUrl; + public $bannerMobileLowImageUrl; + public $bannerMobileMediumHdImageUrl; + public $bannerTabletExtraHdImageUrl; + public $bannerTabletHdImageUrl; + public $bannerTabletImageUrl; + public $bannerTabletLowImageUrl; + public $bannerTvHighImageUrl; + public $bannerTvImageUrl; + public $bannerTvLowImageUrl; + public $bannerTvMediumImageUrl; + protected $largeBrandedBannerImageImapScriptType = 'Google_Service_YouTube_LocalizedProperty'; + protected $largeBrandedBannerImageImapScriptDataType = ''; + protected $largeBrandedBannerImageUrlType = 'Google_Service_YouTube_LocalizedProperty'; + protected $largeBrandedBannerImageUrlDataType = ''; + protected $smallBrandedBannerImageImapScriptType = 'Google_Service_YouTube_LocalizedProperty'; + protected $smallBrandedBannerImageImapScriptDataType = ''; + protected $smallBrandedBannerImageUrlType = 'Google_Service_YouTube_LocalizedProperty'; + protected $smallBrandedBannerImageUrlDataType = ''; + public $trackingImageUrl; + public $watchIconImageUrl; + + public function setBackgroundImageUrl(Google_Service_YouTube_LocalizedProperty $backgroundImageUrl) + { + $this->backgroundImageUrl = $backgroundImageUrl; + } + + public function getBackgroundImageUrl() + { + return $this->backgroundImageUrl; + } + + public function setBannerExternalUrl($bannerExternalUrl) + { + $this->bannerExternalUrl = $bannerExternalUrl; + } + + public function getBannerExternalUrl() + { + return $this->bannerExternalUrl; + } + + public function setBannerImageUrl($bannerImageUrl) + { + $this->bannerImageUrl = $bannerImageUrl; + } + + public function getBannerImageUrl() + { + return $this->bannerImageUrl; + } + + public function setBannerMobileExtraHdImageUrl($bannerMobileExtraHdImageUrl) + { + $this->bannerMobileExtraHdImageUrl = $bannerMobileExtraHdImageUrl; + } + + public function getBannerMobileExtraHdImageUrl() + { + return $this->bannerMobileExtraHdImageUrl; + } + + public function setBannerMobileHdImageUrl($bannerMobileHdImageUrl) + { + $this->bannerMobileHdImageUrl = $bannerMobileHdImageUrl; + } + + public function getBannerMobileHdImageUrl() + { + return $this->bannerMobileHdImageUrl; + } + + public function setBannerMobileImageUrl($bannerMobileImageUrl) + { + $this->bannerMobileImageUrl = $bannerMobileImageUrl; + } + + public function getBannerMobileImageUrl() + { + return $this->bannerMobileImageUrl; + } + + public function setBannerMobileLowImageUrl($bannerMobileLowImageUrl) + { + $this->bannerMobileLowImageUrl = $bannerMobileLowImageUrl; + } + + public function getBannerMobileLowImageUrl() + { + return $this->bannerMobileLowImageUrl; + } + + public function setBannerMobileMediumHdImageUrl($bannerMobileMediumHdImageUrl) + { + $this->bannerMobileMediumHdImageUrl = $bannerMobileMediumHdImageUrl; + } + + public function getBannerMobileMediumHdImageUrl() + { + return $this->bannerMobileMediumHdImageUrl; + } + + public function setBannerTabletExtraHdImageUrl($bannerTabletExtraHdImageUrl) + { + $this->bannerTabletExtraHdImageUrl = $bannerTabletExtraHdImageUrl; + } + + public function getBannerTabletExtraHdImageUrl() + { + return $this->bannerTabletExtraHdImageUrl; + } + + public function setBannerTabletHdImageUrl($bannerTabletHdImageUrl) + { + $this->bannerTabletHdImageUrl = $bannerTabletHdImageUrl; + } + + public function getBannerTabletHdImageUrl() + { + return $this->bannerTabletHdImageUrl; + } + + public function setBannerTabletImageUrl($bannerTabletImageUrl) + { + $this->bannerTabletImageUrl = $bannerTabletImageUrl; + } + + public function getBannerTabletImageUrl() + { + return $this->bannerTabletImageUrl; + } + + public function setBannerTabletLowImageUrl($bannerTabletLowImageUrl) + { + $this->bannerTabletLowImageUrl = $bannerTabletLowImageUrl; + } + + public function getBannerTabletLowImageUrl() + { + return $this->bannerTabletLowImageUrl; + } + + public function setBannerTvHighImageUrl($bannerTvHighImageUrl) + { + $this->bannerTvHighImageUrl = $bannerTvHighImageUrl; + } + + public function getBannerTvHighImageUrl() + { + return $this->bannerTvHighImageUrl; + } + + public function setBannerTvImageUrl($bannerTvImageUrl) + { + $this->bannerTvImageUrl = $bannerTvImageUrl; + } + + public function getBannerTvImageUrl() + { + return $this->bannerTvImageUrl; + } + + public function setBannerTvLowImageUrl($bannerTvLowImageUrl) + { + $this->bannerTvLowImageUrl = $bannerTvLowImageUrl; + } + + public function getBannerTvLowImageUrl() + { + return $this->bannerTvLowImageUrl; + } + + public function setBannerTvMediumImageUrl($bannerTvMediumImageUrl) + { + $this->bannerTvMediumImageUrl = $bannerTvMediumImageUrl; + } + + public function getBannerTvMediumImageUrl() + { + return $this->bannerTvMediumImageUrl; + } + + public function setLargeBrandedBannerImageImapScript(Google_Service_YouTube_LocalizedProperty $largeBrandedBannerImageImapScript) + { + $this->largeBrandedBannerImageImapScript = $largeBrandedBannerImageImapScript; + } + + public function getLargeBrandedBannerImageImapScript() + { + return $this->largeBrandedBannerImageImapScript; + } + + public function setLargeBrandedBannerImageUrl(Google_Service_YouTube_LocalizedProperty $largeBrandedBannerImageUrl) + { + $this->largeBrandedBannerImageUrl = $largeBrandedBannerImageUrl; + } + + public function getLargeBrandedBannerImageUrl() + { + return $this->largeBrandedBannerImageUrl; + } + + public function setSmallBrandedBannerImageImapScript(Google_Service_YouTube_LocalizedProperty $smallBrandedBannerImageImapScript) + { + $this->smallBrandedBannerImageImapScript = $smallBrandedBannerImageImapScript; + } + + public function getSmallBrandedBannerImageImapScript() + { + return $this->smallBrandedBannerImageImapScript; + } + + public function setSmallBrandedBannerImageUrl(Google_Service_YouTube_LocalizedProperty $smallBrandedBannerImageUrl) + { + $this->smallBrandedBannerImageUrl = $smallBrandedBannerImageUrl; + } + + public function getSmallBrandedBannerImageUrl() + { + return $this->smallBrandedBannerImageUrl; + } + + public function setTrackingImageUrl($trackingImageUrl) + { + $this->trackingImageUrl = $trackingImageUrl; + } + + public function getTrackingImageUrl() + { + return $this->trackingImageUrl; + } + + public function setWatchIconImageUrl($watchIconImageUrl) + { + $this->watchIconImageUrl = $watchIconImageUrl; + } + + public function getWatchIconImageUrl() + { + return $this->watchIconImageUrl; + } +} + +class Google_Service_YouTube_IngestionInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $backupIngestionAddress; + public $ingestionAddress; + public $streamName; + + public function setBackupIngestionAddress($backupIngestionAddress) + { + $this->backupIngestionAddress = $backupIngestionAddress; + } + + public function getBackupIngestionAddress() + { + return $this->backupIngestionAddress; + } + + public function setIngestionAddress($ingestionAddress) + { + $this->ingestionAddress = $ingestionAddress; + } + + public function getIngestionAddress() + { + return $this->ingestionAddress; + } + + public function setStreamName($streamName) + { + $this->streamName = $streamName; + } + + public function getStreamName() + { + return $this->streamName; + } +} + +class Google_Service_YouTube_InvideoBranding extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $imageBytes; + public $imageUrl; + protected $positionType = 'Google_Service_YouTube_InvideoPosition'; + protected $positionDataType = ''; + public $targetChannelId; + protected $timingType = 'Google_Service_YouTube_InvideoTiming'; + protected $timingDataType = ''; + + public function setImageBytes($imageBytes) + { + $this->imageBytes = $imageBytes; + } + + public function getImageBytes() + { + return $this->imageBytes; + } + + public function setImageUrl($imageUrl) + { + $this->imageUrl = $imageUrl; + } + + public function getImageUrl() + { + return $this->imageUrl; + } + + public function setPosition(Google_Service_YouTube_InvideoPosition $position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } + + public function setTargetChannelId($targetChannelId) + { + $this->targetChannelId = $targetChannelId; + } + + public function getTargetChannelId() + { + return $this->targetChannelId; + } + + public function setTiming(Google_Service_YouTube_InvideoTiming $timing) + { + $this->timing = $timing; + } + + public function getTiming() + { + return $this->timing; + } +} + +class Google_Service_YouTube_InvideoPosition extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $cornerPosition; + public $type; + + public function setCornerPosition($cornerPosition) + { + $this->cornerPosition = $cornerPosition; + } + + public function getCornerPosition() + { + return $this->cornerPosition; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTube_InvideoPromotion extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $defaultTimingType = 'Google_Service_YouTube_InvideoTiming'; + protected $defaultTimingDataType = ''; + protected $itemsType = 'Google_Service_YouTube_PromotedItem'; + protected $itemsDataType = 'array'; + protected $positionType = 'Google_Service_YouTube_InvideoPosition'; + protected $positionDataType = ''; + public $useSmartTiming; + + public function setDefaultTiming(Google_Service_YouTube_InvideoTiming $defaultTiming) + { + $this->defaultTiming = $defaultTiming; + } + + public function getDefaultTiming() + { + return $this->defaultTiming; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setPosition(Google_Service_YouTube_InvideoPosition $position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } + + public function setUseSmartTiming($useSmartTiming) + { + $this->useSmartTiming = $useSmartTiming; + } + + public function getUseSmartTiming() + { + return $this->useSmartTiming; + } +} + +class Google_Service_YouTube_InvideoTiming extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $durationMs; + public $offsetMs; + public $type; + + public function setDurationMs($durationMs) + { + $this->durationMs = $durationMs; + } + + public function getDurationMs() + { + return $this->durationMs; + } + + public function setOffsetMs($offsetMs) + { + $this->offsetMs = $offsetMs; + } + + public function getOffsetMs() + { + return $this->offsetMs; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTube_LiveBroadcast extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentDetailsType = 'Google_Service_YouTube_LiveBroadcastContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_LiveBroadcastSnippet'; + protected $snippetDataType = ''; + protected $statusType = 'Google_Service_YouTube_LiveBroadcastStatus'; + protected $statusDataType = ''; + + public function setContentDetails(Google_Service_YouTube_LiveBroadcastContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_LiveBroadcastSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStatus(Google_Service_YouTube_LiveBroadcastStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_YouTube_LiveBroadcastContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $boundStreamId; + public $enableClosedCaptions; + public $enableContentEncryption; + public $enableDvr; + public $enableEmbed; + protected $monitorStreamType = 'Google_Service_YouTube_MonitorStreamInfo'; + protected $monitorStreamDataType = ''; + public $recordFromStart; + public $startWithSlate; + + public function setBoundStreamId($boundStreamId) + { + $this->boundStreamId = $boundStreamId; + } + + public function getBoundStreamId() + { + return $this->boundStreamId; + } + + public function setEnableClosedCaptions($enableClosedCaptions) + { + $this->enableClosedCaptions = $enableClosedCaptions; + } + + public function getEnableClosedCaptions() + { + return $this->enableClosedCaptions; + } + + public function setEnableContentEncryption($enableContentEncryption) + { + $this->enableContentEncryption = $enableContentEncryption; + } + + public function getEnableContentEncryption() + { + return $this->enableContentEncryption; + } + + public function setEnableDvr($enableDvr) + { + $this->enableDvr = $enableDvr; + } + + public function getEnableDvr() + { + return $this->enableDvr; + } + + public function setEnableEmbed($enableEmbed) + { + $this->enableEmbed = $enableEmbed; + } + + public function getEnableEmbed() + { + return $this->enableEmbed; + } + + public function setMonitorStream(Google_Service_YouTube_MonitorStreamInfo $monitorStream) + { + $this->monitorStream = $monitorStream; + } + + public function getMonitorStream() + { + return $this->monitorStream; + } + + public function setRecordFromStart($recordFromStart) + { + $this->recordFromStart = $recordFromStart; + } + + public function getRecordFromStart() + { + return $this->recordFromStart; + } + + public function setStartWithSlate($startWithSlate) + { + $this->startWithSlate = $startWithSlate; + } + + public function getStartWithSlate() + { + return $this->startWithSlate; + } +} + +class Google_Service_YouTube_LiveBroadcastListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_LiveBroadcast'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_LiveBroadcastSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $actualEndTime; + public $actualStartTime; + public $channelId; + public $description; + public $publishedAt; + public $scheduledEndTime; + public $scheduledStartTime; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setActualEndTime($actualEndTime) + { + $this->actualEndTime = $actualEndTime; + } + + public function getActualEndTime() + { + return $this->actualEndTime; + } + + public function setActualStartTime($actualStartTime) + { + $this->actualStartTime = $actualStartTime; + } + + public function getActualStartTime() + { + return $this->actualStartTime; + } + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setScheduledEndTime($scheduledEndTime) + { + $this->scheduledEndTime = $scheduledEndTime; + } + + public function getScheduledEndTime() + { + return $this->scheduledEndTime; + } + + public function setScheduledStartTime($scheduledStartTime) + { + $this->scheduledStartTime = $scheduledStartTime; + } + + public function getScheduledStartTime() + { + return $this->scheduledStartTime; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_LiveBroadcastStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $lifeCycleStatus; + public $liveBroadcastPriority; + public $privacyStatus; + public $recordingStatus; + + public function setLifeCycleStatus($lifeCycleStatus) + { + $this->lifeCycleStatus = $lifeCycleStatus; + } + + public function getLifeCycleStatus() + { + return $this->lifeCycleStatus; + } + + public function setLiveBroadcastPriority($liveBroadcastPriority) + { + $this->liveBroadcastPriority = $liveBroadcastPriority; + } + + public function getLiveBroadcastPriority() + { + return $this->liveBroadcastPriority; + } + + public function setPrivacyStatus($privacyStatus) + { + $this->privacyStatus = $privacyStatus; + } + + public function getPrivacyStatus() + { + return $this->privacyStatus; + } + + public function setRecordingStatus($recordingStatus) + { + $this->recordingStatus = $recordingStatus; + } + + public function getRecordingStatus() + { + return $this->recordingStatus; + } +} + +class Google_Service_YouTube_LiveStream extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $cdnType = 'Google_Service_YouTube_CdnSettings'; + protected $cdnDataType = ''; + protected $contentDetailsType = 'Google_Service_YouTube_LiveStreamContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_LiveStreamSnippet'; + protected $snippetDataType = ''; + protected $statusType = 'Google_Service_YouTube_LiveStreamStatus'; + protected $statusDataType = ''; + + public function setCdn(Google_Service_YouTube_CdnSettings $cdn) + { + $this->cdn = $cdn; + } + + public function getCdn() + { + return $this->cdn; + } + + public function setContentDetails(Google_Service_YouTube_LiveStreamContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_LiveStreamSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStatus(Google_Service_YouTube_LiveStreamStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_YouTube_LiveStreamContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $closedCaptionsIngestionUrl; + public $isReusable; + + public function setClosedCaptionsIngestionUrl($closedCaptionsIngestionUrl) + { + $this->closedCaptionsIngestionUrl = $closedCaptionsIngestionUrl; + } + + public function getClosedCaptionsIngestionUrl() + { + return $this->closedCaptionsIngestionUrl; + } + + public function setIsReusable($isReusable) + { + $this->isReusable = $isReusable; + } + + public function getIsReusable() + { + return $this->isReusable; + } +} + +class Google_Service_YouTube_LiveStreamListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_LiveStream'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_LiveStreamSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $description; + public $publishedAt; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_LiveStreamStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $streamStatus; + + public function setStreamStatus($streamStatus) + { + $this->streamStatus = $streamStatus; + } + + public function getStreamStatus() + { + return $this->streamStatus; + } +} + +class Google_Service_YouTube_LocalizedProperty extends Google_Collection +{ + protected $collection_key = 'localized'; + protected $internal_gapi_mappings = array( + ); + public $default; + protected $localizedType = 'Google_Service_YouTube_LocalizedString'; + protected $localizedDataType = 'array'; + + public function setDefault($default) + { + $this->default = $default; + } + + public function getDefault() + { + return $this->default; + } + + public function setLocalized($localized) + { + $this->localized = $localized; + } + + public function getLocalized() + { + return $this->localized; + } +} + +class Google_Service_YouTube_LocalizedString extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $language; + public $value; + + public function setLanguage($language) + { + $this->language = $language; + } + + public function getLanguage() + { + return $this->language; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_YouTube_MonitorStreamInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $broadcastStreamDelayMs; + public $embedHtml; + public $enableMonitorStream; + + public function setBroadcastStreamDelayMs($broadcastStreamDelayMs) + { + $this->broadcastStreamDelayMs = $broadcastStreamDelayMs; + } + + public function getBroadcastStreamDelayMs() + { + return $this->broadcastStreamDelayMs; + } + + public function setEmbedHtml($embedHtml) + { + $this->embedHtml = $embedHtml; + } + + public function getEmbedHtml() + { + return $this->embedHtml; + } + + public function setEnableMonitorStream($enableMonitorStream) + { + $this->enableMonitorStream = $enableMonitorStream; + } + + public function getEnableMonitorStream() + { + return $this->enableMonitorStream; + } +} + +class Google_Service_YouTube_PageInfo extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $resultsPerPage; + public $totalResults; + + public function setResultsPerPage($resultsPerPage) + { + $this->resultsPerPage = $resultsPerPage; + } + + public function getResultsPerPage() + { + return $this->resultsPerPage; + } + + public function setTotalResults($totalResults) + { + $this->totalResults = $totalResults; + } + + public function getTotalResults() + { + return $this->totalResults; + } +} + +class Google_Service_YouTube_Playlist extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentDetailsType = 'Google_Service_YouTube_PlaylistContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $playerType = 'Google_Service_YouTube_PlaylistPlayer'; + protected $playerDataType = ''; + protected $snippetType = 'Google_Service_YouTube_PlaylistSnippet'; + protected $snippetDataType = ''; + protected $statusType = 'Google_Service_YouTube_PlaylistStatus'; + protected $statusDataType = ''; + + public function setContentDetails(Google_Service_YouTube_PlaylistContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlayer(Google_Service_YouTube_PlaylistPlayer $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } + + public function setSnippet(Google_Service_YouTube_PlaylistSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStatus(Google_Service_YouTube_PlaylistStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_YouTube_PlaylistContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $itemCount; + + public function setItemCount($itemCount) + { + $this->itemCount = $itemCount; + } + + public function getItemCount() + { + return $this->itemCount; + } +} + +class Google_Service_YouTube_PlaylistItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentDetailsType = 'Google_Service_YouTube_PlaylistItemContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_PlaylistItemSnippet'; + protected $snippetDataType = ''; + protected $statusType = 'Google_Service_YouTube_PlaylistItemStatus'; + protected $statusDataType = ''; + + public function setContentDetails(Google_Service_YouTube_PlaylistItemContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_PlaylistItemSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStatus(Google_Service_YouTube_PlaylistItemStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_YouTube_PlaylistItemContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endAt; + public $note; + public $startAt; + public $videoId; + + public function setEndAt($endAt) + { + $this->endAt = $endAt; + } + + public function getEndAt() + { + return $this->endAt; + } + + public function setNote($note) + { + $this->note = $note; + } + + public function getNote() + { + return $this->note; + } + + public function setStartAt($startAt) + { + $this->startAt = $startAt; + } + + public function getStartAt() + { + return $this->startAt; + } + + public function setVideoId($videoId) + { + $this->videoId = $videoId; + } + + public function getVideoId() + { + return $this->videoId; + } +} + +class Google_Service_YouTube_PlaylistItemListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_PlaylistItem'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_PlaylistItemSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $channelTitle; + public $description; + public $playlistId; + public $position; + public $publishedAt; + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setChannelTitle($channelTitle) + { + $this->channelTitle = $channelTitle; + } + + public function getChannelTitle() + { + return $this->channelTitle; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setPlaylistId($playlistId) + { + $this->playlistId = $playlistId; + } + + public function getPlaylistId() + { + return $this->playlistId; + } + + public function setPosition($position) + { + $this->position = $position; + } + + public function getPosition() + { + return $this->position; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_PlaylistItemStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $privacyStatus; + + public function setPrivacyStatus($privacyStatus) + { + $this->privacyStatus = $privacyStatus; + } + + public function getPrivacyStatus() + { + return $this->privacyStatus; + } +} + +class Google_Service_YouTube_PlaylistListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_Playlist'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_PlaylistPlayer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $embedHtml; + + public function setEmbedHtml($embedHtml) + { + $this->embedHtml = $embedHtml; + } + + public function getEmbedHtml() + { + return $this->embedHtml; + } +} + +class Google_Service_YouTube_PlaylistSnippet extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $channelTitle; + public $description; + public $publishedAt; + public $tags; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setChannelTitle($channelTitle) + { + $this->channelTitle = $channelTitle; + } + + public function getChannelTitle() + { + return $this->channelTitle; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_PlaylistStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $privacyStatus; + + public function setPrivacyStatus($privacyStatus) + { + $this->privacyStatus = $privacyStatus; + } + + public function getPrivacyStatus() + { + return $this->privacyStatus; + } +} + +class Google_Service_YouTube_PromotedItem extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $customMessage; + protected $idType = 'Google_Service_YouTube_PromotedItemId'; + protected $idDataType = ''; + public $promotedByContentOwner; + protected $timingType = 'Google_Service_YouTube_InvideoTiming'; + protected $timingDataType = ''; + + public function setCustomMessage($customMessage) + { + $this->customMessage = $customMessage; + } + + public function getCustomMessage() + { + return $this->customMessage; + } + + public function setId(Google_Service_YouTube_PromotedItemId $id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setPromotedByContentOwner($promotedByContentOwner) + { + $this->promotedByContentOwner = $promotedByContentOwner; + } + + public function getPromotedByContentOwner() + { + return $this->promotedByContentOwner; + } + + public function setTiming(Google_Service_YouTube_InvideoTiming $timing) + { + $this->timing = $timing; + } + + public function getTiming() + { + return $this->timing; + } +} + +class Google_Service_YouTube_PromotedItemId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $recentlyUploadedBy; + public $type; + public $videoId; + public $websiteUrl; + + public function setRecentlyUploadedBy($recentlyUploadedBy) + { + $this->recentlyUploadedBy = $recentlyUploadedBy; + } + + public function getRecentlyUploadedBy() + { + return $this->recentlyUploadedBy; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setVideoId($videoId) + { + $this->videoId = $videoId; + } + + public function getVideoId() + { + return $this->videoId; + } + + public function setWebsiteUrl($websiteUrl) + { + $this->websiteUrl = $websiteUrl; + } + + public function getWebsiteUrl() + { + return $this->websiteUrl; + } +} + +class Google_Service_YouTube_PropertyValue extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $property; + public $value; + + public function setProperty($property) + { + $this->property = $property; + } + + public function getProperty() + { + return $this->property; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_YouTube_ResourceId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $kind; + public $playlistId; + public $videoId; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPlaylistId($playlistId) + { + $this->playlistId = $playlistId; + } + + public function getPlaylistId() + { + return $this->playlistId; + } + + public function setVideoId($videoId) + { + $this->videoId = $videoId; + } + + public function getVideoId() + { + return $this->videoId; + } +} + +class Google_Service_YouTube_SearchListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_SearchResult'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_SearchResult extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $idType = 'Google_Service_YouTube_ResourceId'; + protected $idDataType = ''; + public $kind; + protected $snippetType = 'Google_Service_YouTube_SearchResultSnippet'; + protected $snippetDataType = ''; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId(Google_Service_YouTube_ResourceId $id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_SearchResultSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_SearchResultSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $channelTitle; + public $description; + public $liveBroadcastContent; + public $publishedAt; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setChannelTitle($channelTitle) + { + $this->channelTitle = $channelTitle; + } + + public function getChannelTitle() + { + return $this->channelTitle; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setLiveBroadcastContent($liveBroadcastContent) + { + $this->liveBroadcastContent = $liveBroadcastContent; + } + + public function getLiveBroadcastContent() + { + return $this->liveBroadcastContent; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_Subscription extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $contentDetailsType = 'Google_Service_YouTube_SubscriptionContentDetails'; + protected $contentDetailsDataType = ''; + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_SubscriptionSnippet'; + protected $snippetDataType = ''; + protected $subscriberSnippetType = 'Google_Service_YouTube_SubscriptionSubscriberSnippet'; + protected $subscriberSnippetDataType = ''; + + public function setContentDetails(Google_Service_YouTube_SubscriptionContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_SubscriptionSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setSubscriberSnippet(Google_Service_YouTube_SubscriptionSubscriberSnippet $subscriberSnippet) + { + $this->subscriberSnippet = $subscriberSnippet; + } + + public function getSubscriberSnippet() + { + return $this->subscriberSnippet; + } +} + +class Google_Service_YouTube_SubscriptionContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $activityType; + public $newItemCount; + public $totalItemCount; + + public function setActivityType($activityType) + { + $this->activityType = $activityType; + } + + public function getActivityType() + { + return $this->activityType; + } + + public function setNewItemCount($newItemCount) + { + $this->newItemCount = $newItemCount; + } + + public function getNewItemCount() + { + return $this->newItemCount; + } + + public function setTotalItemCount($totalItemCount) + { + $this->totalItemCount = $totalItemCount; + } + + public function getTotalItemCount() + { + return $this->totalItemCount; + } +} + +class Google_Service_YouTube_SubscriptionListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_Subscription'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_SubscriptionSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $channelTitle; + public $description; + public $publishedAt; + protected $resourceIdType = 'Google_Service_YouTube_ResourceId'; + protected $resourceIdDataType = ''; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setChannelTitle($channelTitle) + { + $this->channelTitle = $channelTitle; + } + + public function getChannelTitle() + { + return $this->channelTitle; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setResourceId(Google_Service_YouTube_ResourceId $resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_SubscriptionSubscriberSnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $channelId; + public $description; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_Thumbnail extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $height; + public $url; + public $width; + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_YouTube_ThumbnailDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $defaultType = 'Google_Service_YouTube_Thumbnail'; + protected $defaultDataType = ''; + protected $highType = 'Google_Service_YouTube_Thumbnail'; + protected $highDataType = ''; + protected $maxresType = 'Google_Service_YouTube_Thumbnail'; + protected $maxresDataType = ''; + protected $mediumType = 'Google_Service_YouTube_Thumbnail'; + protected $mediumDataType = ''; + protected $standardType = 'Google_Service_YouTube_Thumbnail'; + protected $standardDataType = ''; + + public function setDefault(Google_Service_YouTube_Thumbnail $default) + { + $this->default = $default; + } + + public function getDefault() + { + return $this->default; + } + + public function setHigh(Google_Service_YouTube_Thumbnail $high) + { + $this->high = $high; + } + + public function getHigh() + { + return $this->high; + } + + public function setMaxres(Google_Service_YouTube_Thumbnail $maxres) + { + $this->maxres = $maxres; + } + + public function getMaxres() + { + return $this->maxres; + } + + public function setMedium(Google_Service_YouTube_Thumbnail $medium) + { + $this->medium = $medium; + } + + public function getMedium() + { + return $this->medium; + } + + public function setStandard(Google_Service_YouTube_Thumbnail $standard) + { + $this->standard = $standard; + } + + public function getStandard() + { + return $this->standard; + } +} + +class Google_Service_YouTube_ThumbnailSetResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $itemsDataType = 'array'; + public $kind; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_TokenPagination extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_YouTube_Video extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $ageGatingType = 'Google_Service_YouTube_VideoAgeGating'; + protected $ageGatingDataType = ''; + protected $contentDetailsType = 'Google_Service_YouTube_VideoContentDetails'; + protected $contentDetailsDataType = ''; + protected $conversionPingsType = 'Google_Service_YouTube_VideoConversionPings'; + protected $conversionPingsDataType = ''; + public $etag; + protected $fileDetailsType = 'Google_Service_YouTube_VideoFileDetails'; + protected $fileDetailsDataType = ''; + public $id; + public $kind; + protected $liveStreamingDetailsType = 'Google_Service_YouTube_VideoLiveStreamingDetails'; + protected $liveStreamingDetailsDataType = ''; + protected $monetizationDetailsType = 'Google_Service_YouTube_VideoMonetizationDetails'; + protected $monetizationDetailsDataType = ''; + protected $playerType = 'Google_Service_YouTube_VideoPlayer'; + protected $playerDataType = ''; + protected $processingDetailsType = 'Google_Service_YouTube_VideoProcessingDetails'; + protected $processingDetailsDataType = ''; + protected $projectDetailsType = 'Google_Service_YouTube_VideoProjectDetails'; + protected $projectDetailsDataType = ''; + protected $recordingDetailsType = 'Google_Service_YouTube_VideoRecordingDetails'; + protected $recordingDetailsDataType = ''; + protected $snippetType = 'Google_Service_YouTube_VideoSnippet'; + protected $snippetDataType = ''; + protected $statisticsType = 'Google_Service_YouTube_VideoStatistics'; + protected $statisticsDataType = ''; + protected $statusType = 'Google_Service_YouTube_VideoStatus'; + protected $statusDataType = ''; + protected $suggestionsType = 'Google_Service_YouTube_VideoSuggestions'; + protected $suggestionsDataType = ''; + protected $topicDetailsType = 'Google_Service_YouTube_VideoTopicDetails'; + protected $topicDetailsDataType = ''; + + public function setAgeGating(Google_Service_YouTube_VideoAgeGating $ageGating) + { + $this->ageGating = $ageGating; + } + + public function getAgeGating() + { + return $this->ageGating; + } + + public function setContentDetails(Google_Service_YouTube_VideoContentDetails $contentDetails) + { + $this->contentDetails = $contentDetails; + } + + public function getContentDetails() + { + return $this->contentDetails; + } + + public function setConversionPings(Google_Service_YouTube_VideoConversionPings $conversionPings) + { + $this->conversionPings = $conversionPings; + } + + public function getConversionPings() + { + return $this->conversionPings; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setFileDetails(Google_Service_YouTube_VideoFileDetails $fileDetails) + { + $this->fileDetails = $fileDetails; + } + + public function getFileDetails() + { + return $this->fileDetails; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLiveStreamingDetails(Google_Service_YouTube_VideoLiveStreamingDetails $liveStreamingDetails) + { + $this->liveStreamingDetails = $liveStreamingDetails; + } + + public function getLiveStreamingDetails() + { + return $this->liveStreamingDetails; + } + + public function setMonetizationDetails(Google_Service_YouTube_VideoMonetizationDetails $monetizationDetails) + { + $this->monetizationDetails = $monetizationDetails; + } + + public function getMonetizationDetails() + { + return $this->monetizationDetails; + } + + public function setPlayer(Google_Service_YouTube_VideoPlayer $player) + { + $this->player = $player; + } + + public function getPlayer() + { + return $this->player; + } + + public function setProcessingDetails(Google_Service_YouTube_VideoProcessingDetails $processingDetails) + { + $this->processingDetails = $processingDetails; + } + + public function getProcessingDetails() + { + return $this->processingDetails; + } + + public function setProjectDetails(Google_Service_YouTube_VideoProjectDetails $projectDetails) + { + $this->projectDetails = $projectDetails; + } + + public function getProjectDetails() + { + return $this->projectDetails; + } + + public function setRecordingDetails(Google_Service_YouTube_VideoRecordingDetails $recordingDetails) + { + $this->recordingDetails = $recordingDetails; + } + + public function getRecordingDetails() + { + return $this->recordingDetails; + } + + public function setSnippet(Google_Service_YouTube_VideoSnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } + + public function setStatistics(Google_Service_YouTube_VideoStatistics $statistics) + { + $this->statistics = $statistics; + } + + public function getStatistics() + { + return $this->statistics; + } + + public function setStatus(Google_Service_YouTube_VideoStatus $status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setSuggestions(Google_Service_YouTube_VideoSuggestions $suggestions) + { + $this->suggestions = $suggestions; + } + + public function getSuggestions() + { + return $this->suggestions; + } + + public function setTopicDetails(Google_Service_YouTube_VideoTopicDetails $topicDetails) + { + $this->topicDetails = $topicDetails; + } + + public function getTopicDetails() + { + return $this->topicDetails; + } +} + +class Google_Service_YouTube_VideoAgeGating extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $alcoholContent; + public $restricted; + public $videoGameRating; + + public function setAlcoholContent($alcoholContent) + { + $this->alcoholContent = $alcoholContent; + } + + public function getAlcoholContent() + { + return $this->alcoholContent; + } + + public function setRestricted($restricted) + { + $this->restricted = $restricted; + } + + public function getRestricted() + { + return $this->restricted; + } + + public function setVideoGameRating($videoGameRating) + { + $this->videoGameRating = $videoGameRating; + } + + public function getVideoGameRating() + { + return $this->videoGameRating; + } +} + +class Google_Service_YouTube_VideoCategory extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $id; + public $kind; + protected $snippetType = 'Google_Service_YouTube_VideoCategorySnippet'; + protected $snippetDataType = ''; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSnippet(Google_Service_YouTube_VideoCategorySnippet $snippet) + { + $this->snippet = $snippet; + } + + public function getSnippet() + { + return $this->snippet; + } +} + +class Google_Service_YouTube_VideoCategoryListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_VideoCategory'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_VideoCategorySnippet extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $assignable; + public $channelId; + public $title; + + public function setAssignable($assignable) + { + $this->assignable = $assignable; + } + + public function getAssignable() + { + return $this->assignable; + } + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_VideoContentDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $caption; + protected $contentRatingType = 'Google_Service_YouTube_ContentRating'; + protected $contentRatingDataType = ''; + protected $countryRestrictionType = 'Google_Service_YouTube_AccessPolicy'; + protected $countryRestrictionDataType = ''; + public $definition; + public $dimension; + public $duration; + public $licensedContent; + protected $regionRestrictionType = 'Google_Service_YouTube_VideoContentDetailsRegionRestriction'; + protected $regionRestrictionDataType = ''; + + public function setCaption($caption) + { + $this->caption = $caption; + } + + public function getCaption() + { + return $this->caption; + } + + public function setContentRating(Google_Service_YouTube_ContentRating $contentRating) + { + $this->contentRating = $contentRating; + } + + public function getContentRating() + { + return $this->contentRating; + } + + public function setCountryRestriction(Google_Service_YouTube_AccessPolicy $countryRestriction) + { + $this->countryRestriction = $countryRestriction; + } + + public function getCountryRestriction() + { + return $this->countryRestriction; + } + + public function setDefinition($definition) + { + $this->definition = $definition; + } + + public function getDefinition() + { + return $this->definition; + } + + public function setDimension($dimension) + { + $this->dimension = $dimension; + } + + public function getDimension() + { + return $this->dimension; + } + + public function setDuration($duration) + { + $this->duration = $duration; + } + + public function getDuration() + { + return $this->duration; + } + + public function setLicensedContent($licensedContent) + { + $this->licensedContent = $licensedContent; + } + + public function getLicensedContent() + { + return $this->licensedContent; + } + + public function setRegionRestriction(Google_Service_YouTube_VideoContentDetailsRegionRestriction $regionRestriction) + { + $this->regionRestriction = $regionRestriction; + } + + public function getRegionRestriction() + { + return $this->regionRestriction; + } +} + +class Google_Service_YouTube_VideoContentDetailsRegionRestriction extends Google_Collection +{ + protected $collection_key = 'blocked'; + protected $internal_gapi_mappings = array( + ); + public $allowed; + public $blocked; + + public function setAllowed($allowed) + { + $this->allowed = $allowed; + } + + public function getAllowed() + { + return $this->allowed; + } + + public function setBlocked($blocked) + { + $this->blocked = $blocked; + } + + public function getBlocked() + { + return $this->blocked; + } +} + +class Google_Service_YouTube_VideoConversionPing extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $context; + public $conversionUrl; + + public function setContext($context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setConversionUrl($conversionUrl) + { + $this->conversionUrl = $conversionUrl; + } + + public function getConversionUrl() + { + return $this->conversionUrl; + } +} + +class Google_Service_YouTube_VideoConversionPings extends Google_Collection +{ + protected $collection_key = 'pings'; + protected $internal_gapi_mappings = array( + ); + protected $pingsType = 'Google_Service_YouTube_VideoConversionPing'; + protected $pingsDataType = 'array'; + + public function setPings($pings) + { + $this->pings = $pings; + } + + public function getPings() + { + return $this->pings; + } +} + +class Google_Service_YouTube_VideoFileDetails extends Google_Collection +{ + protected $collection_key = 'videoStreams'; + protected $internal_gapi_mappings = array( + ); + protected $audioStreamsType = 'Google_Service_YouTube_VideoFileDetailsAudioStream'; + protected $audioStreamsDataType = 'array'; + public $bitrateBps; + public $container; + public $creationTime; + public $durationMs; + public $fileName; + public $fileSize; + public $fileType; + protected $recordingLocationType = 'Google_Service_YouTube_GeoPoint'; + protected $recordingLocationDataType = ''; + protected $videoStreamsType = 'Google_Service_YouTube_VideoFileDetailsVideoStream'; + protected $videoStreamsDataType = 'array'; + + public function setAudioStreams($audioStreams) + { + $this->audioStreams = $audioStreams; + } + + public function getAudioStreams() + { + return $this->audioStreams; + } + + public function setBitrateBps($bitrateBps) + { + $this->bitrateBps = $bitrateBps; + } + + public function getBitrateBps() + { + return $this->bitrateBps; + } + + public function setContainer($container) + { + $this->container = $container; + } + + public function getContainer() + { + return $this->container; + } + + public function setCreationTime($creationTime) + { + $this->creationTime = $creationTime; + } + + public function getCreationTime() + { + return $this->creationTime; + } + + public function setDurationMs($durationMs) + { + $this->durationMs = $durationMs; + } + + public function getDurationMs() + { + return $this->durationMs; + } + + public function setFileName($fileName) + { + $this->fileName = $fileName; + } + + public function getFileName() + { + return $this->fileName; + } + + public function setFileSize($fileSize) + { + $this->fileSize = $fileSize; + } + + public function getFileSize() + { + return $this->fileSize; + } + + public function setFileType($fileType) + { + $this->fileType = $fileType; + } + + public function getFileType() + { + return $this->fileType; + } + + public function setRecordingLocation(Google_Service_YouTube_GeoPoint $recordingLocation) + { + $this->recordingLocation = $recordingLocation; + } + + public function getRecordingLocation() + { + return $this->recordingLocation; + } + + public function setVideoStreams($videoStreams) + { + $this->videoStreams = $videoStreams; + } + + public function getVideoStreams() + { + return $this->videoStreams; + } +} + +class Google_Service_YouTube_VideoFileDetailsAudioStream extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bitrateBps; + public $channelCount; + public $codec; + public $vendor; + + public function setBitrateBps($bitrateBps) + { + $this->bitrateBps = $bitrateBps; + } + + public function getBitrateBps() + { + return $this->bitrateBps; + } + + public function setChannelCount($channelCount) + { + $this->channelCount = $channelCount; + } + + public function getChannelCount() + { + return $this->channelCount; + } + + public function setCodec($codec) + { + $this->codec = $codec; + } + + public function getCodec() + { + return $this->codec; + } + + public function setVendor($vendor) + { + $this->vendor = $vendor; + } + + public function getVendor() + { + return $this->vendor; + } +} + +class Google_Service_YouTube_VideoFileDetailsVideoStream extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $aspectRatio; + public $bitrateBps; + public $codec; + public $frameRateFps; + public $heightPixels; + public $rotation; + public $vendor; + public $widthPixels; + + public function setAspectRatio($aspectRatio) + { + $this->aspectRatio = $aspectRatio; + } + + public function getAspectRatio() + { + return $this->aspectRatio; + } + + public function setBitrateBps($bitrateBps) + { + $this->bitrateBps = $bitrateBps; + } + + public function getBitrateBps() + { + return $this->bitrateBps; + } + + public function setCodec($codec) + { + $this->codec = $codec; + } + + public function getCodec() + { + return $this->codec; + } + + public function setFrameRateFps($frameRateFps) + { + $this->frameRateFps = $frameRateFps; + } + + public function getFrameRateFps() + { + return $this->frameRateFps; + } + + public function setHeightPixels($heightPixels) + { + $this->heightPixels = $heightPixels; + } + + public function getHeightPixels() + { + return $this->heightPixels; + } + + public function setRotation($rotation) + { + $this->rotation = $rotation; + } + + public function getRotation() + { + return $this->rotation; + } + + public function setVendor($vendor) + { + $this->vendor = $vendor; + } + + public function getVendor() + { + return $this->vendor; + } + + public function setWidthPixels($widthPixels) + { + $this->widthPixels = $widthPixels; + } + + public function getWidthPixels() + { + return $this->widthPixels; + } +} + +class Google_Service_YouTube_VideoGetRatingResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_YouTube_VideoRating'; + protected $itemsDataType = 'array'; + public $kind; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_YouTube_VideoListResponse extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + public $eventId; + protected $itemsType = 'Google_Service_YouTube_Video'; + protected $itemsDataType = 'array'; + public $kind; + public $nextPageToken; + protected $pageInfoType = 'Google_Service_YouTube_PageInfo'; + protected $pageInfoDataType = ''; + public $prevPageToken; + protected $tokenPaginationType = 'Google_Service_YouTube_TokenPagination'; + protected $tokenPaginationDataType = ''; + public $visitorId; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setEventId($eventId) + { + $this->eventId = $eventId; + } + + public function getEventId() + { + return $this->eventId; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setPageInfo(Google_Service_YouTube_PageInfo $pageInfo) + { + $this->pageInfo = $pageInfo; + } + + public function getPageInfo() + { + return $this->pageInfo; + } + + public function setPrevPageToken($prevPageToken) + { + $this->prevPageToken = $prevPageToken; + } + + public function getPrevPageToken() + { + return $this->prevPageToken; + } + + public function setTokenPagination(Google_Service_YouTube_TokenPagination $tokenPagination) + { + $this->tokenPagination = $tokenPagination; + } + + public function getTokenPagination() + { + return $this->tokenPagination; + } + + public function setVisitorId($visitorId) + { + $this->visitorId = $visitorId; + } + + public function getVisitorId() + { + return $this->visitorId; + } +} + +class Google_Service_YouTube_VideoLiveStreamingDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $actualEndTime; + public $actualStartTime; + public $concurrentViewers; + public $scheduledEndTime; + public $scheduledStartTime; + + public function setActualEndTime($actualEndTime) + { + $this->actualEndTime = $actualEndTime; + } + + public function getActualEndTime() + { + return $this->actualEndTime; + } + + public function setActualStartTime($actualStartTime) + { + $this->actualStartTime = $actualStartTime; + } + + public function getActualStartTime() + { + return $this->actualStartTime; + } + + public function setConcurrentViewers($concurrentViewers) + { + $this->concurrentViewers = $concurrentViewers; + } + + public function getConcurrentViewers() + { + return $this->concurrentViewers; + } + + public function setScheduledEndTime($scheduledEndTime) + { + $this->scheduledEndTime = $scheduledEndTime; + } + + public function getScheduledEndTime() + { + return $this->scheduledEndTime; + } + + public function setScheduledStartTime($scheduledStartTime) + { + $this->scheduledStartTime = $scheduledStartTime; + } + + public function getScheduledStartTime() + { + return $this->scheduledStartTime; + } +} + +class Google_Service_YouTube_VideoMonetizationDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $accessType = 'Google_Service_YouTube_AccessPolicy'; + protected $accessDataType = ''; + + public function setAccess(Google_Service_YouTube_AccessPolicy $access) + { + $this->access = $access; + } + + public function getAccess() + { + return $this->access; + } +} + +class Google_Service_YouTube_VideoPlayer extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $embedHtml; + + public function setEmbedHtml($embedHtml) + { + $this->embedHtml = $embedHtml; + } + + public function getEmbedHtml() + { + return $this->embedHtml; + } +} + +class Google_Service_YouTube_VideoProcessingDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $editorSuggestionsAvailability; + public $fileDetailsAvailability; + public $processingFailureReason; + public $processingIssuesAvailability; + protected $processingProgressType = 'Google_Service_YouTube_VideoProcessingDetailsProcessingProgress'; + protected $processingProgressDataType = ''; + public $processingStatus; + public $tagSuggestionsAvailability; + public $thumbnailsAvailability; + + public function setEditorSuggestionsAvailability($editorSuggestionsAvailability) + { + $this->editorSuggestionsAvailability = $editorSuggestionsAvailability; + } + + public function getEditorSuggestionsAvailability() + { + return $this->editorSuggestionsAvailability; + } + + public function setFileDetailsAvailability($fileDetailsAvailability) + { + $this->fileDetailsAvailability = $fileDetailsAvailability; + } + + public function getFileDetailsAvailability() + { + return $this->fileDetailsAvailability; + } + + public function setProcessingFailureReason($processingFailureReason) + { + $this->processingFailureReason = $processingFailureReason; + } + + public function getProcessingFailureReason() + { + return $this->processingFailureReason; + } + + public function setProcessingIssuesAvailability($processingIssuesAvailability) + { + $this->processingIssuesAvailability = $processingIssuesAvailability; + } + + public function getProcessingIssuesAvailability() + { + return $this->processingIssuesAvailability; + } + + public function setProcessingProgress(Google_Service_YouTube_VideoProcessingDetailsProcessingProgress $processingProgress) + { + $this->processingProgress = $processingProgress; + } + + public function getProcessingProgress() + { + return $this->processingProgress; + } + + public function setProcessingStatus($processingStatus) + { + $this->processingStatus = $processingStatus; + } + + public function getProcessingStatus() + { + return $this->processingStatus; + } + + public function setTagSuggestionsAvailability($tagSuggestionsAvailability) + { + $this->tagSuggestionsAvailability = $tagSuggestionsAvailability; + } + + public function getTagSuggestionsAvailability() + { + return $this->tagSuggestionsAvailability; + } + + public function setThumbnailsAvailability($thumbnailsAvailability) + { + $this->thumbnailsAvailability = $thumbnailsAvailability; + } + + public function getThumbnailsAvailability() + { + return $this->thumbnailsAvailability; + } +} + +class Google_Service_YouTube_VideoProcessingDetailsProcessingProgress extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $partsProcessed; + public $partsTotal; + public $timeLeftMs; + + public function setPartsProcessed($partsProcessed) + { + $this->partsProcessed = $partsProcessed; + } + + public function getPartsProcessed() + { + return $this->partsProcessed; + } + + public function setPartsTotal($partsTotal) + { + $this->partsTotal = $partsTotal; + } + + public function getPartsTotal() + { + return $this->partsTotal; + } + + public function setTimeLeftMs($timeLeftMs) + { + $this->timeLeftMs = $timeLeftMs; + } + + public function getTimeLeftMs() + { + return $this->timeLeftMs; + } +} + +class Google_Service_YouTube_VideoProjectDetails extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $tags; + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } +} + +class Google_Service_YouTube_VideoRating extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $rating; + public $videoId; + + public function setRating($rating) + { + $this->rating = $rating; + } + + public function getRating() + { + return $this->rating; + } + + public function setVideoId($videoId) + { + $this->videoId = $videoId; + } + + public function getVideoId() + { + return $this->videoId; + } +} + +class Google_Service_YouTube_VideoRecordingDetails extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $locationType = 'Google_Service_YouTube_GeoPoint'; + protected $locationDataType = ''; + public $locationDescription; + public $recordingDate; + + public function setLocation(Google_Service_YouTube_GeoPoint $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setLocationDescription($locationDescription) + { + $this->locationDescription = $locationDescription; + } + + public function getLocationDescription() + { + return $this->locationDescription; + } + + public function setRecordingDate($recordingDate) + { + $this->recordingDate = $recordingDate; + } + + public function getRecordingDate() + { + return $this->recordingDate; + } +} + +class Google_Service_YouTube_VideoSnippet extends Google_Collection +{ + protected $collection_key = 'tags'; + protected $internal_gapi_mappings = array( + ); + public $categoryId; + public $channelId; + public $channelTitle; + public $description; + public $liveBroadcastContent; + public $publishedAt; + public $tags; + protected $thumbnailsType = 'Google_Service_YouTube_ThumbnailDetails'; + protected $thumbnailsDataType = ''; + public $title; + + public function setCategoryId($categoryId) + { + $this->categoryId = $categoryId; + } + + public function getCategoryId() + { + return $this->categoryId; + } + + public function setChannelId($channelId) + { + $this->channelId = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setChannelTitle($channelTitle) + { + $this->channelTitle = $channelTitle; + } + + public function getChannelTitle() + { + return $this->channelTitle; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setLiveBroadcastContent($liveBroadcastContent) + { + $this->liveBroadcastContent = $liveBroadcastContent; + } + + public function getLiveBroadcastContent() + { + return $this->liveBroadcastContent; + } + + public function setPublishedAt($publishedAt) + { + $this->publishedAt = $publishedAt; + } + + public function getPublishedAt() + { + return $this->publishedAt; + } + + public function setTags($tags) + { + $this->tags = $tags; + } + + public function getTags() + { + return $this->tags; + } + + public function setThumbnails(Google_Service_YouTube_ThumbnailDetails $thumbnails) + { + $this->thumbnails = $thumbnails; + } + + public function getThumbnails() + { + return $this->thumbnails; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} + +class Google_Service_YouTube_VideoStatistics extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $commentCount; + public $dislikeCount; + public $favoriteCount; + public $likeCount; + public $viewCount; + + public function setCommentCount($commentCount) + { + $this->commentCount = $commentCount; + } + + public function getCommentCount() + { + return $this->commentCount; + } + + public function setDislikeCount($dislikeCount) + { + $this->dislikeCount = $dislikeCount; + } + + public function getDislikeCount() + { + return $this->dislikeCount; + } + + public function setFavoriteCount($favoriteCount) + { + $this->favoriteCount = $favoriteCount; + } + + public function getFavoriteCount() + { + return $this->favoriteCount; + } + + public function setLikeCount($likeCount) + { + $this->likeCount = $likeCount; + } + + public function getLikeCount() + { + return $this->likeCount; + } + + public function setViewCount($viewCount) + { + $this->viewCount = $viewCount; + } + + public function getViewCount() + { + return $this->viewCount; + } +} + +class Google_Service_YouTube_VideoStatus extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $embeddable; + public $failureReason; + public $license; + public $privacyStatus; + public $publicStatsViewable; + public $publishAt; + public $rejectionReason; + public $uploadStatus; + + public function setEmbeddable($embeddable) + { + $this->embeddable = $embeddable; + } + + public function getEmbeddable() + { + return $this->embeddable; + } + + public function setFailureReason($failureReason) + { + $this->failureReason = $failureReason; + } + + public function getFailureReason() + { + return $this->failureReason; + } + + public function setLicense($license) + { + $this->license = $license; + } + + public function getLicense() + { + return $this->license; + } + + public function setPrivacyStatus($privacyStatus) + { + $this->privacyStatus = $privacyStatus; + } + + public function getPrivacyStatus() + { + return $this->privacyStatus; + } + + public function setPublicStatsViewable($publicStatsViewable) + { + $this->publicStatsViewable = $publicStatsViewable; + } + + public function getPublicStatsViewable() + { + return $this->publicStatsViewable; + } + + public function setPublishAt($publishAt) + { + $this->publishAt = $publishAt; + } + + public function getPublishAt() + { + return $this->publishAt; + } + + public function setRejectionReason($rejectionReason) + { + $this->rejectionReason = $rejectionReason; + } + + public function getRejectionReason() + { + return $this->rejectionReason; + } + + public function setUploadStatus($uploadStatus) + { + $this->uploadStatus = $uploadStatus; + } + + public function getUploadStatus() + { + return $this->uploadStatus; + } +} + +class Google_Service_YouTube_VideoSuggestions extends Google_Collection +{ + protected $collection_key = 'tagSuggestions'; + protected $internal_gapi_mappings = array( + ); + public $editorSuggestions; + public $processingErrors; + public $processingHints; + public $processingWarnings; + protected $tagSuggestionsType = 'Google_Service_YouTube_VideoSuggestionsTagSuggestion'; + protected $tagSuggestionsDataType = 'array'; + + public function setEditorSuggestions($editorSuggestions) + { + $this->editorSuggestions = $editorSuggestions; + } + + public function getEditorSuggestions() + { + return $this->editorSuggestions; + } + + public function setProcessingErrors($processingErrors) + { + $this->processingErrors = $processingErrors; + } + + public function getProcessingErrors() + { + return $this->processingErrors; + } + + public function setProcessingHints($processingHints) + { + $this->processingHints = $processingHints; + } + + public function getProcessingHints() + { + return $this->processingHints; + } + + public function setProcessingWarnings($processingWarnings) + { + $this->processingWarnings = $processingWarnings; + } + + public function getProcessingWarnings() + { + return $this->processingWarnings; + } + + public function setTagSuggestions($tagSuggestions) + { + $this->tagSuggestions = $tagSuggestions; + } + + public function getTagSuggestions() + { + return $this->tagSuggestions; + } +} + +class Google_Service_YouTube_VideoSuggestionsTagSuggestion extends Google_Collection +{ + protected $collection_key = 'categoryRestricts'; + protected $internal_gapi_mappings = array( + ); + public $categoryRestricts; + public $tag; + + public function setCategoryRestricts($categoryRestricts) + { + $this->categoryRestricts = $categoryRestricts; + } + + public function getCategoryRestricts() + { + return $this->categoryRestricts; + } + + public function setTag($tag) + { + $this->tag = $tag; + } + + public function getTag() + { + return $this->tag; + } +} + +class Google_Service_YouTube_VideoTopicDetails extends Google_Collection +{ + protected $collection_key = 'topicIds'; + protected $internal_gapi_mappings = array( + ); + public $relevantTopicIds; + public $topicIds; + + public function setRelevantTopicIds($relevantTopicIds) + { + $this->relevantTopicIds = $relevantTopicIds; + } + + public function getRelevantTopicIds() + { + return $this->relevantTopicIds; + } + + public function setTopicIds($topicIds) + { + $this->topicIds = $topicIds; + } + + public function getTopicIds() + { + return $this->topicIds; + } +} + +class Google_Service_YouTube_WatchSettings extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $backgroundColor; + public $featuredPlaylistId; + public $textColor; + + public function setBackgroundColor($backgroundColor) + { + $this->backgroundColor = $backgroundColor; + } + + public function getBackgroundColor() + { + return $this->backgroundColor; + } + + public function setFeaturedPlaylistId($featuredPlaylistId) + { + $this->featuredPlaylistId = $featuredPlaylistId; + } + + public function getFeaturedPlaylistId() + { + return $this->featuredPlaylistId; + } + + public function setTextColor($textColor) + { + $this->textColor = $textColor; + } + + public function getTextColor() + { + return $this->textColor; + } +} diff --git a/vendor/google/apiclient/src/Google/Service/YouTubeAnalytics.php b/vendor/google/apiclient/src/Google/Service/YouTubeAnalytics.php new file mode 100644 index 0000000..707a9e7 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Service/YouTubeAnalytics.php @@ -0,0 +1,647 @@ + + * Retrieve your YouTube Analytics reports. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_YouTubeAnalytics extends Google_Service +{ + /** View YouTube Analytics monetary reports for your YouTube content. */ + const YT_ANALYTICS_MONETARY_READONLY = "https://www.googleapis.com/auth/yt-analytics-monetary.readonly"; + /** View YouTube Analytics reports for your YouTube content. */ + const YT_ANALYTICS_READONLY = "https://www.googleapis.com/auth/yt-analytics.readonly"; + + public $batchReportDefinitions; + public $batchReports; + public $reports; + + + /** + * Constructs the internal representation of the YouTubeAnalytics service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'youtube/analytics/v1/'; + $this->version = 'v1'; + $this->serviceName = 'youtubeAnalytics'; + + $this->batchReportDefinitions = new Google_Service_YouTubeAnalytics_BatchReportDefinitions_Resource( + $this, + $this->serviceName, + 'batchReportDefinitions', + array( + 'methods' => array( + 'list' => array( + 'path' => 'batchReportDefinitions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->batchReports = new Google_Service_YouTubeAnalytics_BatchReports_Resource( + $this, + $this->serviceName, + 'batchReports', + array( + 'methods' => array( + 'list' => array( + 'path' => 'batchReports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'batchReportDefinitionId' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'onBehalfOfContentOwner' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->reports = new Google_Service_YouTubeAnalytics_Reports_Resource( + $this, + $this->serviceName, + 'reports', + array( + 'methods' => array( + 'query' => array( + 'path' => 'reports', + 'httpMethod' => 'GET', + 'parameters' => array( + 'ids' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'start-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'end-date' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'metrics' => array( + 'location' => 'query', + 'type' => 'string', + 'required' => true, + ), + 'max-results' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'sort' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'dimensions' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'start-index' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'filters' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "batchReportDefinitions" collection of methods. + * Typical usage is: + * + * $youtubeAnalyticsService = new Google_Service_YouTubeAnalytics(...); + * $batchReportDefinitions = $youtubeAnalyticsService->batchReportDefinitions; + * + */ +class Google_Service_YouTubeAnalytics_BatchReportDefinitions_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of available batch report definitions. + * (batchReportDefinitions.listBatchReportDefinitions) + * + * @param string $onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on + * behalf of. + * @param array $optParams Optional parameters. + * @return Google_Service_YouTubeAnalytics_BatchReportDefinitionList + */ + public function listBatchReportDefinitions($onBehalfOfContentOwner, $optParams = array()) + { + $params = array('onBehalfOfContentOwner' => $onBehalfOfContentOwner); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTubeAnalytics_BatchReportDefinitionList"); + } +} + +/** + * The "batchReports" collection of methods. + * Typical usage is: + * + * $youtubeAnalyticsService = new Google_Service_YouTubeAnalytics(...); + * $batchReports = $youtubeAnalyticsService->batchReports; + * + */ +class Google_Service_YouTubeAnalytics_BatchReports_Resource extends Google_Service_Resource +{ + + /** + * Retrieves a list of processed batch reports. (batchReports.listBatchReports) + * + * @param string $batchReportDefinitionId + * The batchReportDefinitionId parameter specifies the ID of the batch reportort definition for + * which you are retrieving reports. + * @param string $onBehalfOfContentOwner + * The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on + * behalf of. + * @param array $optParams Optional parameters. + * @return Google_Service_YouTubeAnalytics_BatchReportList + */ + public function listBatchReports($batchReportDefinitionId, $onBehalfOfContentOwner, $optParams = array()) + { + $params = array('batchReportDefinitionId' => $batchReportDefinitionId, 'onBehalfOfContentOwner' => $onBehalfOfContentOwner); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_YouTubeAnalytics_BatchReportList"); + } +} + +/** + * The "reports" collection of methods. + * Typical usage is: + * + * $youtubeAnalyticsService = new Google_Service_YouTubeAnalytics(...); + * $reports = $youtubeAnalyticsService->reports; + * + */ +class Google_Service_YouTubeAnalytics_Reports_Resource extends Google_Service_Resource +{ + + /** + * Retrieve your YouTube Analytics reports. (reports.query) + * + * @param string $ids + * Identifies the YouTube channel or content owner for which you are retrieving YouTube Analytics + * data. + - To request data for a YouTube user, set the ids parameter value to channel==CHANNEL_ID, + * where CHANNEL_ID specifies the unique YouTube channel ID. + - To request data for a YouTube CMS + * content owner, set the ids parameter value to contentOwner==OWNER_NAME, where OWNER_NAME is the + * CMS name of the content owner. + * @param string $startDate + * The start date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format. + * @param string $endDate + * The end date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format. + * @param string $metrics + * A comma-separated list of YouTube Analytics metrics, such as views or likes,dislikes. See the + * Available Reports document for a list of the reports that you can retrieve and the metrics + * available in each report, and see the Metrics document for definitions of those metrics. + * @param array $optParams Optional parameters. + * + * @opt_param int max-results + * The maximum number of rows to include in the response. + * @opt_param string sort + * A comma-separated list of dimensions or metrics that determine the sort order for YouTube + * Analytics data. By default the sort order is ascending. The '-' prefix causes descending sort + * order. + * @opt_param string dimensions + * A comma-separated list of YouTube Analytics dimensions, such as views or ageGroup,gender. See + * the Available Reports document for a list of the reports that you can retrieve and the + * dimensions used for those reports. Also see the Dimensions document for definitions of those + * dimensions. + * @opt_param int start-index + * An index of the first entity to retrieve. Use this parameter as a pagination mechanism along + * with the max-results parameter (one-based, inclusive). + * @opt_param string filters + * A list of filters that should be applied when retrieving YouTube Analytics data. The Available + * Reports document identifies the dimensions that can be used to filter each report, and the + * Dimensions document defines those dimensions. If a request uses multiple filters, join them + * together with a semicolon (;), and the returned result table will satisfy both filters. For + * example, a filters parameter value of video==dMH0bHeiRNg;country==IT restricts the result set to + * include data for the given video in Italy. + * @return Google_Service_YouTubeAnalytics_ResultTable + */ + public function query($ids, $startDate, $endDate, $metrics, $optParams = array()) + { + $params = array('ids' => $ids, 'start-date' => $startDate, 'end-date' => $endDate, 'metrics' => $metrics); + $params = array_merge($params, $optParams); + return $this->call('query', array($params), "Google_Service_YouTubeAnalytics_ResultTable"); + } +} + + + + +class Google_Service_YouTubeAnalytics_BatchReportDefinitionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_YouTubeAnalytics_BatchReportDefinitionTemplate'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_YouTubeAnalytics_BatchReportDefinitionTemplate extends Google_Collection +{ + protected $collection_key = 'defaultOutput'; + protected $internal_gapi_mappings = array( + ); + protected $defaultOutputType = 'Google_Service_YouTubeAnalytics_BatchReportDefinitionTemplateDefaultOutput'; + protected $defaultOutputDataType = 'array'; + public $id; + public $name; + public $status; + public $type; + + public function setDefaultOutput($defaultOutput) + { + $this->defaultOutput = $defaultOutput; + } + + public function getDefaultOutput() + { + return $this->defaultOutput; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTubeAnalytics_BatchReportDefinitionTemplateDefaultOutput extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $format; + public $type; + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTubeAnalytics_BatchReportList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_YouTubeAnalytics_BatchReportTemplate'; + protected $itemsDataType = 'array'; + public $kind; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_YouTubeAnalytics_BatchReportTemplate extends Google_Collection +{ + protected $collection_key = 'outputs'; + protected $internal_gapi_mappings = array( + "reportId" => "report_id", + ); + public $id; + protected $outputsType = 'Google_Service_YouTubeAnalytics_BatchReportTemplateOutputs'; + protected $outputsDataType = 'array'; + public $reportId; + protected $timeSpanType = 'Google_Service_YouTubeAnalytics_BatchReportTemplateTimeSpan'; + protected $timeSpanDataType = ''; + public $timeUpdated; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setOutputs($outputs) + { + $this->outputs = $outputs; + } + + public function getOutputs() + { + return $this->outputs; + } + + public function setReportId($reportId) + { + $this->reportId = $reportId; + } + + public function getReportId() + { + return $this->reportId; + } + + public function setTimeSpan(Google_Service_YouTubeAnalytics_BatchReportTemplateTimeSpan $timeSpan) + { + $this->timeSpan = $timeSpan; + } + + public function getTimeSpan() + { + return $this->timeSpan; + } + + public function setTimeUpdated($timeUpdated) + { + $this->timeUpdated = $timeUpdated; + } + + public function getTimeUpdated() + { + return $this->timeUpdated; + } +} + +class Google_Service_YouTubeAnalytics_BatchReportTemplateOutputs extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $downloadUrl; + public $format; + public $type; + + public function setDownloadUrl($downloadUrl) + { + $this->downloadUrl = $downloadUrl; + } + + public function getDownloadUrl() + { + return $this->downloadUrl; + } + + public function setFormat($format) + { + $this->format = $format; + } + + public function getFormat() + { + return $this->format; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_YouTubeAnalytics_BatchReportTemplateTimeSpan extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $endTime; + public $startTime; + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } +} + +class Google_Service_YouTubeAnalytics_ResultTable extends Google_Collection +{ + protected $collection_key = 'rows'; + protected $internal_gapi_mappings = array( + ); + protected $columnHeadersType = 'Google_Service_YouTubeAnalytics_ResultTableColumnHeaders'; + protected $columnHeadersDataType = 'array'; + public $kind; + public $rows; + + public function setColumnHeaders($columnHeaders) + { + $this->columnHeaders = $columnHeaders; + } + + public function getColumnHeaders() + { + return $this->columnHeaders; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setRows($rows) + { + $this->rows = $rows; + } + + public function getRows() + { + return $this->rows; + } +} + +class Google_Service_YouTubeAnalytics_ResultTableColumnHeaders extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $columnType; + public $dataType; + public $name; + + public function setColumnType($columnType) + { + $this->columnType = $columnType; + } + + public function getColumnType() + { + return $this->columnType; + } + + public function setDataType($dataType) + { + $this->dataType = $dataType; + } + + public function getDataType() + { + return $this->dataType; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +} diff --git a/vendor/google/apiclient/src/Google/Signer/Abstract.php b/vendor/google/apiclient/src/Google/Signer/Abstract.php new file mode 100644 index 0000000..2501809 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Signer/Abstract.php @@ -0,0 +1,29 @@ + + */ +abstract class Google_Signer_Abstract +{ + /** + * Signs data, returns the signature as binary data. + */ + abstract public function sign($data); +} diff --git a/vendor/google/apiclient/src/Google/Signer/P12.php b/vendor/google/apiclient/src/Google/Signer/P12.php new file mode 100644 index 0000000..7cc6098 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Signer/P12.php @@ -0,0 +1,91 @@ + + */ +class Google_Signer_P12 extends Google_Signer_Abstract +{ + // OpenSSL private key resource + private $privateKey; + + // Creates a new signer from a .p12 file. + public function __construct($p12, $password) + { + if (!function_exists('openssl_x509_read')) { + throw new Google_Exception( + 'The Google PHP API library needs the openssl PHP extension' + ); + } + + // If the private key is provided directly, then this isn't in the p12 + // format. Different versions of openssl support different p12 formats + // and the key from google wasn't being accepted by the version available + // at the time. + if (!$password && strpos($p12, "-----BEGIN RSA PRIVATE KEY-----") !== false) { + $this->privateKey = openssl_pkey_get_private($p12); + } else { + // This throws on error + $certs = array(); + if (!openssl_pkcs12_read($p12, $certs, $password)) { + throw new Google_Auth_Exception( + "Unable to parse the p12 file. " . + "Is this a .p12 file? Is the password correct? OpenSSL error: " . + openssl_error_string() + ); + } + // TODO(beaton): is this part of the contract for the openssl_pkcs12_read + // method? What happens if there are multiple private keys? Do we care? + if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) { + throw new Google_Auth_Exception("No private key found in p12 file."); + } + $this->privateKey = openssl_pkey_get_private($certs['pkey']); + } + + if (!$this->privateKey) { + throw new Google_Auth_Exception("Unable to load private key"); + } + } + + public function __destruct() + { + if ($this->privateKey) { + openssl_pkey_free($this->privateKey); + } + } + + public function sign($data) + { + if (version_compare(PHP_VERSION, '5.3.0') < 0) { + throw new Google_Auth_Exception( + "PHP 5.3.0 or higher is required to use service accounts." + ); + } + $hash = defined("OPENSSL_ALGO_SHA256") ? OPENSSL_ALGO_SHA256 : "sha256"; + if (!openssl_sign($data, $signature, $this->privateKey, $hash)) { + throw new Google_Auth_Exception("Unable to sign data"); + } + return $signature; + } +} diff --git a/vendor/google/apiclient/src/Google/Utils.php b/vendor/google/apiclient/src/Google/Utils.php new file mode 100644 index 0000000..f5ef32c --- /dev/null +++ b/vendor/google/apiclient/src/Google/Utils.php @@ -0,0 +1,135 @@ + + */ +class Google_Utils +{ + public static function urlSafeB64Encode($data) + { + $b64 = base64_encode($data); + $b64 = str_replace( + array('+', '/', '\r', '\n', '='), + array('-', '_'), + $b64 + ); + return $b64; + } + + public static function urlSafeB64Decode($b64) + { + $b64 = str_replace( + array('-', '_'), + array('+', '/'), + $b64 + ); + return base64_decode($b64); + } + + /** + * Misc function used to count the number of bytes in a post body, in the + * world of multi-byte chars and the unpredictability of + * strlen/mb_strlen/sizeof, this is the only way to do that in a sane + * manner at the moment. + * + * This algorithm was originally developed for the + * Solar Framework by Paul M. Jones + * + * @link http://solarphp.com/ + * @link http://svn.solarphp.com/core/trunk/Solar/Json.php + * @link http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php + * @param string $str + * @return int The number of bytes in a string. + */ + public static function getStrLen($str) + { + $strlenVar = strlen($str); + $d = $ret = 0; + for ($count = 0; $count < $strlenVar; ++ $count) { + $ordinalValue = ord($str{$ret}); + switch (true) { + case (($ordinalValue >= 0x20) && ($ordinalValue <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ret ++; + break; + case (($ordinalValue & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 2; + break; + case (($ordinalValue & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 3; + break; + case (($ordinalValue & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 4; + break; + case (($ordinalValue & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 5; + break; + case (($ordinalValue & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 6; + break; + default: + $ret ++; + } + } + return $ret; + } + + /** + * Normalize all keys in an array to lower-case. + * @param array $arr + * @return array Normalized array. + */ + public static function normalize($arr) + { + if (!is_array($arr)) { + return array(); + } + + $normalized = array(); + foreach ($arr as $key => $val) { + $normalized[strtolower($key)] = $val; + } + return $normalized; + } + + /** + * Convert a string to camelCase + * @param string $value + * @return string + */ + public static function camelCase($value) + { + $value = ucwords(str_replace(array('-', '_'), ' ', $value)); + $value = str_replace(' ', '', $value); + $value[0] = strtolower($value[0]); + return $value; + } +} diff --git a/vendor/google/apiclient/src/Google/Utils/URITemplate.php b/vendor/google/apiclient/src/Google/Utils/URITemplate.php new file mode 100644 index 0000000..f5ee38b --- /dev/null +++ b/vendor/google/apiclient/src/Google/Utils/URITemplate.php @@ -0,0 +1,333 @@ + "reserved", + "/" => "segments", + "." => "dotprefix", + "#" => "fragment", + ";" => "semicolon", + "?" => "form", + "&" => "continuation" + ); + + /** + * @var reserved array + * These are the characters which should not be URL encoded in reserved + * strings. + */ + private $reserved = array( + "=", ",", "!", "@", "|", ":", "/", "?", "#", + "[", "]",'$', "&", "'", "(", ")", "*", "+", ";" + ); + private $reservedEncoded = array( + "%3D", "%2C", "%21", "%40", "%7C", "%3A", "%2F", "%3F", + "%23", "%5B", "%5D", "%24", "%26", "%27", "%28", "%29", + "%2A", "%2B", "%3B" + ); + + public function parse($string, array $parameters) + { + return $this->resolveNextSection($string, $parameters); + } + + /** + * This function finds the first matching {...} block and + * executes the replacement. It then calls itself to find + * subsequent blocks, if any. + */ + private function resolveNextSection($string, $parameters) + { + $start = strpos($string, "{"); + if ($start === false) { + return $string; + } + $end = strpos($string, "}"); + if ($end === false) { + return $string; + } + $string = $this->replace($string, $start, $end, $parameters); + return $this->resolveNextSection($string, $parameters); + } + + private function replace($string, $start, $end, $parameters) + { + // We know a data block will have {} round it, so we can strip that. + $data = substr($string, $start + 1, $end - $start - 1); + + // If the first character is one of the reserved operators, it effects + // the processing of the stream. + if (isset($this->operators[$data[0]])) { + $op = $this->operators[$data[0]]; + $data = substr($data, 1); + $prefix = ""; + $prefix_on_missing = false; + + switch ($op) { + case "reserved": + // Reserved means certain characters should not be URL encoded + $data = $this->replaceVars($data, $parameters, ",", null, true); + break; + case "fragment": + // Comma separated with fragment prefix. Bare values only. + $prefix = "#"; + $prefix_on_missing = true; + $data = $this->replaceVars($data, $parameters, ",", null, true); + break; + case "segments": + // Slash separated data. Bare values only. + $prefix = "/"; + $data =$this->replaceVars($data, $parameters, "/"); + break; + case "dotprefix": + // Dot separated data. Bare values only. + $prefix = "."; + $prefix_on_missing = true; + $data = $this->replaceVars($data, $parameters, "."); + break; + case "semicolon": + // Semicolon prefixed and separated. Uses the key name + $prefix = ";"; + $data = $this->replaceVars($data, $parameters, ";", "=", false, true, false); + break; + case "form": + // Standard URL format. Uses the key name + $prefix = "?"; + $data = $this->replaceVars($data, $parameters, "&", "="); + break; + case "continuation": + // Standard URL, but with leading ampersand. Uses key name. + $prefix = "&"; + $data = $this->replaceVars($data, $parameters, "&", "="); + break; + } + + // Add the initial prefix character if data is valid. + if ($data || ($data !== false && $prefix_on_missing)) { + $data = $prefix . $data; + } + + } else { + // If no operator we replace with the defaults. + $data = $this->replaceVars($data, $parameters); + } + // This is chops out the {...} and replaces with the new section. + return substr($string, 0, $start) . $data . substr($string, $end + 1); + } + + private function replaceVars( + $section, + $parameters, + $sep = ",", + $combine = null, + $reserved = false, + $tag_empty = false, + $combine_on_empty = true + ) { + if (strpos($section, ",") === false) { + // If we only have a single value, we can immediately process. + return $this->combine( + $section, + $parameters, + $sep, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ); + } else { + // If we have multiple values, we need to split and loop over them. + // Each is treated individually, then glued together with the + // separator character. + $vars = explode(",", $section); + return $this->combineList( + $vars, + $sep, + $parameters, + $combine, + $reserved, + false, // Never emit empty strings in multi-param replacements + $combine_on_empty + ); + } + } + + public function combine( + $key, + $parameters, + $sep, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ) { + $length = false; + $explode = false; + $skip_final_combine = false; + $value = false; + + // Check for length restriction. + if (strpos($key, ":") !== false) { + list($key, $length) = explode(":", $key); + } + + // Check for explode parameter. + if ($key[strlen($key) - 1] == "*") { + $explode = true; + $key = substr($key, 0, -1); + $skip_final_combine = true; + } + + // Define the list separator. + $list_sep = $explode ? $sep : ","; + + if (isset($parameters[$key])) { + $data_type = $this->getDataType($parameters[$key]); + switch($data_type) { + case self::TYPE_SCALAR: + $value = $this->getValue($parameters[$key], $length); + break; + case self::TYPE_LIST: + $values = array(); + foreach ($parameters[$key] as $pkey => $pvalue) { + $pvalue = $this->getValue($pvalue, $length); + if ($combine && $explode) { + $values[$pkey] = $key . $combine . $pvalue; + } else { + $values[$pkey] = $pvalue; + } + } + $value = implode($list_sep, $values); + if ($value == '') { + return ''; + } + break; + case self::TYPE_MAP: + $values = array(); + foreach ($parameters[$key] as $pkey => $pvalue) { + $pvalue = $this->getValue($pvalue, $length); + if ($explode) { + $pkey = $this->getValue($pkey, $length); + $values[] = $pkey . "=" . $pvalue; // Explode triggers = combine. + } else { + $values[] = $pkey; + $values[] = $pvalue; + } + } + $value = implode($list_sep, $values); + if ($value == '') { + return false; + } + break; + } + } else if ($tag_empty) { + // If we are just indicating empty values with their key name, return that. + return $key; + } else { + // Otherwise we can skip this variable due to not being defined. + return false; + } + + if ($reserved) { + $value = str_replace($this->reservedEncoded, $this->reserved, $value); + } + + // If we do not need to include the key name, we just return the raw + // value. + if (!$combine || $skip_final_combine) { + return $value; + } + + // Else we combine the key name: foo=bar, if value is not the empty string. + return $key . ($value != '' || $combine_on_empty ? $combine . $value : ''); + } + + /** + * Return the type of a passed in value + */ + private function getDataType($data) + { + if (is_array($data)) { + reset($data); + if (key($data) !== 0) { + return self::TYPE_MAP; + } + return self::TYPE_LIST; + } + return self::TYPE_SCALAR; + } + + /** + * Utility function that merges multiple combine calls + * for multi-key templates. + */ + private function combineList( + $vars, + $sep, + $parameters, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ) { + $ret = array(); + foreach ($vars as $var) { + $response = $this->combine( + $var, + $parameters, + $sep, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ); + if ($response === false) { + continue; + } + $ret[] = $response; + } + return implode($sep, $ret); + } + + /** + * Utility function to encode and trim values + */ + private function getValue($value, $length) + { + if ($length) { + $value = substr($value, 0, $length); + } + $value = rawurlencode($value); + return $value; + } +} diff --git a/vendor/google/apiclient/src/Google/Verifier/Abstract.php b/vendor/google/apiclient/src/Google/Verifier/Abstract.php new file mode 100644 index 0000000..e6c9eeb --- /dev/null +++ b/vendor/google/apiclient/src/Google/Verifier/Abstract.php @@ -0,0 +1,30 @@ + + */ +abstract class Google_Verifier_Abstract +{ + /** + * Checks a signature, returns true if the signature is correct, + * false otherwise. + */ + abstract public function verify($data, $signature); +} diff --git a/vendor/google/apiclient/src/Google/Verifier/Pem.php b/vendor/google/apiclient/src/Google/Verifier/Pem.php new file mode 100644 index 0000000..f281575 --- /dev/null +++ b/vendor/google/apiclient/src/Google/Verifier/Pem.php @@ -0,0 +1,74 @@ + + */ +class Google_Verifier_Pem extends Google_Verifier_Abstract +{ + private $publicKey; + + /** + * Constructs a verifier from the supplied PEM-encoded certificate. + * + * $pem: a PEM encoded certificate (not a file). + * @param $pem + * @throws Google_Auth_Exception + * @throws Google_Exception + */ + public function __construct($pem) + { + if (!function_exists('openssl_x509_read')) { + throw new Google_Exception('Google API PHP client needs the openssl PHP extension'); + } + $this->publicKey = openssl_x509_read($pem); + if (!$this->publicKey) { + throw new Google_Auth_Exception("Unable to parse PEM: $pem"); + } + } + + public function __destruct() + { + if ($this->publicKey) { + openssl_x509_free($this->publicKey); + } + } + + /** + * Verifies the signature on data. + * + * Returns true if the signature is valid, false otherwise. + * @param $data + * @param $signature + * @throws Google_Auth_Exception + * @return bool + */ + public function verify($data, $signature) + { + $hash = defined("OPENSSL_ALGO_SHA256") ? OPENSSL_ALGO_SHA256 : "sha256"; + $status = openssl_verify($data, $signature, $this->publicKey, $hash); + if ($status === -1) { + throw new Google_Auth_Exception('Signature verification error: ' . openssl_error_string()); + } + return $status === 1; + } +} diff --git a/vendor/google/apiclient/style/ruleset.xml b/vendor/google/apiclient/style/ruleset.xml new file mode 100644 index 0000000..6b30600 --- /dev/null +++ b/vendor/google/apiclient/style/ruleset.xml @@ -0,0 +1,157 @@ + + + The Google API client library coding standard. + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Service/*.php + + + + + + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/google/apiclient/tests/AllTests.php b/vendor/google/apiclient/tests/AllTests.php new file mode 100644 index 0000000..df71b86 --- /dev/null +++ b/vendor/google/apiclient/tests/AllTests.php @@ -0,0 +1,47 @@ +setName('All Google API PHP Client tests'); + $suite->addTestSuite(YouTubeTests::suite()); + $suite->addTestSuite(AllTasksTests::suite()); + $suite->addTestSuite(AllPageSpeedTests::suite()); + $suite->addTestSuite(AllUrlShortenerTests::suite()); + $suite->addTestSuite(AllPlusTests::suite()); + $suite->addTestSuite(AdsenseTests::suite()); + $suite->addTestSuite(GeneralTests::suite()); + return $suite; + } +} diff --git a/vendor/google/apiclient/tests/BaseTest.php b/vendor/google/apiclient/tests/BaseTest.php new file mode 100644 index 0000000..129fe1a --- /dev/null +++ b/vendor/google/apiclient/tests/BaseTest.php @@ -0,0 +1,73 @@ +"; + private $token; + private $memcacheHost; + private $memcachePort; + + public function __construct() + { + parent::__construct(); + // Fill in a token JSON here and you can test the oauth token + // requiring functions. + // $this->token = ''; + + $this->memcacheHost = getenv('MEMCACHE_HOST') ? getenv('MEMCACHE_HOST') : null; + $this->memcachePort = getenv('MEMCACHE_PORT') ? getenv('MEMCACHE_PORT') : null; + } + + public function getClient() { + $client = new Google_Client(); + $client->setDeveloperKey(self::KEY); + if (strlen($this->token)) { + $client->setAccessToken($this->token); + } + if (strlen($this->memcacheHost)) { + $client->setClassConfig('Google_Cache_Memcache', 'host', $this->memcacheHost); + $client->setClassConfig('Google_Cache_Memcache', 'port', $this->memcachePort); + } + return $client; + } + + public function testClientConstructor() + { + $this->assertInstanceOf('Google_Client', $this->getClient()); + } + + public function testIncludes() { + $prefix = dirname(dirname(__FILE__)) . '/src/'; + $path = dirname(dirname(__FILE__)) . '/src/Google/Service'; + foreach(glob($path . "/*.php") as $file) { + // Munge prefix so we don't double require. + $this->assertEquals(1, require_once(str_replace($prefix, '', $file))); + } + } + + public function checkToken() + { + if (!strlen($this->token)) { + $this->markTestSkipped('Test requires access token'); + return false; + } + return true; + } + +} diff --git a/vendor/google/apiclient/tests/OAuthHelper.php b/vendor/google/apiclient/tests/OAuthHelper.php new file mode 100644 index 0000000..421a9c5 --- /dev/null +++ b/vendor/google/apiclient/tests/OAuthHelper.php @@ -0,0 +1,45 @@ +setScopes(array( + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/urlshortener", + "https://www.googleapis.com/auth/tasks", + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/youtube" +)); +$client->setRedirectUri("urn:ietf:wg:oauth:2.0:oob"); +// Visit https://code.google.com/apis/console to +// generate your oauth2_client_id, oauth2_client_secret, and to +// register your oauth2_redirect_uri. +$client->setClientId(""); +$client->setClientSecret(""); + + +$authUrl = $client->createAuthUrl(); + +`open '$authUrl'`; +echo "\nPlease enter the auth code:\n"; +$authCode = trim(fgets(STDIN)); + +$accessToken = $client->authenticate($authCode); + +echo "\n", 'Add the following to BaseTest.php as the $token value:', "\n\n"; +echo $accessToken, "\n\n"; diff --git a/vendor/google/apiclient/tests/README b/vendor/google/apiclient/tests/README new file mode 100644 index 0000000..8e92bf7 --- /dev/null +++ b/vendor/google/apiclient/tests/README @@ -0,0 +1,2 @@ +These tests depend on PHPUnit, see +http://www.phpunit.de/manual/current/en/installation.html for more instructions diff --git a/vendor/google/apiclient/tests/adsense/AdSenseTest.php b/vendor/google/apiclient/tests/adsense/AdSenseTest.php new file mode 100644 index 0000000..444f67f --- /dev/null +++ b/vendor/google/apiclient/tests/adsense/AdSenseTest.php @@ -0,0 +1,455 @@ +setName('AdSense Management API tests'); + $suite->addTestSuite('AdSenseManagementTest'); + return $suite; + } +} + +class AdSenseManagementTest extends BaseTest { + public $adsense; + public function __construct() { + parent::__construct(); + $this->adsense = new Google_Service_AdSense($this->getClient()); + } + + public function testAccountsList() { + if (!$this->checkToken()) { + return; + } + $accounts = $this->adsense->accounts->listAccounts(); + $this->assertArrayHasKey('kind', $accounts); + $this->assertEquals($accounts['kind'], 'adsense#accounts'); + $account = $this->getRandomElementFromArray($accounts['items']); + $this->checkAccountElement($account); + } + + /** + * @depends testAccountsList + */ + public function testAccountsGet() { + $accounts = $this->adsense->accounts->listAccounts(); + $account = $this->getRandomElementFromArray($accounts['items']); + $retrievedAccount = $this->adsense->accounts->get($account['id']); + $this->checkAccountElement($retrievedAccount); + } + + /** + * @depends testAccountsList + */ + public function testAccountsReportGenerate() { + $startDate = '2011-01-01'; + $endDate = '2011-01-31'; + $optParams = $this->getReportOptParams(); + $accounts = $this->adsense->accounts->listAccounts(); + $accountId = $accounts['items'][0]['id']; + $report = $this->adsense->accounts_reports->generate + ($accountId, $startDate, $endDate, $optParams); + $this->checkReport($report); + } + + /** + * @depends testAccountsList + */ + public function testAccountsAdClientsList() { + $accounts = $this->adsense->accounts->listAccounts(); + $account = $this->getRandomElementFromArray($accounts['items']); + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + $this->checkAdClientsCollection($adClients); + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + */ + public function testAccountsAdUnitsList() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $adUnits = $this->adsense->accounts_adunits->listAccountsAdunits + ($account['id'], $adClient['id']); + $this->checkAdUnitsCollection($adUnits); + break 2; + } + } + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + */ + public function testAccountsAdUnitsGet() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $adUnits = $this->adsense->accounts_adunits->listAccountsAdunits + ($account['id'], $adClient['id']); + if(array_key_exists('items', $adUnits)) { + $adUnit = $this->getRandomElementFromArray($adUnits['items']); + $this->checkAdUnitElement($adUnit); + break 2; + } + } + } + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + */ + public function testAccountsCustomChannelsList() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $customChannels = $this->adsense->accounts_customchannels + ->listAccountsCustomchannels($account['id'], $adClient['id']); + $this->checkCustomChannelsCollection($customChannels); + break 2; + } + } + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + */ + public function testAccountsCustomChannelsGet() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $customChannels = $this->adsense->accounts_customchannels + ->listAccountsCustomchannels($account['id'], $adClient['id']); + if(array_key_exists('items', $customChannels)) { + $customChannel = $this->getRandomElementFromArray + ($customChannels['items']); + $this->checkCustomChannelElement($customChannel); + break 2; + } + } + } + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + */ + public function testAccountsUrlChannelsList() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $urlChannels = $this->adsense->accounts_urlchannels + ->listAccountsUrlchannels($account['id'], $adClient['id']); + $this->checkUrlChannelsCollection($urlChannels); + break 2; + } + } + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + * @depends testAccountsAdUnitsList + */ + public function testAccountsAdUnitsCustomChannelsList() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $adUnits = $this->adsense->accounts_adunits + ->listAccountsAdunits($account['id'], $adClient['id']); + if(array_key_exists('items', $adUnits)) { + foreach($adUnits['items'] as $adUnit) { + $customChannels = $this->adsense->accounts_adunits_customchannels + ->listAccountsAdunitsCustomchannels + ($account['id'], $adClient['id'], $adUnit['id']); + $this->checkCustomChannelsCollection($customChannels); + // it's too expensive to go through each, if one is correct good + break 3; + } + } + } + } + } + + /** + * @depends testAccountsList + * @depends testAccountsAdClientsList + * @depends testAccountsCustomChannelsList + */ + public function testAccountsCustomChannelsAdUnitsList() { + $accounts = $this->adsense->accounts->listAccounts(); + foreach($accounts['items'] as $account) { + $adClients = $this->adsense->accounts_adclients->listAccountsAdclients + ($account['id']); + foreach($adClients['items'] as $adClient) { + $customChannels = $this->adsense->accounts_customchannels + ->listAccountsCustomchannels($account['id'], $adClient['id']); + if(array_key_exists('items', $customChannels)) { + foreach($customChannels['items'] as $customChannel) { + $adUnits = $this->adsense->accounts_customchannels_adunits + ->listAccountsCustomchannelsAdunits + ($account['id'], $adClient['id'], $customChannel['id']); + $this->checkAdUnitsCollection($adUnits); + // it's too expensive to go through each, if one is correct good + break 3; + } + } + } + } + } + + public function testAdClientsList() { + if (!$this->checkToken()) { + return; + } + $adClients = $this->adsense->adclients->listAdclients(); + $this->checkAdClientsCollection($adClients); + } + + /** + * @depends testAdClientsList + */ + public function testAdUnitsList() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $adUnits = $this->adsense->adunits->listAdunits($adClient['id']); + $this->checkAdUnitsCollection($adUnits); + } + } + + /** + * @depends testAdClientsList + */ + public function testAdUnitsGet() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $adUnits = $this->adsense->adunits->listAdunits($adClient['id']); + if(array_key_exists('items', $adUnits)) { + $adUnit = $this->getRandomElementFromArray($adUnits['items']); + $this->checkAdUnitElement($adUnit); + break 1; + } + } + } + + /** + * @depends testAdClientsList + * @depends testAdUnitsList + */ + public function testAdUnitsCustomChannelsList() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $adUnits = $this->adsense->adunits->listAdunits($adClient['id']); + if(array_key_exists('items', $adUnits)) { + foreach($adUnits['items'] as $adUnit) { + $customChannels = $this->adsense->adunits_customchannels + ->listAdunitsCustomchannels($adClient['id'], $adUnit['id']); + $this->checkCustomChannelsCollection($customChannels); + break 2; + } + } + } + } + + /** + * @depends testAdClientsList + */ + public function testCustomChannelsList() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $customChannels = $this->adsense->customchannels->listCustomchannels + ($adClient['id']); + $this->checkCustomChannelsCollection($customChannels); + } + } + + /** + * @depends testAdClientsList + */ + public function testCustomChannelsGet() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $customChannels = $this->adsense->customchannels->listCustomchannels + ($adClient['id']); + if(array_key_exists('items', $customChannels)) { + $customChannel = $this->getRandomElementFromArray + ($customChannels['items']) ; + $this->checkCustomChannelElement($customChannel); + break 1; + } + } + } + + /** + * @depends testAdClientsList + * @depends testCustomChannelsList + */ + public function testCustomChannelsAdUnitsList() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $customChannels = $this->adsense->customchannels->listCustomchannels + ($adClient['id']); + if(array_key_exists('items', $customChannels)) { + foreach($customChannels['items'] as $customChannel) { + $adUnits = $this->adsense->customchannels_adunits + ->listCustomchannelsAdunits + ($adClient['id'], $customChannel['id']); + $this->checkAdUnitsCollection($adUnits); + break 2; + } + } + } + } + + /** + * @depends testAdClientsList + */ + public function testUrlChannelsList() { + $adClients = $this->adsense->adclients->listAdclients(); + foreach($adClients['items'] as $adClient) { + $urlChannels = $this->adsense->urlchannels->listUrlchannels + ($adClient['id']); + $this->checkUrlChannelsCollection($urlChannels); + } + } + + public function testReportsGenerate() { + if (!$this->checkToken()) { + return; + } + $startDate = '2011-01-01'; + $endDate = '2011-01-31'; + $optParams = $this->getReportOptParams(); + $report = $this->adsense->reports->generate + ($startDate, $endDate, $optParams); + $this->checkReport($report); + } + + private function checkAccountElement($account) { + $this->assertArrayHasKey('kind', $account); + $this->assertArrayHasKey('id', $account); + $this->assertArrayHasKey('name', $account); + } + + private function checkAdClientsCollection($adClients) { + $this->assertArrayHasKey('kind', $adClients); + $this->assertEquals($adClients['kind'], 'adsense#adClients'); + foreach($adClients['items'] as $adClient) { + $this->assertArrayHasKey('id', $adClient); + $this->assertArrayHasKey('kind', $adClient); + $this->assertArrayHasKey('productCode', $adClient); + $this->assertArrayHasKey('supportsReporting', $adClient); + } + } + + private function checkAdUnitsCollection($adUnits) { + $this->assertArrayHasKey('kind', $adUnits); + $this->assertEquals($adUnits['kind'], 'adsense#adUnits'); + if(array_key_exists('items', $adUnits)) { + foreach($adUnits['items'] as $adUnit) { + $this->checkAdUnitElement($adUnit); + } + } + } + + private function checkAdUnitElement($adUnit) { + $this->assertArrayHasKey('code', $adUnit); + $this->assertArrayHasKey('id', $adUnit); + $this->assertArrayHasKey('kind', $adUnit); + $this->assertArrayHasKey('name', $adUnit); + $this->assertArrayHasKey('status', $adUnit); + } + + private function checkCustomChannelsCollection($customChannels) { + $this->assertArrayHasKey('kind', $customChannels); + $this->assertEquals($customChannels['kind'], 'adsense#customChannels'); + if(array_key_exists('items', $customChannels)) { + foreach($customChannels['items'] as $customChannel) { + $this->checkCustomChannelElement($customChannel); + } + } + } + + private function checkCustomChannelElement($customChannel) { + $this->assertArrayHasKey('kind', $customChannel); + $this->assertArrayHasKey('id', $customChannel); + $this->assertArrayHasKey('code', $customChannel); + $this->assertArrayHasKey('name', $customChannel); + } + + private function checkUrlChannelsCollection($urlChannels) { + $this->assertArrayHasKey('kind', $urlChannels); + $this->assertEquals($urlChannels['kind'], 'adsense#urlChannels'); + if(array_key_exists('items', $urlChannels)) { + foreach($urlChannels['items'] as $urlChannel) { + $this->assertArrayHasKey('kind', $urlChannel); + $this->assertArrayHasKey('id', $urlChannel); + $this->assertArrayHasKey('urlPattern', $urlChannel); + } + } + } + + private function getReportOptParams() { + return array( + 'metric' => array('PAGE_VIEWS', 'AD_REQUESTS'), + 'dimension' => array ('DATE', 'AD_CLIENT_ID'), + 'sort' => array('DATE'), + 'filter' => array('COUNTRY_NAME==United States'), + ); + } + + private function checkReport($report) { + $this->assertArrayHasKey('kind', $report); + $this->assertEquals($report['kind'], 'adsense#report'); + $this->assertArrayHasKey('totalMatchedRows', $report); + $this->assertGreaterThan(0, count($report->headers)); + foreach($report['headers'] as $header) { + $this->assertArrayHasKey('name', $header); + $this->assertArrayHasKey('type', $header); + } + if(array_key_exists('items', $report)) { + foreach($report['items'] as $row) { + $this->assertCount(4, $row); + } + } + $this->assertArrayHasKey('totals', $report); + $this->assertArrayHasKey('averages', $report); + } + + private function getRandomElementFromArray($array) { + $elementKey = array_rand($array); + return $array[$elementKey]; + } +} diff --git a/vendor/google/apiclient/tests/bootstrap.php b/vendor/google/apiclient/tests/bootstrap.php new file mode 100644 index 0000000..1633e28 --- /dev/null +++ b/vendor/google/apiclient/tests/bootstrap.php @@ -0,0 +1,3 @@ +checkToken()) { + return; + } + $client = $this->getClient(); + $batch = new Google_Http_Batch($client); + $this->plus = new Google_Service_Plus($client); + + $client->setUseBatch(true); + $batch->add($this->plus->people->get('me'), 'key1'); + $batch->add($this->plus->people->get('me'), 'key2'); + $batch->add($this->plus->people->get('me'), 'key3'); + + $result = $batch->execute(); + $this->assertTrue(isset($result['response-key1'])); + $this->assertTrue(isset($result['response-key2'])); + $this->assertTrue(isset($result['response-key3'])); + } + + public function testBatchRequest() + { + $client = $this->getClient(); + $batch = new Google_Http_Batch($client); + $this->plus = new Google_Service_Plus($client); + + $client->setUseBatch(true); + $batch->add($this->plus->people->get('+LarryPage'), 'key1'); + $batch->add($this->plus->people->get('+LarryPage'), 'key2'); + $batch->add($this->plus->people->get('+LarryPage'), 'key3'); + + $result = $batch->execute(); + $this->assertTrue(isset($result['response-key1'])); + $this->assertTrue(isset($result['response-key2'])); + $this->assertTrue(isset($result['response-key3'])); + } + + public function testInvalidBatchRequest() + { + $client = $this->getClient(); + $batch = new Google_Http_Batch($client); + $this->plus = new Google_Service_Plus($client); + + $client->setUseBatch(true); + $batch->add($this->plus->people->get('123456789987654321'), 'key1'); + $batch->add($this->plus->people->get('+LarryPage'), 'key2'); + + $result = $batch->execute(); + $this->assertTrue(isset($result['response-key2'])); + $this->assertInstanceOf('Google_Service_Exception', + $result['response-key1']); + } +} diff --git a/vendor/google/apiclient/tests/general/ApiCacheParserTest.php b/vendor/google/apiclient/tests/general/ApiCacheParserTest.php new file mode 100644 index 0000000..eec416d --- /dev/null +++ b/vendor/google/apiclient/tests/general/ApiCacheParserTest.php @@ -0,0 +1,230 @@ +getClient(); + $resp = new Google_Http_Request('http://localhost', 'POST'); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + + // The response has expired, and we don't have an etag for + // revalidation. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => 'Fri, 30 Oct 1998 14:19:41 GMT', + 'Date' => 'Mon, 29 Jun 1998 02:28:12 GMT', + 'Last-Modified' => 'Mon, 29 Jun 1998 02:28:12 GMT', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + + // Verify cacheable responses. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => 'Fri, 30 Oct 2013 14:19:41 GMT', + 'Date' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'Last-Modified' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertTrue($result); + + // Verify that responses to HEAD requests are cacheable. + $resp = new Google_Http_Request('http://localhost', 'HEAD'); + $resp->setResponseHttpCode('200'); + $resp->setResponseBody(null); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => 'Fri, 30 Oct 2013 14:19:41 GMT', + 'Date' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'Last-Modified' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertTrue($result); + + // Verify that Vary: * cannot get cached. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => 'Fri, 30 Oct 2013 14:19:41 GMT', + 'Date' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'Last-Modified' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'Vary' => 'foo', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + + // Verify 201s cannot get cached. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('201'); + $resp->setResponseBody(null); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => 'Fri, 30 Oct 2013 14:19:41 GMT', + 'Last-Modified' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + + // Verify pragma: no-cache. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => 'Wed, 11 Jan 2012 04:03:37 GMT', + 'Date' => 'Wed, 11 Jan 2012 04:03:37 GMT', + 'Pragma' => 'no-cache', + 'Cache-Control' => 'private, max-age=0, must-revalidate, no-transform', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + + // Verify Cache-Control: no-store. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => 'Wed, 11 Jan 2012 04:03:37 GMT', + 'Date' => 'Wed, 11 Jan 2012 04:03:37 GMT', + 'Cache-Control' => 'no-store', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + + // Verify that authorized responses are not cacheable. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setRequestHeaders(array('Authorization' => 'Bearer Token')); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => 'Fri, 30 Oct 2013 14:19:41 GMT', + 'Last-Modified' => 'Mon, 29 Jun 2011 02:28:12 GMT', + 'ETag' => '3e86-410-3596fbbc', + )); + $result = Google_Http_CacheParser::isResponseCacheable($resp); + $this->assertFalse($result); + } + + public function testIsExpired() { + $now = time(); + $future = $now + (365 * 24 * 60 * 60); + $client = $this->getClient(); + + // Expires 1 year in the future. Response is fresh. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => gmdate('D, d M Y H:i:s', $future) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + )); + $this->assertFalse(Google_Http_CacheParser::isExpired($resp)); + + // The response expires soon. Response is fresh. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => gmdate('D, d M Y H:i:s', $now + 2) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + )); + $this->assertFalse(Google_Http_CacheParser::isExpired($resp)); + + // Expired 1 year ago. Response is stale. + $past = $now - (365 * 24 * 60 * 60); + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => gmdate('D, d M Y H:i:s', $past) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + )); + $this->assertTrue(Google_Http_CacheParser::isExpired($resp)); + + // Invalid expires header. Response is stale. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => '-1', + 'Date' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + )); + $this->assertTrue(Google_Http_CacheParser::isExpired($resp)); + + // The response expires immediately. G+ APIs do this. Response is stale. + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Expires' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + )); + $this->assertTrue(Google_Http_CacheParser::isExpired($resp)); + } + + public function testMustRevalidate() { + $now = time(); + $client = $this->getClient(); + + // Expires 1 year in the future, and contains the must-revalidate directive. + // Don't revalidate. must-revalidate only applies to expired entries. + $future = $now + (365 * 24 * 60 * 60); + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600, must-revalidate', + 'Expires' => gmdate('D, d M Y H:i:s', $future) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $now) . ' GMT', + )); + $this->assertFalse(Google_Http_CacheParser::mustRevalidate($resp)); + + // Contains the max-age=3600 directive, but was created 2 hours ago. + // Must revalidate. + $past = $now - (2 * 60 * 60); + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600', + 'Expires' => gmdate('D, d M Y H:i:s', $future) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $past) . ' GMT', + )); + $this->assertTrue(Google_Http_CacheParser::mustRevalidate($resp)); + + // Contains the max-age=3600 directive, and was created 600 seconds ago. + // No need to revalidate, regardless of the expires header. + $past = $now - (600); + $resp = new Google_Http_Request('http://localhost', 'GET'); + $resp->setResponseHttpCode('200'); + $resp->setResponseHeaders(array( + 'Cache-Control' => 'max-age=3600', + 'Expires' => gmdate('D, d M Y H:i:s', $past) . ' GMT', + 'Date' => gmdate('D, d M Y H:i:s', $past) . ' GMT', + )); + $this->assertFalse(Google_Http_CacheParser::mustRevalidate($resp)); + } +} diff --git a/vendor/google/apiclient/tests/general/ApiClientTest.php b/vendor/google/apiclient/tests/general/ApiClientTest.php new file mode 100644 index 0000000..fadf40a --- /dev/null +++ b/vendor/google/apiclient/tests/general/ApiClientTest.php @@ -0,0 +1,159 @@ +setAccessType('foo'); + $client->setDeveloperKey('foo'); + $req = new Google_Http_Request('http://foo.com'); + $client->getAuth()->sign($req); + $params = $req->getQueryParams(); + $this->assertEquals('foo', $params['key']); + + $client->setAccessToken(json_encode(array('access_token' => '1'))); + $this->assertEquals("{\"access_token\":\"1\"}", $client->getAccessToken()); + } + + /** + * @expectedException Google_Auth_Exception + */ + public function testPrepareInvalidScopes() { + $client = new Google_Client(); + + $scopes = $client->prepareScopes(); + $this->assertEquals("", $scopes); + } + + public function testNoAuthIsNull() { + $client = new Google_Client(); + + $this->assertNull($client->getAccessToken()); + } + + public function testPrepareService() { + $client = new Google_Client(); + $client->setScopes(array("scope1", "scope2")); + $scopes = $client->prepareScopes(); + $this->assertEquals("scope1 scope2", $scopes); + + $client->setScopes(array("", "scope2")); + $scopes = $client->prepareScopes(); + $this->assertEquals(" scope2", $scopes); + + $client->setScopes("scope2"); + $client->addScope("scope3"); + $client->addScope(array("scope4", "scope5")); + $scopes = $client->prepareScopes(); + $this->assertEquals("scope2 scope3 scope4 scope5", $scopes); + + $client->setClientId('test1'); + $client->setRedirectUri('http://localhost/'); + $client->setScopes(array("http://test.com", "scope2")); + $scopes = $client->prepareScopes(); + $this->assertEquals("http://test.com scope2", $scopes); + $this->assertEquals('' + . 'https://accounts.google.com/o/oauth2/auth' + . '?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%2F' + . '&client_id=test1' + . '&scope=http%3A%2F%2Ftest.com+scope2&access_type=online' + . '&approval_prompt=auto', $client->createAuthUrl()); + + // This should not trigger a request. + $client->setDefer(true); + $dr_service = new Google_Service_Drive($client); + $this->assertInstanceOf('Google_Http_Request', $dr_service->files->listFiles()); + } + + public function testSettersGetters() { + $client = new Google_Client(); + $client->setClientId("client1"); + $client->setClientSecret('client1secret'); + $client->setState('1'); + $client->setApprovalPrompt('force'); + $client->setAccessType('offline'); + + $client->setRedirectUri('localhost'); + $client->setApplicationName('me'); + $this->assertEquals('object', gettype($client->getAuth())); + $this->assertEquals('object', gettype($client->getCache())); + $this->assertEquals('object', gettype($client->getIo())); + + $client->setAuth(new Google_Auth_Simple($client)); + $client->setAuth(new Google_Auth_OAuth2($client)); + + try { + $client->setAccessToken(null); + die('Should have thrown an Google_Auth_Exception.'); + } catch(Google_Auth_Exception $e) { + $this->assertEquals('Could not json decode the token', $e->getMessage()); + } + + $token = json_encode(array('access_token' => 'token')); + $client->setAccessToken($token); + $this->assertEquals($token, $client->getAccessToken()); + } + + public function testAppEngineAutoConfig() { + if (!class_exists("Memcached")) { + $this->markTestSkipped('Test requires memcache'); + } + $_SERVER['SERVER_SOFTWARE'] = 'Google App Engine'; + $client = new Google_Client(); + $this->assertInstanceOf('Google_Cache_Memcache', $client->getCache()); + unset($_SERVER['SERVER_SOFTWARE']); + } + + public function testJsonConfig() { + // Device config + $config = new Google_Config(); + $client = new Google_Client($config); + $device = '{"installed":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","client_secret":"N0aHCBT1qX1VAcF5J1pJAn6S","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":"","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","oob"],"client_x509_cert_url":"","client_id":"123456789.apps.googleusercontent.com","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}}'; + $dObj = json_decode($device); + $client->setAuthConfig($device); + $cfg = $config->getClassConfig('Google_Auth_OAuth2'); + $this->assertEquals($cfg['client_id'], $dObj->installed->client_id); + $this->assertEquals($cfg['client_secret'], $dObj->installed->client_secret); + $this->assertEquals($cfg['redirect_uri'], $dObj->installed->redirect_uris[0]); + + // Web config + $config = new Google_Config(); + $client = new Google_Client($config); + $web = '{"web":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","client_secret":"lpoubuib8bj-Fmke_YhhyHGgXc","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":"123456789@developer.gserviceaccount.com","client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/123456789@developer.gserviceaccount.com","client_id":"123456789.apps.googleusercontent.com","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}}'; + $wObj = json_decode($web); + $client->setAuthConfig($web); + $cfg = $config->getClassConfig('Google_Auth_OAuth2'); + $this->assertEquals($cfg['client_id'], $wObj->web->client_id); + $this->assertEquals($cfg['client_secret'], $wObj->web->client_secret); + $this->assertEquals($cfg['redirect_uri'], ''); + } + + public function testIniConfig() { + $config = new Google_Config(__DIR__ . "/testdata/test.ini"); + $this->assertEquals('My Test application', $config->getApplicationName()); + $this->assertEquals('gjfiwnGinpena3', $config->getClassConfig('Google_Auth_OAuth2', 'client_secret')); + } +} diff --git a/vendor/google/apiclient/tests/general/ApiMediaFileUploadTest.php b/vendor/google/apiclient/tests/general/ApiMediaFileUploadTest.php new file mode 100644 index 0000000..466fff4 --- /dev/null +++ b/vendor/google/apiclient/tests/general/ApiMediaFileUploadTest.php @@ -0,0 +1,95 @@ +getClient(); + $request = new Google_Http_Request('http://www.example.com', 'POST'); + $media = new Google_Http_MediaFileUpload( + $client, + $request, + 'image/png', + base64_decode('data:image/png;base64,a') + ); + + $this->assertEquals(0, $media->getProgress()); + $this->assertGreaterThan(0, strlen($request->getPostBody())); + } + + public function testGetUploadType() + { + $client = $this->getClient(); + $request = new Google_Http_Request('http://www.example.com', 'POST'); + + // Test resumable upload + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', 'a', true); + $params = array('mediaUpload' => array('value' => $media)); + $this->assertEquals('resumable', $media->getUploadType(null)); + + // Test data *only* uploads + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', 'a', false); + $this->assertEquals('media', $media->getUploadType(null)); + + // Test multipart uploads + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', 'a', false); + $this->assertEquals('multipart', $media->getUploadType(array('a' => 'b'))); + } + + public function testResultCode() + { + $client = $this->getClient(); + $request = new Google_Http_Request('http://www.example.com', 'POST'); + + // Test resumable upload + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', 'a', true); + $this->assertEquals(null, $media->getHttpResultCode()); + } + + public function testProcess() + { + $client = $this->getClient(); + $data = 'foo'; + + // Test data *only* uploads. + $request = new Google_Http_Request('http://www.example.com', 'POST'); + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', $data, false); + $this->assertEquals($data, $request->getPostBody()); + + // Test resumable (meta data) - we want to send the metadata, not the app data. + $request = new Google_Http_Request('http://www.example.com', 'POST'); + $reqData = json_encode("hello"); + $request->setPostBody($reqData); + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', $data, true); + $this->assertEquals(json_decode($reqData), $request->getPostBody()); + + // Test multipart - we are sending encoded meta data and post data + $request = new Google_Http_Request('http://www.example.com', 'POST'); + $reqData = json_encode("hello"); + $request->setPostBody($reqData); + $media = new Google_Http_MediaFileUpload($client, $request, 'image/png', $data, false); + $this->assertContains($reqData, $request->getPostBody()); + $this->assertContains(base64_encode($data), $request->getPostBody()); + } +} diff --git a/vendor/google/apiclient/tests/general/ApiModelTest.php b/vendor/google/apiclient/tests/general/ApiModelTest.php new file mode 100644 index 0000000..bf93738 --- /dev/null +++ b/vendor/google/apiclient/tests/general/ApiModelTest.php @@ -0,0 +1,168 @@ +setDate($dateString); + $event->setStart($date); + $event->setEnd($date); + $event->setSummary($summary); + $simpleEvent = $event->toSimpleObject(); + $this->assertEquals($dateString, $simpleEvent->start->date); + $this->assertEquals($dateString, $simpleEvent->end->date); + $this->assertEquals($summary, $simpleEvent->summary); + + $event2 = new Google_Service_Calendar_Event(); + $this->assertNull($event2->getStart()); + } + + public function testOddMappingNames() + { + $creative = new Google_Service_AdExchangeBuyer_Creative(); + $creative->setAccountId('12345'); + $creative->setBuyerCreativeId('12345'); + $creative->setAdvertiserName('Hi'); + $creative->setHTMLSnippet("

Foo!

"); + $creative->setClickThroughUrl(array('http://somedomain.com')); + $creative->setWidth(100); + $creative->setHeight(100); + $data = json_decode(json_encode($creative->toSimpleObject()), true); + $this->assertEquals($data['HTMLSnippet'], "

Foo!

"); + $this->assertEquals($data['width'], 100); + $this->assertEquals($data['height'], 100); + $this->assertEquals($data['accountId'], "12345"); + } + + public function testJsonStructure() + { + $model = new Google_Model(); + $model->publicA = "This is a string"; + $model2 = new Google_Model(); + $model2->publicC = 12345; + $model2->publicD = null; + $model->publicB = $model2; + $model3 = new Google_Model(); + $model3->publicE = 54321; + $model3->publicF = null; + $model->publicG = array($model3, "hello", false); + $model->publicH = false; + $model->publicI = 0; + $string = json_encode($model->toSimpleObject()); + $data = json_decode($string, true); + $this->assertEquals(12345, $data['publicB']['publicC']); + $this->assertEquals("This is a string", $data['publicA']); + $this->assertArrayNotHasKey("publicD", $data['publicB']); + $this->assertArrayHasKey("publicE", $data['publicG'][0]); + $this->assertArrayNotHasKey("publicF", $data['publicG'][0]); + $this->assertEquals("hello", $data['publicG'][1]); + $this->assertEquals(false, $data['publicG'][2]); + $this->assertArrayNotHasKey("data", $data); + $this->assertEquals(false, $data['publicH']); + $this->assertEquals(0, $data['publicI']); + } + + public function testIssetPropertyOnModel() + { + $model = new Google_Model(); + $model['foo'] = 'bar'; + $this->assertTrue(isset($model->foo)); + } + + public function testUnsetPropertyOnModel() + { + $model = new Google_Model(); + $model['foo'] = 'bar'; + unset($model->foo); + $this->assertFalse(isset($model->foo)); + } + + public function testCollection() + { + $data = json_decode( + '{ + "kind": "calendar#events", + "id": "1234566", + "etag": "abcdef", + "totalItems": 4, + "items": [ + {"id": 1}, + {"id": 2}, + {"id": 3}, + {"id": 4} + ] + }', true); + $collection = new Google_Service_Calendar_Events($data); + $this->assertEquals(4, count($collection)); + $count = 0; + foreach ($collection as $col) { + $count++; + } + $this->assertEquals(4, $count); + $this->assertEquals(1, $collection[0]->id); + } +} diff --git a/vendor/google/apiclient/tests/general/ApiOAuth2Test.php b/vendor/google/apiclient/tests/general/ApiOAuth2Test.php new file mode 100644 index 0000000..79ab7a4 --- /dev/null +++ b/vendor/google/apiclient/tests/general/ApiOAuth2Test.php @@ -0,0 +1,234 @@ +getClient(); + $oauth = new Google_Auth_OAuth2($client); + + $client->setClientId('clientId1'); + $client->setClientSecret('clientSecret1'); + $client->setRedirectUri('http://localhost'); + $client->setDeveloperKey('devKey'); + $client->setAccessType('offline'); + $client->setApprovalPrompt('force'); + $client->setRequestVisibleActions('http://foo'); + + $req = new Google_Http_Request('http://localhost'); + $req = $oauth->sign($req); + + $this->assertEquals('http://localhost?key=devKey', $req->getUrl()); + + // test accessToken + $oauth->setAccessToken(json_encode(array( + 'access_token' => 'ACCESS_TOKEN', + 'created' => time(), + 'expires_in' => '3600' + ))); + + $req = $oauth->sign($req); + $auth = $req->getRequestHeader('authorization'); + $this->assertEquals('Bearer ACCESS_TOKEN', $auth); + } + + public function testRevokeAccess() + { + $accessToken = "ACCESS_TOKEN"; + $refreshToken = "REFRESH_TOKEN"; + $accessToken2 = "ACCESS_TOKEN_2"; + $token = ""; + + $client = $this->getClient(); + $response = $this->getMock("Google_Http_Request", array(), array('')); + $response->expects($this->any()) + ->method('getResponseHttpCode') + ->will($this->returnValue(200)); + $io = $this->getMock("Google_IO_Stream", array(), array($client)); + $io->expects($this->any()) + ->method('makeRequest') + ->will($this->returnCallback(function($request) use (&$token, $response) { + $elements = array(); + parse_str($request->getPostBody(), $elements); + $token = isset($elements['token']) ? $elements['token'] : null; + return $response; + })); + $client->setIo($io); + + // Test with access token. + $oauth = new Google_Auth_OAuth2($client); + $oauth->setAccessToken(json_encode(array( + 'access_token' => $accessToken, + 'created' => time(), + 'expires_in' => '3600' + ))); + $this->assertTrue($oauth->revokeToken()); + $this->assertEquals($accessToken, $token); + + // Test with refresh token. + $oauth = new Google_Auth_OAuth2($client); + $oauth->setAccessToken(json_encode(array( + 'access_token' => $accessToken, + 'refresh_token' => $refreshToken, + 'created' => time(), + 'expires_in' => '3600' + ))); + $this->assertTrue($oauth->revokeToken()); + $this->assertEquals($refreshToken, $token); + + // Test with passed in token. + $this->assertTrue($oauth->revokeToken($accessToken2)); + $this->assertEquals($accessToken2, $token); + } + + public function testCreateAuthUrl() + { + $client = $this->getClient(); + $oauth = new Google_Auth_OAuth2($client); + + $client->setClientId('clientId1'); + $client->setClientSecret('clientSecret1'); + $client->setRedirectUri('http://localhost'); + $client->setDeveloperKey('devKey'); + $client->setAccessType('offline'); + $client->setApprovalPrompt('force'); + $client->setRequestVisibleActions(array('http://foo')); + $client->setLoginHint("bob@example.org"); + + $authUrl = $oauth->createAuthUrl("http://googleapis.com/scope/foo"); + $expected = "https://accounts.google.com/o/oauth2/auth" + . "?response_type=code" + . "&redirect_uri=http%3A%2F%2Flocalhost" + . "&client_id=clientId1" + . "&scope=http%3A%2F%2Fgoogleapis.com%2Fscope%2Ffoo" + . "&access_type=offline" + . "&approval_prompt=force" + . "&login_hint=bob%40example.org"; + $this->assertEquals($expected, $authUrl); + + // Again with a blank login hint (should remove all traces from authUrl) + $client->setLoginHint(""); + $client->setHostedDomain("example.com"); + $client->setOpenidRealm("example.com"); + $client->setPrompt("select_account"); + $client->setIncludeGrantedScopes(true); + $authUrl = $oauth->createAuthUrl("http://googleapis.com/scope/foo"); + $expected = "https://accounts.google.com/o/oauth2/auth" + . "?response_type=code" + . "&redirect_uri=http%3A%2F%2Flocalhost" + . "&client_id=clientId1" + . "&scope=http%3A%2F%2Fgoogleapis.com%2Fscope%2Ffoo" + . "&access_type=offline" + . "&approval_prompt=force" + . "&hd=example.com" + . "&openid.realm=example.com" + . "&prompt=select_account" + . "&include_granted_scopes=true"; + $this->assertEquals($expected, $authUrl); + } + + /** + * Most of the logic for ID token validation is in AuthTest - + * this is just a general check to ensure we verify a valid + * id token if one exists. + */ + public function testValidateIdToken() + { + if (!$this->checkToken()) { + return; + } + + $client = $this->getClient(); + $token = json_decode($client->getAccessToken()); + $segments = explode(".", $token->id_token); + $this->assertEquals(3, count($segments)); + // Extract the client ID in this case as it wont be set on the test client. + $data = json_decode(Google_Utils::urlSafeB64Decode($segments[1])); + $oauth = new Google_Auth_OAuth2($client); + $ticket = $oauth->verifyIdToken($token->id_token, $data->aud); + $this->assertInstanceOf( + "Google_Auth_LoginTicket", + $ticket + ); + $this->assertTrue(strlen($ticket->getUserId()) > 0); + + // TODO(ianbarber): Need to be smart about testing/disabling the + // caching for this test to make sense. Not sure how to do that + // at the moment. + $client = $this->getClient(); + $client->setIo(new Google_IO_Stream($client)); + $data = json_decode(Google_Utils::urlSafeB64Decode($segments[1])); + $oauth = new Google_Auth_OAuth2($client); + $this->assertInstanceOf( + "Google_Auth_LoginTicket", + $oauth->verifyIdToken($token->id_token, $data->aud) + ); + } + + /** + * Test for revoking token when none is opened + */ + public function testRevokeWhenNoTokenExists() + { + $client = new Google_Client(); + $this->assertFalse($client->revokeToken()); + } + + /** + * Test that the ID token is properly refreshed. + */ + public function testRefreshTokenSetsValues() + { + $client = new Google_Client(); + $response_data = json_encode(array( + 'access_token' => "ACCESS_TOKEN", + 'id_token' => "ID_TOKEN", + 'expires_in' => "12345", + )); + $response = $this->getMock("Google_Http_Request", array(), array('')); + $response->expects($this->any()) + ->method('getResponseHttpCode') + ->will($this->returnValue(200)); + $response->expects($this->any()) + ->method('getResponseBody') + ->will($this->returnValue($response_data)); + $io = $this->getMock("Google_IO_Stream", array(), array($client)); + $io->expects($this->any()) + ->method('makeRequest') + ->will($this->returnCallback(function($request) use (&$token, $response) { + $elements = $request->getPostBody(); + PHPUnit_Framework_TestCase::assertEquals($elements['grant_type'], + "refresh_token"); + PHPUnit_Framework_TestCase::assertEquals($elements['refresh_token'], + "REFRESH_TOKEN"); + return $response; + })); + $client->setIo($io); + $oauth = new Google_Auth_OAuth2($client); + $oauth->refreshToken("REFRESH_TOKEN"); + $token = json_decode($oauth->getAccessToken(), true); + $this->assertEquals($token['id_token'], "ID_TOKEN"); + } +} diff --git a/vendor/google/apiclient/tests/general/AuthTest.php b/vendor/google/apiclient/tests/general/AuthTest.php new file mode 100644 index 0000000..ac664de --- /dev/null +++ b/vendor/google/apiclient/tests/general/AuthTest.php @@ -0,0 +1,272 @@ +signer = new Google_Signer_P12(file_get_contents(__DIR__.'/'.self::PRIVATE_KEY_FILE, true), "notasecret"); + $this->pem = file_get_contents(__DIR__.'/'.self::PUBLIC_KEY_FILE, true); + $this->verifier = new Google_Verifier_Pem($this->pem); + } + + public function testDirectInject() { + $privateKeyString = <<fail("Should have thrown"); + } catch (Google_Auth_Exception $e) { + $this->assertContains("mac verify failure", $e->getMessage()); + } + + try { + new Google_Signer_P12(file_get_contents(__DIR__.'/'.self::PRIVATE_KEY_FILE, true) . "foo", "badpassword"); + $this->fail("Should have thrown"); + } catch (Exception $e) { + $this->assertContains("Unable to parse", $e->getMessage()); + } + } + + public function testVerifySignature() { + $binary_data = "\x00\x01\x02\x66\x6f\x6f"; + $signature = $this->signer->sign($binary_data); + $this->assertTrue($this->verifier->verify($binary_data, $signature)); + + $empty_string = ""; + $signature = $this->signer->sign($empty_string); + $this->assertTrue($this->verifier->verify($empty_string, $signature)); + + $text = "foobar"; + $signature = $this->signer->sign($text); + $this->assertTrue($this->verifier->verify($text, $signature)); + + $this->assertFalse($this->verifier->verify($empty_string, $signature)); + } + + // Creates a signed JWT similar to the one created by google authentication. + private function makeSignedJwt($payload) { + $header = array("typ" => "JWT", "alg" => "RS256"); + $segments = array(); + $segments[] = Google_Utils::urlSafeB64Encode(json_encode($header)); + $segments[] = Google_Utils::urlSafeB64Encode(json_encode($payload)); + $signing_input = implode(".", $segments); + + $signature = $this->signer->sign($signing_input); + $segments[] = Google_Utils::urlSafeB64Encode($signature); + + return implode(".", $segments); + } + + // Returns certificates similar to the ones used by google authentication. + private function getSignonCerts() { + return array("keyid" => $this->pem); + } + + public function testVerifySignedJwtWithCerts() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "sub" => self::USER_ID, + "iat" => time(), + "exp" => time() + 3600)); + $certs = $this->getSignonCerts(); + $oauth2 = new Google_Auth_OAuth2($this->getClient()); + $ticket = $oauth2->verifySignedJwtWithCerts($id_token, $certs, "client_id"); + $this->assertEquals(self::USER_ID, $ticket->getUserId()); + // Check that payload and envelope got filled in. + $attributes = $ticket->getAttributes(); + $this->assertEquals("JWT", $attributes["envelope"]["typ"]); + $this->assertEquals("client_id", $attributes["payload"]["aud"]); + } + + // Checks that the id token fails to verify with the expected message. + private function checkIdTokenFailure($id_token, $msg) { + $certs = $this->getSignonCerts(); + $oauth2 = new Google_Auth_OAuth2($this->getClient()); + try { + $oauth2->verifySignedJwtWithCerts($id_token, $certs, "client_id"); + $this->fail("Should have thrown for $id_token"); + } catch (Google_Auth_Exception $e) { + $this->assertContains($msg, $e->getMessage()); + } + } + + public function testVerifySignedJwt_badJwt() { + $this->checkIdTokenFailure("foo", "Wrong number of segments"); + $this->checkIdTokenFailure("foo.bar", "Wrong number of segments"); + $this->checkIdTokenFailure("foo.bar.baz", + "Can't parse token envelope: foo"); + } + + public function testVerifySignedJwt_badSignature() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "id" => self::USER_ID, + "iat" => time(), + "exp" => time() + 3600)); + $id_token = $id_token . "a"; + $this->checkIdTokenFailure($id_token, "Invalid token signature"); + } + + public function testVerifySignedJwt_noIssueTime() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "id" => self::USER_ID, + "exp" => time() + 3600)); + $this->checkIdTokenFailure($id_token, "No issue time"); + } + + public function testVerifySignedJwt_noExpirationTime() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "id" => self::USER_ID, + "iat" => time())); + $this->checkIdTokenFailure($id_token, "No expiration time"); + } + + public function testVerifySignedJwt_tooEarly() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "id" => self::USER_ID, + "iat" => time() + 1800, + "exp" => time() + 3600)); + $this->checkIdTokenFailure($id_token, "Token used too early"); + } + + public function testVerifySignedJwt_tooLate() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "id" => self::USER_ID, + "iat" => time() - 3600, + "exp" => time() - 1800)); + $this->checkIdTokenFailure($id_token, "Token used too late"); + } + + public function testVerifySignedJwt_lifetimeTooLong() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "client_id", + "id" => self::USER_ID, + "iat" => time(), + "exp" => time() + 3600 * 25)); + $this->checkIdTokenFailure($id_token, "Expiration time too far in future"); + } + + public function testVerifySignedJwt_badAudience() { + $id_token = $this->makeSignedJwt(array( + "iss" => "federated-signon@system.gserviceaccount.com", + "aud" => "wrong_client_id", + "id" => self::USER_ID, + "iat" => time(), + "exp" => time() + 3600)); + $this->checkIdTokenFailure($id_token, "Wrong recipient"); + } + + public function testNoAuth() { + /** @var $noAuth Google_Auth_Simple */ + $noAuth = new Google_Auth_Simple($this->getClient()); + $oldAuth = $this->getClient()->getAuth(); + $this->getClient()->setAuth($noAuth); + $this->getClient()->setDeveloperKey(null); + $req = new Google_Http_Request("http://example.com"); + + $resp = $noAuth->sign($req); + $this->assertEquals("http://example.com", $resp->getUrl()); + $this->getClient()->setAuth($oldAuth); + } + + public function testAssertionCredentials() { + $assertion = new Google_Auth_AssertionCredentials('name', 'scope', + file_get_contents(__DIR__.'/'.self::PRIVATE_KEY_FILE, true)); + + $token = explode(".", $assertion->generateAssertion()); + $this->assertEquals('{"typ":"JWT","alg":"RS256"}', base64_decode($token[0])); + + $jwt = json_decode(base64_decode($token[1]), true); + $this->assertEquals('https://accounts.google.com/o/oauth2/token', $jwt['aud']); + $this->assertEquals('scope', $jwt['scope']); + $this->assertEquals('name', $jwt['iss']); + + $key = $assertion->getCacheKey(); + $this->assertTrue($key != false); + $assertion = new Google_Auth_AssertionCredentials('name2', 'scope', + file_get_contents(__DIR__.'/'.self::PRIVATE_KEY_FILE, true)); + $this->assertNotEquals($key, $assertion->getCacheKey()); + } + + public function testVerifySignedJWT() { + $assertion = new Google_Auth_AssertionCredentials('issuer', 'scope', + file_get_contents(__DIR__.'/'.self::PRIVATE_KEY_FILE, true)); + $client = $this->getClient(); + + $this->assertInstanceOf('Google_Auth_LoginTicket', $client->verifySignedJwt( + $assertion->generateAssertion(), + __DIR__ . DIRECTORY_SEPARATOR . self::PUBLIC_KEY_FILE_JSON, + 'https://accounts.google.com/o/oauth2/token', + 'issuer' + )); + } +} diff --git a/vendor/google/apiclient/tests/general/CacheTest.php b/vendor/google/apiclient/tests/general/CacheTest.php new file mode 100644 index 0000000..d3e71af --- /dev/null +++ b/vendor/google/apiclient/tests/general/CacheTest.php @@ -0,0 +1,135 @@ +getClient(); + $client->setClassConfig( + 'Google_Cache_File', + 'directory', + $dir + ); + $cache = new Google_Cache_File($client); + $cache->set('foo', 'bar'); + $this->assertEquals($cache->get('foo'), 'bar'); + + $this->getSetDelete($cache); + } + + public function testNull() + { + if (!function_exists('memcache_connect')) { + $this->markTestSkipped('Test requires memcache'); + } + $client = $this->getClient(); + $cache = new Google_Cache_Null($client); + $client->setCache($cache); + + $cache->set('foo', 'bar'); + $cache->delete('foo'); + $this->assertEquals(false, $cache->get('foo')); + + $cache->set('foo.1', 'bar.1'); + $this->assertEquals($cache->get('foo.1'), false); + + $cache->set('foo', 'baz'); + $this->assertEquals($cache->get('foo'), false); + + $cache->set('foo', null); + $cache->delete('foo'); + $this->assertEquals($cache->get('foo'), false); + } + + public function testMemcache() { + if (!function_exists('memcache_connect')) { + $this->markTestSkipped('Test requires memcache'); + } + $client = $this->getClient(); + if (!$client->getClassConfig('Google_Cache_Memcache', 'host')) { + $this->markTestSkipped('Test requires memcache host specified'); + } + + $cache = new Google_Cache_Memcache($client); + + $this->getSetDelete($cache); + } + + public function testAPC() { + if (!function_exists('apc_add')) { + $this->markTestSkipped('Test requires APC'); + } + if (!ini_get('apc.enable_cli')) { + $this->markTestSkipped('Test requires APC enabled for CLI'); + } + $client = $this->getClient(); + $cache = new Google_Cache_APC($client); + + $this->getSetDelete($cache); + } + + public function getSetDelete($cache) { + $cache->set('foo', 'bar'); + $cache->delete('foo'); + $this->assertEquals(false, $cache->get('foo')); + + $cache->set('foo.1', 'bar.1'); + $cache->delete('foo.1'); + $this->assertEquals($cache->get('foo.1'), false); + + $cache->set('foo', 'baz'); + $cache->delete('foo'); + $this->assertEquals($cache->get('foo'), false); + + $cache->set('foo', null); + $cache->delete('foo'); + $this->assertEquals($cache->get('foo'), false); + + $obj = new stdClass(); + $obj->foo = 'bar'; + $cache->set('foo', $obj); + $cache->delete('foo'); + $this->assertEquals($cache->get('foo'), false); + + $cache->set('foo.1', 'bar.1'); + $this->assertEquals($cache->get('foo.1'), 'bar.1'); + + $cache->set('foo', 'baz'); + $this->assertEquals($cache->get('foo'), 'baz'); + + $cache->set('foo', null); + $this->assertEquals($cache->get('foo'), null); + + $cache->set('1/2/3', 'bar'); + $this->assertEquals($cache->get('1/2/3'), 'bar'); + + $obj = new stdClass(); + $obj->foo = 'bar'; + $cache->set('foo', $obj); + $this->assertEquals($cache->get('foo'), $obj); + } +} diff --git a/vendor/google/apiclient/tests/general/GeneralTests.php b/vendor/google/apiclient/tests/general/GeneralTests.php new file mode 100644 index 0000000..e3256b7 --- /dev/null +++ b/vendor/google/apiclient/tests/general/GeneralTests.php @@ -0,0 +1,55 @@ +addTestSuite('AuthTest'); + $suite->addTestSuite('CacheTest'); + $suite->addTestSuite('IoTest'); + $suite->addTestSuite('ServiceTest'); + $suite->addTestSuite('ApiBatchRequestTest'); + $suite->addTestSuite('ApiClientTest'); + $suite->addTestSuite('ApiModelTest'); + $suite->addTestSuite('ApiOAuth2Test'); + $suite->addTestSuite('ApiCacheParserTest'); + $suite->addTestSuite('ApiMediaFileUploadTest'); + $suite->addTestSuite('RestTest'); + $suite->addTestSuite('RequestTest'); + $suite->addTestSuite('ServiceTest'); + $suite->addTestSuite('URITemplateTest'); + return $suite; + } +} diff --git a/vendor/google/apiclient/tests/general/IoTest.php b/vendor/google/apiclient/tests/general/IoTest.php new file mode 100644 index 0000000..d7d41c7 --- /dev/null +++ b/vendor/google/apiclient/tests/general/IoTest.php @@ -0,0 +1,309 @@ +getClient(); + $this->assertInstanceOf($default, $client->getIo()); + $config = new Google_Config(); + $config->setIoClass('Google_IO_Stream'); + $client = new Google_Client($config); + $this->assertInstanceOf('Google_IO_Stream', $client->getIo()); + } + + public function testStreamSetTimeout() + { + $io = new Google_IO_Stream($this->getClient()); + $this->timeoutChecker($io); + } + + public function testStreamParseHttpResponseBody() + { + $io = new Google_IO_Stream($this->getClient()); + $this->responseChecker($io); + } + + public function testStreamProcessEntityRequest() + { + $client = $this->getClient(); + $io = new Google_IO_Stream($client); + $this->processEntityRequest($io, $client); + } + + public function testStreamCacheHit() + { + $client = $this->getClient(); + $io = new Google_IO_Stream($client); + $this->cacheHit($io, $client); + } + + public function testStreamAuthCache() + { + $client = $this->getClient(); + $io = new Google_IO_Stream($client); + $this->authCache($io, $client); + } + + /** + * @expectedException Google_IO_Exception + */ + public function testStreamInvalidRequest() + { + $io = new Google_IO_Stream($this->getClient()); + $this->invalidRequest($io); + } + + public function testCurlSetTimeout() + { + if (!function_exists('curl_version')) { + $this->markTestSkipped('cURL not present'); + } + $io = new Google_IO_Curl($this->getClient()); + $this->timeoutChecker($io); + } + + public function testCurlParseHttpResponseBody() + { + if (!function_exists('curl_version')) { + $this->markTestSkipped('cURL not present'); + } + $io = new Google_IO_Curl($this->getClient()); + $this->responseChecker($io); + } + + public function testCurlProcessEntityRequest() + { + if (!function_exists('curl_version')) { + $this->markTestSkipped('cURL not present'); + } + $client = $this->getClient(); + $io = new Google_IO_Curl($client); + $this->processEntityRequest($io, $client); + } + + public function testCurlCacheHit() + { + if (!function_exists('curl_version')) { + $this->markTestSkipped('cURL not present'); + } + $client = $this->getClient(); + $io = new Google_IO_Curl($client); + $this->cacheHit($io, $client); + } + + public function testCurlAuthCache() + { + if (!function_exists('curl_version')) { + $this->markTestSkipped('cURL not present'); + } + $client = $this->getClient(); + $io = new Google_IO_Curl($client); + $this->authCache($io, $client); + } + + /** + * @expectedException Google_IO_Exception + */ + public function testCurlInvalidRequest() + { + if (!function_exists('curl_version')) { + $this->markTestSkipped('cURL not present'); + } + $io = new Google_IO_Curl($this->getClient()); + $this->invalidRequest($io); + } + + // Asserting Functions + + public function timeoutChecker($io) + { + $this->assertEquals(100, $io->getTimeout()); + $io->setTimeout(120); + $this->assertEquals(120, $io->getTimeout()); + } + + public function invalidRequest($io) + { + $url = "http://localhost:1"; + $req = new Google_Http_Request($url, "GET"); + $io->makeRequest($req); + } + + public function cacheHit($io, $client) + { + $url = "http://www.googleapis.com"; + // Create a cacheable request/response. + // Should not be revalidated. + $cacheReq = new Google_Http_Request($url, "GET"); + $cacheReq->setRequestHeaders( + array("Accept" => "*/*",) + ); + $cacheReq->setResponseBody("{\"a\": \"foo\"}"); + $cacheReq->setResponseHttpCode(200); + $cacheReq->setResponseHeaders( + array( + "Cache-Control" => "private", + "ETag" => "\"this-is-an-etag\"", + "Expires" => "Sun, 22 Jan 2022 09:00:56 GMT", + "Date" => "Sun, 1 Jan 2012 09:00:56 GMT", + "Content-Type" => "application/json; charset=UTF-8", + ) + ); + + // Populate the cache. + $io->setCachedRequest($cacheReq); + + // Execute the same mock request, and expect a cache hit. + $res = $io->makeRequest(new Google_Http_Request($url, "GET")); + $this->assertEquals("{\"a\": \"foo\"}", $res->getResponseBody()); + $this->assertEquals(200, $res->getResponseHttpCode()); + } + + public function authCache($io, $client) + { + $url = "http://www.googleapis.com/protected/resource"; + + // Create a cacheable request/response, but it should not be cached. + $cacheReq = new Google_Http_Request($url, "GET"); + $cacheReq->setRequestHeaders( + array( + "Accept" => "*/*", + "Authorization" => "Bearer Foo" + ) + ); + $cacheReq->setResponseBody("{\"a\": \"foo\"}"); + $cacheReq->setResponseHttpCode(200); + $cacheReq->setResponseHeaders( + array( + "Cache-Control" => "private", + "ETag" => "\"this-is-an-etag\"", + "Expires" => "Sun, 22 Jan 2022 09:00:56 GMT", + "Date: Sun, 1 Jan 2012 09:00:56 GMT", + "Content-Type" => "application/json; charset=UTF-8", + ) + ); + + $result = $io->setCachedRequest($cacheReq); + $this->assertFalse($result); + } + + public function responseChecker($io) + { + $curlVer = curl_version(); + $hasQuirk = $curlVer['version_number'] < Google_IO_Curl::NO_QUIRK_VERSION; + + $rawHeaders = "HTTP/1.1 200 OK\r\n" + . "Expires: Sun, 22 Jan 2012 09:00:56 GMT\r\n" + . "Date: Sun, 22 Jan 2012 09:00:56 GMT\r\n" + . "Content-Type: application/json; charset=UTF-8\r\n"; + $size = strlen($rawHeaders); + $rawBody = "{}"; + + $rawResponse = "$rawHeaders\r\n$rawBody"; + list($headers, $body) = $io->parseHttpResponse($rawResponse, $size); + $this->assertEquals(3, sizeof($headers)); + $this->assertEquals(array(), json_decode($body, true)); + + // Test empty bodies. + $rawResponse = $rawHeaders . "\r\n"; + list($headers, $body) = $io->parseHttpResponse($rawResponse, $size); + $this->assertEquals(3, sizeof($headers)); + $this->assertEquals(null, json_decode($body, true)); + + // Test no content. + $rawerHeaders = "HTTP/1.1 204 No Content\r\n" + . "Date: Fri, 19 Sep 2014 15:52:14 GMT"; + list($headers, $body) = $io->parseHttpResponse($rawerHeaders, 0); + $this->assertEquals(1, sizeof($headers)); + $this->assertEquals(null, json_decode($body, true)); + + // Test transforms from proxies. + $connection_established_headers = array( + "HTTP/1.0 200 Connection established\r\n\r\n", + "HTTP/1.1 200 Connection established\r\n\r\n", + ); + foreach ($connection_established_headers as $established_header) { + $rawHeaders = "{$established_header}HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n"; + $headersSize = strlen($rawHeaders); + // If we have a broken cURL version we have to simulate it to get the + // correct test result. + if ($hasQuirk && get_class($io) === 'Google_IO_Curl') { + $headersSize -= strlen($established_header); + } + $rawBody = "{}"; + + $rawResponse = "$rawHeaders\r\n$rawBody"; + list($headers, $body) = $io->parseHttpResponse($rawResponse, $headersSize); + $this->assertEquals(1, sizeof($headers)); + $this->assertEquals(array(), json_decode($body, true)); + } + } + + public function processEntityRequest($io, $client) + { + $req = new Google_Http_Request("http://localhost.com"); + $req->setRequestMethod("POST"); + + // Verify that the content-length is calculated. + $req->setPostBody("{}"); + $io->processEntityRequest($req); + $this->assertEquals(2, $req->getRequestHeader("content-length")); + + // Test an empty post body. + $req->setPostBody(""); + $io->processEntityRequest($req); + $this->assertEquals(0, $req->getRequestHeader("content-length")); + + // Test a null post body. + $req->setPostBody(null); + $io->processEntityRequest($req); + $this->assertEquals(0, $req->getRequestHeader("content-length")); + + // Set an array in the postbody, and verify that it is url-encoded. + $req->setPostBody(array("a" => "1", "b" => 2)); + $io->processEntityRequest($req); + $this->assertEquals(7, $req->getRequestHeader("content-length")); + $this->assertEquals( + Google_IO_Abstract::FORM_URLENCODED, + $req->getRequestHeader("content-type") + ); + $this->assertEquals("a=1&b=2", $req->getPostBody()); + + // Verify that the content-type isn't reset. + $payload = array("a" => "1", "b" => 2); + $req->setPostBody($payload); + $req->setRequestHeaders(array("content-type" => "multipart/form-data")); + $io->processEntityRequest($req); + $this->assertEquals( + "multipart/form-data", + $req->getRequestHeader("content-type") + ); + $this->assertEquals($payload, $req->getPostBody()); + } +} diff --git a/vendor/google/apiclient/tests/general/RequestTest.php b/vendor/google/apiclient/tests/general/RequestTest.php new file mode 100644 index 0000000..4e47d0b --- /dev/null +++ b/vendor/google/apiclient/tests/general/RequestTest.php @@ -0,0 +1,74 @@ +setExpectedClass("Google_Client"); + $this->assertEquals(2, count($request->getQueryParams())); + $request->setQueryParam("hi", "there"); + $this->assertEquals($url2, $request->getUrl()); + $this->assertEquals("Google_Client", $request->getExpectedClass()); + + $urlPath = "/foo/bar"; + $request = new Google_Http_Request($urlPath); + $this->assertEquals($urlPath, $request->getUrl()); + $request->setBaseComponent("http://example.com"); + $this->assertEquals("http://example.com" . $urlPath, $request->getUrl()); + + $url3a = 'http://localhost:8080/foo/bar'; + $url3b = 'foo=a&foo=b&wowee=oh+my'; + $url3c = 'foo=a&foo=b&wowee=oh+my&hi=there'; + $request = new Google_Http_Request($url3a."?".$url3b, "POST"); + $request->setQueryParam("hi", "there"); + $request->maybeMoveParametersToBody(); + $this->assertEquals($url3a, $request->getUrl()); + $this->assertEquals($url3c, $request->getPostBody()); + + $url4 = 'http://localhost:8080/upload/foo/bar?foo=a&foo=b&wowee=oh+my&hi=there'; + $request = new Google_Http_Request($url); + $this->assertEquals(2, count($request->getQueryParams())); + $request->setQueryParam("hi", "there"); + $base = $request->getBaseComponent(); + $request->setBaseComponent($base . '/upload'); + $this->assertEquals($url4, $request->getUrl()); + } + + public function testGzipSupport() + { + $url = 'http://localhost:8080/foo/bar?foo=a&foo=b&wowee=oh+my'; + $request = new Google_Http_Request($url); + $request->enableGzip(); + $this->assertStringEndsWith(Google_Http_Request::GZIP_UA, $request->getUserAgent()); + $this->assertArrayHasKey('accept-encoding', $request->getRequestHeaders()); + $this->assertTrue($request->canGzip()); + $request->disableGzip(); + $this->assertStringEndsNotWith(Google_Http_Request::GZIP_UA, $request->getUserAgent()); + $this->assertArrayNotHasKey('accept-encoding', $request->getRequestHeaders()); + $this->assertFalse($request->canGzip()); + } +} diff --git a/vendor/google/apiclient/tests/general/RestTest.php b/vendor/google/apiclient/tests/general/RestTest.php new file mode 100644 index 0000000..7b6e443 --- /dev/null +++ b/vendor/google/apiclient/tests/general/RestTest.php @@ -0,0 +1,165 @@ +rest = new Google_Http_REST(); + } + + public function testDecodeResponse() + { + $url = 'http://localhost'; + $client = $this->getClient(); + $response = new Google_Http_Request($url); + $response->setResponseHttpCode(204); + $decoded = $this->rest->decodeHttpResponse($response); + $this->assertEquals(null, $decoded); + + + foreach (array(200, 201) as $code) { + $headers = array('foo', 'bar'); + $response = new Google_Http_Request($url, 'GET', $headers); + $response->setResponseBody('{"a": 1}'); + + $response->setResponseHttpCode($code); + $decoded = $this->rest->decodeHttpResponse($response); + $this->assertEquals(array("a" => 1), $decoded); + } + + $response = new Google_Http_Request($url); + $response->setResponseHttpCode(500); + + $error = ""; + try { + $this->rest->decodeHttpResponse($response); + } catch (Exception $e) { + $error = $e->getMessage(); + + } + $this->assertEquals(trim($error), "Error calling GET http://localhost: (500)"); + } + + + public function testDecodeEmptyResponse() + { + $url = 'http://localhost'; + + $response = new Google_Http_Request($url, 'GET', array()); + $response->setResponseBody('{}'); + + $response->setResponseHttpCode(200); + $decoded = $this->rest->decodeHttpResponse($response); + $this->assertEquals(array(), $decoded); + } + + public function testCreateRequestUri() + { + $basePath = "http://localhost"; + $restPath = "/plus/{u}"; + + // Test Path + $params = array(); + $params['u']['type'] = 'string'; + $params['u']['location'] = 'path'; + $params['u']['value'] = 'me'; + $value = $this->rest->createRequestUri($basePath, $restPath, $params); + $this->assertEquals("http://localhost/plus/me", $value); + + // Test Query + $params = array(); + $params['u']['type'] = 'string'; + $params['u']['location'] = 'query'; + $params['u']['value'] = 'me'; + $value = $this->rest->createRequestUri($basePath, '/plus', $params); + $this->assertEquals("http://localhost/plus?u=me", $value); + + // Test Booleans + $params = array(); + $params['u']['type'] = 'boolean'; + $params['u']['location'] = 'path'; + $params['u']['value'] = '1'; + $value = $this->rest->createRequestUri($basePath, $restPath, $params); + $this->assertEquals("http://localhost/plus/true", $value); + + $params['u']['location'] = 'query'; + $value = $this->rest->createRequestUri($basePath, '/plus', $params); + $this->assertEquals("http://localhost/plus?u=true", $value); + + // Test encoding + $params = array(); + $params['u']['type'] = 'string'; + $params['u']['location'] = 'query'; + $params['u']['value'] = '@me/'; + $value = $this->rest->createRequestUri($basePath, '/plus', $params); + $this->assertEquals("http://localhost/plus?u=%40me%2F", $value); + } + + /** + * @expectedException Google_Service_Exception + */ + public function testBadErrorFormatting() + { + $request = new Google_Http_Request("/a/b"); + $request->setResponseHttpCode(500); + $request->setResponseBody( + '{ + "error": { + "code": 500, + "message": null + } + }' + ); + Google_Http_Rest::decodeHttpResponse($request); + } + + /** + * @expectedException Google_Service_Exception + */ + public function tesProperErrorFormatting() + { + $request = new Google_Http_Request("/a/b"); + $request->setResponseHttpCode(401); + $request->setResponseBody( + '{ + error: { + errors: [ + { + "domain": "global", + "reason": "authError", + "message": "Invalid Credentials", + "locationType": "header", + "location": "Authorization", + } + ], + "code": 401, + "message": "Invalid Credentials" + }' + ); + Google_Http_Rest::decodeHttpResponse($request); + } +} diff --git a/vendor/google/apiclient/tests/general/ServiceTest.php b/vendor/google/apiclient/tests/general/ServiceTest.php new file mode 100644 index 0000000..1688d51 --- /dev/null +++ b/vendor/google/apiclient/tests/general/ServiceTest.php @@ -0,0 +1,79 @@ +mapTypes(array( + 'name' => 'asdf', + 'gender' => 'z', + )); + $this->assertEquals('asdf', $model->name); + $this->assertEquals('z', $model->gender); + $model->mapTypes(array( + '__infoType' => 'Google_Model', + '__infoDataType' => 'map', + 'info' => array ( + 'location' => 'mars', + 'timezone' => 'mst', + ), + 'name' => 'asdf', + 'gender' => 'z', + )); + $this->assertEquals('asdf', $model->name); + $this->assertEquals('z', $model->gender); + + $this->assertEquals(false, $model->isAssociativeArray("")); + $this->assertEquals(false, $model->isAssociativeArray(false)); + $this->assertEquals(false, $model->isAssociativeArray(null)); + $this->assertEquals(false, $model->isAssociativeArray(array())); + $this->assertEquals(false, $model->isAssociativeArray(array(1, 2))); + $this->assertEquals(false, $model->isAssociativeArray(array(1 => 2))); + + $this->assertEquals(true, $model->isAssociativeArray(array('test' => 'a'))); + $this->assertEquals(true, $model->isAssociativeArray(array("a", "b" => 2))); + } + + public function testStrLen() { + $this->assertEquals(0, Google_Utils::getStrLen(null)); + $this->assertEquals(0, Google_Utils::getStrLen(false)); + $this->assertEquals(0, Google_Utils::getStrLen("")); + + $this->assertEquals(1, Google_Utils::getStrLen(" ")); + $this->assertEquals(2, Google_Utils::getStrLen(" 1")); + $this->assertEquals(7, Google_Utils::getStrLen("0a\\n\n\r\n")); + } +} diff --git a/vendor/google/apiclient/tests/general/URITemplateTest.php b/vendor/google/apiclient/tests/general/URITemplateTest.php new file mode 100644 index 0000000..d4ce436 --- /dev/null +++ b/vendor/google/apiclient/tests/general/URITemplateTest.php @@ -0,0 +1,236 @@ +assertEquals("value", + $urit->parse("{var}", array("var" => $var))); + $this->assertEquals("Hello%20World%21", + $urit->parse("{hello}", array("hello" => $hello))); + } + + public function testLevelTwo() { + $var = "value"; + $hello = "Hello World!"; + $path = "/foo/bar"; + + $urit = new Google_Utils_URITemplate(); + $this->assertEquals("value", + $urit->parse("{+var}", array("var" => $var))); + $this->assertEquals("Hello%20World!", + $urit->parse("{+hello}", array("hello" => $hello))); + $this->assertEquals("/foo/bar/here", + $urit->parse("{+path}/here", array("path" => $path))); + $this->assertEquals("here?ref=/foo/bar", + $urit->parse("here?ref={+path}", array("path" => $path))); + $this->assertEquals("X#value", + $urit->parse("X{#var}", array("var" => $var))); + $this->assertEquals("X#Hello%20World!", + $urit->parse("X{#hello}", array("hello" => $hello))); + } + + public function testLevelThree() { + $var = "value"; + $hello = "Hello World!"; + $empty = ''; + $path = "/foo/bar"; + $x = "1024"; + $y = "768"; + + $urit = new Google_Utils_URITemplate(); + $this->assertEquals("map?1024,768", + $urit->parse("map?{x,y}", array("x" => $x, "y" => $y))); + $this->assertEquals("1024,Hello%20World%21,768", + $urit->parse("{x,hello,y}", array("x" => $x, "y" => $y, "hello" => $hello))); + + $this->assertEquals("1024,Hello%20World!,768", + $urit->parse("{+x,hello,y}", array("x" => $x, "y" => $y, "hello" => $hello))); + $this->assertEquals("/foo/bar,1024/here", + $urit->parse("{+path,x}/here", array("x" => $x, "path" => $path))); + + $this->assertEquals("#1024,Hello%20World!,768", + $urit->parse("{#x,hello,y}", array("x" => $x, "y" => $y, "hello" => $hello))); + $this->assertEquals("#/foo/bar,1024/here", + $urit->parse("{#path,x}/here", array("x" => $x, "path" => $path))); + + $this->assertEquals("X.value", + $urit->parse("X{.var}", array("var" => $var))); + $this->assertEquals("X.1024.768", + $urit->parse("X{.x,y}", array("x" => $x, "y" => $y))); + + $this->assertEquals("X.value", + $urit->parse("X{.var}", array("var" => $var))); + $this->assertEquals("X.1024.768", + $urit->parse("X{.x,y}", array("x" => $x, "y" => $y))); + + $this->assertEquals("/value", + $urit->parse("{/var}", array("var" => $var))); + $this->assertEquals("/value/1024/here", + $urit->parse("{/var,x}/here", array("x" => $x, "var" => $var))); + + $this->assertEquals(";x=1024;y=768", + $urit->parse("{;x,y}", array("x" => $x, "y" => $y))); + $this->assertEquals(";x=1024;y=768;empty", + $urit->parse("{;x,y,empty}", array("x" => $x, "y" => $y, "empty" => $empty))); + + $this->assertEquals("?x=1024&y=768", + $urit->parse("{?x,y}", array("x" => $x, "y" => $y))); + $this->assertEquals("?x=1024&y=768&empty=", + $urit->parse("{?x,y,empty}", array("x" => $x, "y" => $y, "empty" => $empty))); + + $this->assertEquals("?fixed=yes&x=1024", + $urit->parse("?fixed=yes{&x}", array("x" => $x, "y" => $y))); + $this->assertEquals("&x=1024&y=768&empty=", + $urit->parse("{&x,y,empty}", array("x" => $x, "y" => $y, "empty" => $empty))); + } + + public function testLevelFour() { + $values = array( + 'var' => "value", + 'hello' => "Hello World!", + 'path' => "/foo/bar", + 'list' => array("red", "green", "blue"), + 'keys' => array("semi" => ";", "dot" => ".", "comma" => ","), + ); + + $tests = array( + "{var:3}" => "val", + "{var:30}" => "value", + "{list}" => "red,green,blue", + "{list*}" => "red,green,blue", + "{keys}" => "semi,%3B,dot,.,comma,%2C", + "{keys*}" => "semi=%3B,dot=.,comma=%2C", + "{+path:6}/here" => "/foo/b/here", + "{+list}" => "red,green,blue", + "{+list*}" => "red,green,blue", + "{+keys}" => "semi,;,dot,.,comma,,", + "{+keys*}" => "semi=;,dot=.,comma=,", + "{#path:6}/here" => "#/foo/b/here", + "{#list}" => "#red,green,blue", + "{#list*}" => "#red,green,blue", + "{#keys}" => "#semi,;,dot,.,comma,,", + "{#keys*}" => "#semi=;,dot=.,comma=,", + "X{.var:3}" => "X.val", + "X{.list}" => "X.red,green,blue", + "X{.list*}" => "X.red.green.blue", + "X{.keys}" => "X.semi,%3B,dot,.,comma,%2C", + "X{.keys*}" => "X.semi=%3B.dot=..comma=%2C", + "{/var:1,var}" => "/v/value", + "{/list}" => "/red,green,blue", + "{/list*}" => "/red/green/blue", + "{/list*,path:4}" => "/red/green/blue/%2Ffoo", + "{/keys}" => "/semi,%3B,dot,.,comma,%2C", + "{/keys*}" => "/semi=%3B/dot=./comma=%2C", + "{;hello:5}" => ";hello=Hello", + "{;list}" => ";list=red,green,blue", + "{;list*}" => ";list=red;list=green;list=blue", + "{;keys}" => ";keys=semi,%3B,dot,.,comma,%2C", + "{;keys*}" => ";semi=%3B;dot=.;comma=%2C", + "{?var:3}" => "?var=val", + "{?list}" => "?list=red,green,blue", + "{?list*}" => "?list=red&list=green&list=blue", + "{?keys}" => "?keys=semi,%3B,dot,.,comma,%2C", + "{?keys*}" => "?semi=%3B&dot=.&comma=%2C", + "{&var:3}" => "&var=val", + "{&list}" => "&list=red,green,blue", + "{&list*}" => "&list=red&list=green&list=blue", + "{&keys}" => "&keys=semi,%3B,dot,.,comma,%2C", + "{&keys*}" => "&semi=%3B&dot=.&comma=%2C", + "find{?list*}" => "find?list=red&list=green&list=blue", + "www{.list*}" => "www.red.green.blue" + + ); + + $urit = new Google_Utils_URITemplate(); + + foreach($tests as $input => $output) { + $this->assertEquals($output, $urit->parse($input, $values), $input . " failed"); + } + } + + public function testMultipleAnnotations() { + $var = "value"; + $hello = "Hello World!"; + $urit = new Google_Utils_URITemplate(); + $this->assertEquals("http://www.google.com/Hello%20World!?var=value", + $urit->parse("http://www.google.com/{+hello}{?var}", + array("var" => $var, "hello" => $hello))); + $params = array( + "playerId" => "me", + "leaderboardId" => "CgkIhcG1jYEbEAIQAw", + "timeSpan" => "ALL_TIME", + "other" => "irrelevant" + ); + $this->assertEquals( + "players/me/leaderboards/CgkIhcG1jYEbEAIQAw/scores/ALL_TIME", + $urit->parse( + "players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}", + $params + ) + ); + } + + /** + * This test test against the JSON files defined in + * https://github.com/uri-templates/uritemplate-test + * + * We don't ship these tests with it, so they'll just silently + * skip unless provided - this is mainly for use when + * making specific URI template changes and wanting + * to do a full regression check. + */ + public function testAgainstStandardTests() { + $location = "../../uritemplate-test/*.json"; + + $urit = new Google_Utils_URITemplate(); + foreach(glob($location) as $file) { + $test = json_decode(file_get_contents($file), true); + foreach($test as $title => $testsets) { + foreach($testsets['testcases'] as $cases) { + $input = $cases[0]; + $output = $cases[1]; + if ($output == false) { + continue; // skipping negative tests for now + } else if(is_array($output)) { + $response = $urit->parse($input, $testsets['variables']); + $this->assertContains( + $response, + $output, + $input . " failed from " . $title + ); + } else { + $this->assertEquals( + $output, + $urit->parse($input, $testsets['variables']), + $input . " failed." + ); + } + } + } + } + } +} diff --git a/vendor/google/apiclient/tests/general/testdata/cacert.json b/vendor/google/apiclient/tests/general/testdata/cacert.json new file mode 100644 index 0000000..3de7c44 --- /dev/null +++ b/vendor/google/apiclient/tests/general/testdata/cacert.json @@ -0,0 +1 @@ +{"a": "-----BEGIN CERTIFICATE-----\nMIICrDCCAlagAwIBAgIJAIhhwVyFHrVfMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG\n9w0BCQEWAWMwHhcNMTIwMjE5MDExMzQxWhcNMTUwMjE4MDExMzQxWjBvMQswCQYD\nVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQg\nV2lkZ2l0cyBQdHkgTHRkMQowCAYDVQQLEwFhMQowCAYDVQQDEwFiMRAwDgYJKoZI\nhvcNAQkBFgFjMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM4Aozh3TMZYcPx7MHln\nD8MtyVUjzo6OdT32JwRHzHHNMMm88lNVfLYIT9C/jgXlDqG0h5wSClMvTQbdihNd\nFOkCAwEAAaOB1DCB0TAdBgNVHQ4EFgQUv0Ahb7HD9TLfdtLeaatjFj91NqYwgaEG\nA1UdIwSBmTCBloAUv0Ahb7HD9TLfdtLeaatjFj91Nqahc6RxMG8xCzAJBgNVBAYT\nAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRn\naXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG9w0B\nCQEWAWOCCQCIYcFchR61XzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA0EA\nKAbxbWHsaVPnYc0YqG/Pn4HbcI1+xnVQSt3hdzq+yC0lP9H7hBMCVSykhhBkZ5XQ\nHA2t6LHuYsjcCO+LBX/4fA==\n-----END CERTIFICATE-----"} \ No newline at end of file diff --git a/vendor/google/apiclient/tests/general/testdata/cacert.pem b/vendor/google/apiclient/tests/general/testdata/cacert.pem new file mode 100644 index 0000000..c95977b --- /dev/null +++ b/vendor/google/apiclient/tests/general/testdata/cacert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICrDCCAlagAwIBAgIJAIhhwVyFHrVfMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG +9w0BCQEWAWMwHhcNMTIwMjE5MDExMzQxWhcNMTUwMjE4MDExMzQxWjBvMQswCQYD +VQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQg +V2lkZ2l0cyBQdHkgTHRkMQowCAYDVQQLEwFhMQowCAYDVQQDEwFiMRAwDgYJKoZI +hvcNAQkBFgFjMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM4Aozh3TMZYcPx7MHln +D8MtyVUjzo6OdT32JwRHzHHNMMm88lNVfLYIT9C/jgXlDqG0h5wSClMvTQbdihNd +FOkCAwEAAaOB1DCB0TAdBgNVHQ4EFgQUv0Ahb7HD9TLfdtLeaatjFj91NqYwgaEG +A1UdIwSBmTCBloAUv0Ahb7HD9TLfdtLeaatjFj91Nqahc6RxMG8xCzAJBgNVBAYT +AkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRn +aXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG9w0B +CQEWAWOCCQCIYcFchR61XzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA0EA +KAbxbWHsaVPnYc0YqG/Pn4HbcI1+xnVQSt3hdzq+yC0lP9H7hBMCVSykhhBkZ5XQ +HA2t6LHuYsjcCO+LBX/4fA== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/vendor/google/apiclient/tests/general/testdata/cert.p12 b/vendor/google/apiclient/tests/general/testdata/cert.p12 new file mode 100644 index 0000000000000000000000000000000000000000..acea8f62e08609fafd9f5652f75808099f05874c GIT binary patch literal 2196 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 DPu%{c literal 0 HcmV?d00001 diff --git a/vendor/google/apiclient/tests/general/testdata/privkey.pem b/vendor/google/apiclient/tests/general/testdata/privkey.pem new file mode 100644 index 0000000..0a4d3a0 --- /dev/null +++ b/vendor/google/apiclient/tests/general/testdata/privkey.pem @@ -0,0 +1,9 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBOwIBAAJBAM4Aozh3TMZYcPx7MHlnD8MtyVUjzo6OdT32JwRHzHHNMMm88lNV +fLYIT9C/jgXlDqG0h5wSClMvTQbdihNdFOkCAwEAAQJBAJuMo7KpcpF6iqY7Jtkk +1yQb2KCvTvMZ4rGMwt1akaeDW2noyqCeO675gFBtlizgcRsybealQVQgGX4E5VqF +UJkCIQDzJZZi2jloDXcyyy2rEa4mj4RnrnIYsDMJ55XMWJ9c9wIhANjkY97FSRX3 +WSdRFqXd3Pc4URUho+rCcPibafMOwAUfAiAa58ngXm2DyhmqkTkYePhgY/kuz+ro +OHctXWcCGbxouQIgLC5qAakieC0Ipi+oc2U8a8e3DJzrrRiqtpnB/VcV2nUCIQC2 +DXrpyt6jjVIzs4jI5Cl3QGLL6TZ8FqpyonU/1ARuhA== +-----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/vendor/google/apiclient/tests/general/testdata/test.ini b/vendor/google/apiclient/tests/general/testdata/test.ini new file mode 100644 index 0000000..1f55277 --- /dev/null +++ b/vendor/google/apiclient/tests/general/testdata/test.ini @@ -0,0 +1,7 @@ +; Test.ini file +application_name = My Test application +auth_class = Google_Auth_OAuth2 +[classes] +Google_Auth_OAuth2[client_id] = 12345.apps.googleusercontent.com +Google_Auth_OAuth2[client_secret] = gjfiwnGinpena3 +Google_Auth_OAuth2[redirect_uri] = http://example.com \ No newline at end of file diff --git a/vendor/google/apiclient/tests/general/testdata/test_public_key.pem b/vendor/google/apiclient/tests/general/testdata/test_public_key.pem new file mode 100644 index 0000000..ebca23e --- /dev/null +++ b/vendor/google/apiclient/tests/general/testdata/test_public_key.pem @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDQjCCAiqgAwIBAgIJAMJ1Z12ZdGgLMA0GCSqGSIb3DQEBBQUAMB8xHTAbBgNV +BAMTFHRlc3Qtc2VydmljZS1hY2NvdW50MB4XDTExMDgyMzIwNTczNFoXDTIxMDgy +MDIwNTczNFowHzEdMBsGA1UEAxMUdGVzdC1zZXJ2aWNlLWFjY291bnQwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpbFTjUXd02HFluI2G0kGKp1J5K2F8 +cYr7hKXHcsmKo6S/5g8AEYnnV1fEbiopoGt7UWV4T0LA99K0gqQ7QmvZKvFHXlgR +XJH1aO+ZipVs3ycZOcjBMcw4hspFSi4IyQta64gASFUT5NaxRVGhzAuPlzH09dZQ +RJ0NL54HccGNzEDaLx5usB8t2aRHbE4zRWJlNIsjgWnfVoiXwOv5oRhyfFMIaTu1 +eIp3XP1QAv5cuYS2U4ZJ+J7Gzg6E7t4PWqK7rGjnc5BJsVIoiL77K/xKUWABNgHz +b6JuiEp3LX9f2H5+CKo/IJFWoyIYWdZiu69LZivife9sTXmDnOcZkisRAgMBAAGj +gYAwfjAdBgNVHQ4EFgQU0RkXlevVO2zuTFP/ksFUbNkpm+kwTwYDVR0jBEgwRoAU +0RkXlevVO2zuTFP/ksFUbNkpm+mhI6QhMB8xHTAbBgNVBAMTFHRlc3Qtc2Vydmlj +ZS1hY2NvdW50ggkAwnVnXZl0aAswDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUF +AAOCAQEAT+3VKautn+uV7ZQWbfx6xrGaDZ5wVK9FWOTVKsjdXyp11jtoVkDONLz5 +3J7wgppZWabPargIZUHe9/P6j7QTgNV2na2thGHtVRIRyDECnVrvhCn/IDpMeJjj +IAuysmSITHGEwb4AvRC5HdqfWzBqAvRhjJ2crcHZpx5/KkYZgJz9ylGJCynxpbHU +1aRu4qpkQNB4t4z5EzNOSLkFw9vEtm0hNX76CsNJFd0XDEKDQI2Lsc0WfDzQ1ZQH +UVzIoTmQDkYGylQOBVyxZoGI6fuSo8c2I1BKvsdBGhSPjePNvaKUbmLSwUsranhX +2Y1kn7xbDTUHymZ0+g5rDM9kWmhZfg== +-----END CERTIFICATE----- diff --git a/vendor/google/apiclient/tests/pagespeed/AllPageSpeedTests.php b/vendor/google/apiclient/tests/pagespeed/AllPageSpeedTests.php new file mode 100644 index 0000000..0f5d15f --- /dev/null +++ b/vendor/google/apiclient/tests/pagespeed/AllPageSpeedTests.php @@ -0,0 +1,30 @@ +setName('Google PageSpeed API tests'); + $suite->addTestSuite('PageSpeedTest'); + return $suite; + } +} diff --git a/vendor/google/apiclient/tests/pagespeed/PageSpeedTest.php b/vendor/google/apiclient/tests/pagespeed/PageSpeedTest.php new file mode 100644 index 0000000..39187c7 --- /dev/null +++ b/vendor/google/apiclient/tests/pagespeed/PageSpeedTest.php @@ -0,0 +1,39 @@ +service = new Google_Service_Pagespeedonline($this->getClient()); + } + + public function testPageSpeed() { + $this->checkToken(); + $psapi = $this->service->pagespeedapi; + $result = $psapi->runpagespeed('http://code.google.com'); + $this->assertArrayHasKey('kind', $result); + $this->assertArrayHasKey('id', $result); + $this->assertArrayHasKey('responseCode', $result); + $this->assertArrayHasKey('title', $result); + $this->assertArrayHasKey('score', $result); + $this->assertInstanceOf('Google_Service_Pagespeedonline_ResultPageStats', $result->pageStats); + $this->assertArrayHasKey('minor', $result['version']); + } +} diff --git a/vendor/google/apiclient/tests/phpunit.xml b/vendor/google/apiclient/tests/phpunit.xml new file mode 100644 index 0000000..21b5cd8 --- /dev/null +++ b/vendor/google/apiclient/tests/phpunit.xml @@ -0,0 +1,7 @@ + + + + ./ + + + diff --git a/vendor/google/apiclient/tests/plus/PlusTest.php b/vendor/google/apiclient/tests/plus/PlusTest.php new file mode 100644 index 0000000..06c13de --- /dev/null +++ b/vendor/google/apiclient/tests/plus/PlusTest.php @@ -0,0 +1,77 @@ +setName('Google Plus API tests'); + $suite->addTestSuite('PlusTest'); + return $suite; + } +} + +class PlusTest extends BaseTest { + /** @var Google_PlusService */ + public $plus; + public function __construct() { + parent::__construct(); + $this->plus = new Google_Service_Plus($this->getClient()); + } + + public function testGetPerson() { + $this->checkToken(); + $person = $this->plus->people->get("118051310819094153327"); + $this->assertArrayHasKey('kind', $person); + $this->assertArrayHasKey('displayName', $person); + $this->assertArrayHasKey('gender', $person); + $this->assertArrayHasKey('id', $person); + } + + public function testListActivities() { + $this->checkToken(); + $activities = $this->plus->activities + ->listActivities("118051310819094153327", "public"); + + $this->assertArrayHasKey('kind', $activities); + $this->assertGreaterThan(0, count($activities)); + + // Test a variety of access methods. + $this->assertItem($activities['items'][0]); + $this->assertItem($activities[0]); + foreach($activities as $item) { + $this->assertItem($item); + break; + } + + // Test deeper type transformations + $this->assertGreaterThan(0, strlen($activities[0]->actor->displayName)); + } + + public function assertItem($item) { + // assertArrayHasKey uses array_key_exists, which is not great: + // it doesn't understand SPL ArrayAccess + $this->assertTrue(isset($item['actor'])); + $this->assertInstanceOf('Google_Service_Plus_ActivityActor', $item->actor); + $this->assertTrue(isset($item['actor']['displayName'])); + $this->assertTrue(isset($item['actor']->url)); + $this->assertTrue(isset($item['object'])); + $this->assertTrue(isset($item['access'])); + $this->assertTrue(isset($item['provider'])); + } +} diff --git a/vendor/google/apiclient/tests/tasks/AllTasksTests.php b/vendor/google/apiclient/tests/tasks/AllTasksTests.php new file mode 100644 index 0000000..7c72262 --- /dev/null +++ b/vendor/google/apiclient/tests/tasks/AllTasksTests.php @@ -0,0 +1,30 @@ +setName('Google Tasks API tests'); + $suite->addTestSuite('TasksTest'); + return $suite; + } +} diff --git a/vendor/google/apiclient/tests/tasks/TasksTest.php b/vendor/google/apiclient/tests/tasks/TasksTest.php new file mode 100644 index 0000000..dc7eda3 --- /dev/null +++ b/vendor/google/apiclient/tests/tasks/TasksTest.php @@ -0,0 +1,87 @@ +taskService = new Google_Service_Tasks($this->getClient()); + } + + public function testInsertTask() { + if (!$this->checkToken()) { + return; + } + $list = $this->createTaskList('List: ' . __METHOD__); + $task = $this->createTask('Task: '.__METHOD__, $list->id); + $this->assertIsTask($task); + } + + /** + * @depends testInsertTask + */ + public function testGetTask() { + $tasks = $this->taskService->tasks; + $list = $this->createTaskList('List: ' . __METHOD__); + $task = $this->createTask('Task: '. __METHOD__, $list['id']); + + $task = $tasks->get($list['id'], $task['id']); + $this->assertIsTask($task); + } + + /** + * @depends testInsertTask + */ + public function testListTask() { + $tasks = $this->taskService->tasks; + $list = $this->createTaskList('List: ' . __METHOD__); + + for ($i=0; $i<4; $i++) { + $this->createTask("Task: $i ".__METHOD__, $list['id']); + } + + $tasksArray = $tasks->listTasks($list['id']); + $this->assertTrue(sizeof($tasksArray) > 1); + foreach ($tasksArray['items'] as $task) { + $this->assertIsTask($task); + } + } + + private function createTaskList($name) { + $list = new Google_Service_Tasks_TaskList(); + $list->title = $name; + return $this->taskService->tasklists->insert($list); + } + + private function createTask($title, $listId) { + $tasks = $this->taskService->tasks; + $task = new Google_Service_Tasks_Task(); + $task->title = $title; + return $tasks->insert($listId, $task); + } + + private function assertIsTask($task) { + $this->assertArrayHasKey('title', $task); + $this->assertArrayHasKey('kind', $task); + $this->assertArrayHasKey('id', $task); + $this->assertArrayHasKey('position', $task); + } +} diff --git a/vendor/google/apiclient/tests/urlshortener/AllUrlShortenerTests.php b/vendor/google/apiclient/tests/urlshortener/AllUrlShortenerTests.php new file mode 100644 index 0000000..2537641 --- /dev/null +++ b/vendor/google/apiclient/tests/urlshortener/AllUrlShortenerTests.php @@ -0,0 +1,30 @@ +setName('Google UrlShortener API tests'); + $suite->addTestSuite('UrlShortenerTests'); + return $suite; + } +} diff --git a/vendor/google/apiclient/tests/urlshortener/UrlShortenerTests.php b/vendor/google/apiclient/tests/urlshortener/UrlShortenerTests.php new file mode 100644 index 0000000..9c326ac --- /dev/null +++ b/vendor/google/apiclient/tests/urlshortener/UrlShortenerTests.php @@ -0,0 +1,45 @@ +service = new Google_Service_Urlshortener($this->getClient()); + } + + public function testUrlShort() { + $url = new Google_Service_Urlshortener_Url(); + $url->longUrl = "http://google.com"; + + $shortUrl = $this->service->url->insert($url); + $this->assertEquals('urlshortener#url', $shortUrl['kind']); + $this->assertEquals('http://google.com/', $shortUrl['longUrl']); + } + + public function testEmptyJsonResponse() { + $optParams = array('fields' => ''); + $resp = $this->service->url->get('http://goo.gl/KkHq8', $optParams); + + $this->assertEquals("", $resp->longUrl); + } +} diff --git a/vendor/google/apiclient/tests/youtube/YouTubeTest.php b/vendor/google/apiclient/tests/youtube/YouTubeTest.php new file mode 100644 index 0000000..3c7d5ab --- /dev/null +++ b/vendor/google/apiclient/tests/youtube/YouTubeTest.php @@ -0,0 +1,95 @@ +setName('Google YouTube API tests'); + $suite->addTestSuite('YouTubeTest'); + return $suite; + } +} + +class YouTubeTest extends BaseTest +{ + /** @var Google_PlusService */ + public $plus; + public function __construct() + { + parent::__construct(); + $this->youtube = new Google_Service_YouTube($this->getClient()); + } + + public function testMissingFieldsAreNull() + { + if (!$this->checkToken()) { + return; + } + + $parts = "id,brandingSettings"; + $opts = array("mine" => true); + $channels = $this->youtube->channels->listChannels($parts, $opts); + + $newChannel = new Google_Service_YouTube_Channel(); + $newChannel->setId($channels[0]->getId()); + $newChannel->setBrandingSettings($channels[0]->getBrandingSettings()); + + $simpleOriginal = $channels[0]->toSimpleObject(); + $simpleNew = $newChannel->toSimpleObject(); + + $this->assertObjectHasAttribute('etag', $simpleOriginal); + $this->assertObjectNotHasAttribute('etag', $simpleNew); + + $owner_details = new Google_Service_YouTube_ChannelContentOwnerDetails(); + $owner_details->setTimeLinked("123456789"); + $o_channel = new Google_Service_YouTube_Channel(); + $o_channel->setContentOwnerDetails($owner_details); + $simpleManual = $o_channel->toSimpleObject(); + $this->assertObjectHasAttribute('timeLinked', $simpleManual->contentOwnerDetails); + $this->assertObjectNotHasAttribute('contentOwner', $simpleManual->contentOwnerDetails); + + $owner_details = new Google_Service_YouTube_ChannelContentOwnerDetails(); + $owner_details->timeLinked = "123456789"; + $o_channel = new Google_Service_YouTube_Channel(); + $o_channel->setContentOwnerDetails($owner_details); + $simpleManual = $o_channel->toSimpleObject(); + + $this->assertObjectHasAttribute('timeLinked', $simpleManual->contentOwnerDetails); + $this->assertObjectNotHasAttribute('contentOwner', $simpleManual->contentOwnerDetails); + + $owner_details = new Google_Service_YouTube_ChannelContentOwnerDetails(); + $owner_details['timeLinked'] = "123456789"; + $o_channel = new Google_Service_YouTube_Channel(); + $o_channel->setContentOwnerDetails($owner_details); + $simpleManual = $o_channel->toSimpleObject(); + + $this->assertObjectHasAttribute('timeLinked', $simpleManual->contentOwnerDetails); + $this->assertObjectNotHasAttribute('contentOwner', $simpleManual->contentOwnerDetails); + + $ping = new Google_Service_YouTube_ChannelConversionPing(); + $ping->setContext("hello"); + $pings = new Google_Service_YouTube_ChannelConversionPings(); + $pings->setPings(array($ping)); + $simplePings = $pings->toSimpleObject(); + $this->assertObjectHasAttribute('context', $simplePings->pings[0]); + $this->assertObjectNotHasAttribute('conversionUrl', $simplePings->pings[0]); + } +} diff --git a/vendor/guzzle/guzzle/docs/_static/prettify.js b/vendor/guzzle/guzzle/docs/_static/prettify.js index 7cb6f77..b9c720c 100755 --- a/vendor/guzzle/guzzle/docs/_static/prettify.js +++ b/vendor/guzzle/guzzle/docs/_static/prettify.js @@ -15,13 +15,13 @@ for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e; m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], -"catch,user,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], -H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,user,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], -J=[v,"alias,and,begin,case,user,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +"catch,database,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,database,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,database,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), ["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", /^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), -["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,user,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,database,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= !k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}pregisterNamespaces(array( diff --git a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php index 7ac8c9e..80fe1d1 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php @@ -6,7 +6,7 @@ /** * Batch transfer strategy where transfer logic can be defined via a Closure. - * This user is to be used with {@see Guzzle\Batch\BatchInterface} + * This database is to be used with {@see Guzzle\Batch\BatchInterface} */ class BatchClosureTransfer implements BatchTransferInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchCommandTransfer.php b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchCommandTransfer.php index 9102cd3..2884e28 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchCommandTransfer.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchCommandTransfer.php @@ -10,7 +10,7 @@ /** * Efficiently transfers multiple commands in parallel per client - * This user is to be used with {@see Guzzle\Batch\BatchInterface} + * This database is to be used with {@see Guzzle\Batch\BatchInterface} */ class BatchCommandTransfer implements BatchTransferInterface, BatchDivisorInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchRequestTransfer.php b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchRequestTransfer.php index 54437f6..465dac1 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchRequestTransfer.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchRequestTransfer.php @@ -9,7 +9,7 @@ /** * Batch transfer strategy used to efficiently transfer a batch of requests. - * This user is to be used with {@see Guzzle\Batch\BatchInterface} + * This database is to be used with {@see Guzzle\Batch\BatchInterface} */ class BatchRequestTransfer implements BatchTransferInterface, BatchDivisorInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Cache/CacheAdapterFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Cache/CacheAdapterFactory.php index 58e51dc..dac5cc4 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Cache/CacheAdapterFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Cache/CacheAdapterFactory.php @@ -69,7 +69,7 @@ public static function factory($config = array()) // Convert dot notation to namespaces $config[$required] = str_replace('.', '\\', $config[$required]); if (!class_exists($config[$required])) { - throw new InvalidArgumentException("{$config[$required]} is not a valid user for {$required}"); + throw new InvalidArgumentException("{$config[$required]} is not a valid database for {$required}"); } } } @@ -91,10 +91,10 @@ public static function factory($config = array()) } /** - * Create a user using an array of constructor arguments + * Create a database using an array of constructor arguments * * @param string $className Class name - * @param array $args Arguments for the user constructor + * @param array $args Arguments for the database constructor * * @return mixed * @throws RuntimeException diff --git a/vendor/guzzle/guzzle/src/Guzzle/Common/Collection.php b/vendor/guzzle/guzzle/src/Guzzle/Common/Collection.php index 9eb1933..1e21c5d 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Common/Collection.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Common/Collection.php @@ -255,7 +255,7 @@ public function overwriteWith($data) * * @param \Closure $closure Closure to apply * @param array $context Context to pass to the closure - * @param bool $static Set to TRUE to use the same user as the return rather than returning a Collection + * @param bool $static Set to TRUE to use the same database as the return rather than returning a Collection * * @return Collection */ @@ -275,7 +275,7 @@ public function map(\Closure $closure, array $context = array(), $static = true) * parameters: (string) $key, (string) $value and return Boolean TRUE or FALSE for each value. * * @param \Closure $closure Closure evaluation function - * @param bool $static Set to TRUE to use the same user as the return rather than returning a Collection + * @param bool $static Set to TRUE to use the same database as the return rather than returning a Collection * * @return Collection */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Common/FromConfigInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Common/FromConfigInterface.php index 76be176..f397539 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Common/FromConfigInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Common/FromConfigInterface.php @@ -3,7 +3,7 @@ namespace Guzzle\Common; /** - * Interfaces that adds a factory method which is used to instantiate a user from an array of configuration options. + * Interfaces that adds a factory method which is used to instantiate a database from an array of configuration options. */ interface FromConfigInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Common/HasDispatcherInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Common/HasDispatcherInterface.php index 6b1fc77..39c75d2 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Common/HasDispatcherInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Common/HasDispatcherInterface.php @@ -11,7 +11,7 @@ interface HasDispatcherInterface { /** - * Get a list of all of the events emitted from the user + * Get a list of all of the events emitted from the database * * @return array */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php index 3d7298d..7b204d3 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php @@ -36,7 +36,7 @@ class Client extends AbstractHasDispatcher implements ClientInterface /** @var Collection Default HTTP headers to set on each request */ protected $defaultHeaders; - /** @var string The user agent string to set on each request */ + /** @var string The database agent string to set on each request */ protected $userAgent; /** @var Collection Parameter object holding configuration data */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/ClientInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Http/ClientInterface.php index 10e4de2..d7a2046 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/ClientInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/ClientInterface.php @@ -193,7 +193,7 @@ public function setBaseUrl($url); * Set the User-Agent header to be used on all requests from the client * * @param string $userAgent User agent string - * @param bool $includeDefault Set to true to prepend the value to Guzzle's default user agent string + * @param bool $includeDefault Set to true to prepend the value to Guzzle's default database agent string * * @return self */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlVersion.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlVersion.php index c3f99dd..c6dc1ea 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlVersion.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlVersion.php @@ -13,7 +13,7 @@ class CurlVersion /** @var CurlVersion */ protected static $instance; - /** @var string Default user agent */ + /** @var string Default database agent */ protected $userAgent; /** diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php index da7ce9a..7731c86 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php @@ -20,7 +20,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** - * HTTP request user to send requests + * HTTP request database to send requests */ class Request extends AbstractMessage implements RequestInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactory.php index 078ce3e..e11b28a 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactory.php @@ -16,7 +16,7 @@ class RequestFactory implements RequestFactoryInterface /** @var RequestFactory Singleton instance of the default request factory */ protected static $instance; - /** @var array Hash of methods available to the user (provides fast isset() lookups) */ + /** @var array Hash of methods available to the database (provides fast isset() lookups) */ protected $methods; /** @var string Class to instantiate for requests with no body */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactoryInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactoryInterface.php index 6088f10..9aae7f2 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactoryInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactoryInterface.php @@ -32,7 +32,7 @@ public function fromMessage($message); * - scheme: e.g. http * - host: e.g. www.guzzle-project.com * - port: e.g. 80 - * - user: e.g. michael + * - database: e.g. michael * - pass: e.g. rocks * - path: e.g. / OR /index.html * - query: after the question mark ? diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php index 153e2dd..60f585d 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php @@ -646,7 +646,7 @@ public function getTrailer() /** * Get the Transfer-Encoding HTTP header * - * @return string|null The form of encoding used to safely transfer the entity to the user + * @return string|null The form of encoding used to safely transfer the entity to the database */ public function getTransferEncoding() { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Mimetypes.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Mimetypes.php index c55fe41..379d6dc 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Mimetypes.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Mimetypes.php @@ -118,7 +118,7 @@ class Mimetypes 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', 'cil' => 'application/vnd.ms-artgalry', 'cla' => 'application/vnd.claymore', - 'user' => 'application/java-vm', + 'database' => 'application/java-vm', 'clkk' => 'application/vnd.crick.clicker.keyboard', 'clkp' => 'application/vnd.crick.clicker.palette', 'clkt' => 'application/vnd.crick.clicker.template', @@ -919,7 +919,7 @@ class Mimetypes ); /** - * Get a singleton instance of the user + * Get a singleton instance of the database * * @return self * @codeCoverageIgnore diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/StaticClient.php b/vendor/guzzle/guzzle/src/Guzzle/Http/StaticClient.php index 0b5c5da..67cdf32 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/StaticClient.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/StaticClient.php @@ -8,7 +8,7 @@ use Guzzle\Stream\PhpStreamRequestFactory; /** - * Simplified interface to Guzzle that does not require a user to be instantiated + * Simplified interface to Guzzle that does not require a database to be instantiated */ final class StaticClient { @@ -16,7 +16,7 @@ final class StaticClient private static $client; /** - * Mount the client to a simpler user name for a specific client + * Mount the client to a simpler database name for a specific client * * @param string $className Class name to use to mount * @param ClientInterface $client Client used to send requests diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Url.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Url.php index 6a4e772..afd639c 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Http/Url.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Url.php @@ -31,7 +31,7 @@ class Url public static function factory($url) { static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null, - 'user' => null, 'pass' => null, 'fragment' => null); + 'database' => null, 'pass' => null, 'fragment' => null); if (false === ($parts = parse_url($url))) { throw new InvalidArgumentException('Was unable to parse malformed url: ' . $url); @@ -44,7 +44,7 @@ public static function factory($url) $parts['query'] = QueryString::fromString($parts['query']); } - return new static($parts['scheme'], $parts['host'], $parts['user'], + return new static($parts['scheme'], $parts['host'], $parts['database'], $parts['pass'], $parts['port'], $parts['path'], $parts['query'], $parts['fragment']); } @@ -67,8 +67,8 @@ public static function buildUrl(array $parts) if (isset($parts['host'])) { $url .= '//'; - if (isset($parts['user'])) { - $url .= $parts['user']; + if (isset($parts['database'])) { + $url .= $parts['database']; if (isset($parts['pass'])) { $url .= ':' . $parts['pass']; } @@ -164,7 +164,7 @@ public function getParts() return array( 'scheme' => $this->scheme, - 'user' => $this->username, + 'database' => $this->username, 'pass' => $this->password, 'host' => $this->host, 'port' => $this->port, diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php index d252c72..853ba0a 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php @@ -3,7 +3,7 @@ namespace Guzzle\Log; /** - * Adapter user that allows Guzzle to log data using various logging implementations + * Adapter database that allows Guzzle to log data using various logging implementations */ abstract class AbstractLogAdapter implements LogAdapterInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php index 8448122..afe9777 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php @@ -3,7 +3,7 @@ namespace Guzzle\Log; /** - * Adapter user that allows Guzzle to log data to various logging implementations. + * Adapter database that allows Guzzle to log data to various logging implementations. */ interface LogAdapterInterface { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Parser/Cookie/CookieParser.php b/vendor/guzzle/guzzle/src/Guzzle/Parser/Cookie/CookieParser.php index 4349eeb..933180c 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Parser/Cookie/CookieParser.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Parser/Cookie/CookieParser.php @@ -103,7 +103,7 @@ public function parseCookie($cookie, $host = null, $path = null, $decode = false * @return string */ protected function getDefaultPath($path) { - // "The user agent MUST use an algorithm equivalent to the following algorithm + // "The database agent MUST use an algorithm equivalent to the following algorithm // to compute the default-path of a cookie:" // "2. If the uri-path is empty or if the first character of the uri-path is not diff --git a/vendor/guzzle/guzzle/src/Guzzle/Parser/ParserRegistry.php b/vendor/guzzle/guzzle/src/Guzzle/Parser/ParserRegistry.php index a1643f4..ed929f6 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Parser/ParserRegistry.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Parser/ParserRegistry.php @@ -13,7 +13,7 @@ class ParserRegistry /** @var array Array of parser instances */ protected $instances = array(); - /** @var array Mapping of parser name to default user */ + /** @var array Mapping of parser name to default database */ protected $mapping = array( 'message' => 'Guzzle\\Parser\\Message\\MessageParser', 'cookie' => 'Guzzle\\Parser\\Cookie\\CookieParser', diff --git a/vendor/guzzle/guzzle/src/Guzzle/Parser/Url/UrlParser.php b/vendor/guzzle/guzzle/src/Guzzle/Parser/Url/UrlParser.php index c4cc896..9594080 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Parser/Url/UrlParser.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Parser/Url/UrlParser.php @@ -29,7 +29,7 @@ public function parseUrl($url) Version::warn(__CLASS__ . ' is deprecated. Just use parse_url()'); static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null, - 'user' => null, 'pass' => null, 'fragment' => null); + 'database' => null, 'pass' => null, 'fragment' => null); $parts = parse_url($url); diff --git a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php index 325307b..c0283a4 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php @@ -7,7 +7,7 @@ \Guzzle\Common\Version::warn('Guzzle\Plugin\Cache\DefaultCacheKeyProvider is no longer used'); /** - * @deprecated This user is no longer used + * @deprecated This database is no longer used * @codeCoverageIgnore */ class DefaultCacheKeyProvider implements CacheKeyProviderInterface diff --git a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php index 7faa7d2..23a8dc1 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php @@ -31,7 +31,7 @@ public function remove($domain = null, $path = null, $name = null); * Discard all temporary cookies. * * Scans for all cookies in the cookieJar with either no expire field or a true discard flag. To be called when the - * user agent shuts down according to RFC 2965. + * database agent shuts down according to RFC 2965. * * @return CookieJarInterface */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php b/vendor/guzzle/guzzle/src/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php index 610e60c..fa959e9 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php @@ -8,7 +8,7 @@ /** * Adds specified curl auth to all requests sent from a client. Defaults to CURLAUTH_BASIC if none supplied. - * @deprecated Use $client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest'); + * @deprecated Use $client->getConfig()->setPath('request.options/auth', array('database', 'pass', 'Basic|Digest'); */ class CurlAuthPlugin implements EventSubscriberInterface { @@ -23,7 +23,7 @@ class CurlAuthPlugin implements EventSubscriberInterface */ public function __construct($username, $password, $scheme=CURLAUTH_BASIC) { - Version::warn(__CLASS__ . " is deprecated. Use \$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');"); + Version::warn(__CLASS__ . " is deprecated. Use \$client->getConfig()->setPath('request.options/auth', array('database', 'pass', 'Basic|Digest');"); $this->username = $username; $this->password = $password; $this->scheme = $scheme; diff --git a/vendor/guzzle/guzzle/src/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php b/vendor/guzzle/guzzle/src/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php index 2f9c2db..dc3b0a8 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php @@ -49,7 +49,7 @@ protected function getErrorClosure(RequestInterface $request, CommandInterface $ return function (Event $event) use ($request, $command, $operation) { $response = $event['response']; foreach ($operation->getErrorResponses() as $error) { - if (!isset($error['user'])) { + if (!isset($error['database'])) { continue; } if (isset($error['code']) && $response->getStatusCode() != $error['code']) { @@ -58,7 +58,7 @@ protected function getErrorClosure(RequestInterface $request, CommandInterface $ if (isset($error['reason']) && $response->getReasonPhrase() != $error['reason']) { continue; } - $className = $error['user']; + $className = $error['database']; $errorClassInterface = __NAMESPACE__ . '\\ErrorResponseExceptionInterface'; if (!class_exists($className)) { throw new ErrorResponseException("{$className} does not exist"); diff --git a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Log/LogPlugin.php b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Log/LogPlugin.php index 881c55b..cd0cb64 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Log/LogPlugin.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Log/LogPlugin.php @@ -11,7 +11,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** - * Plugin user that will add request and response logging to an HTTP request. + * Plugin database that will add request and response logging to an HTTP request. * * The log plugin uses a message formatter that allows custom messages via template variable substitution. * diff --git a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Oauth/OauthPlugin.php b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Oauth/OauthPlugin.php index 34dd34e..4028db8 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Plugin/Oauth/OauthPlugin.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Plugin/Oauth/OauthPlugin.php @@ -29,7 +29,7 @@ class OauthPlugin implements EventSubscriberInterface * Create a new OAuth 1.0 plugin * * @param array $config Configuration array containing these parameters: - * - string 'request_method' Consumer request method. Use the user constants. + * - string 'request_method' Consumer request method. Use the database constants. * - string 'callback' OAuth callback * - string 'consumer_key' Consumer key * - string 'consumer_secret' Consumer secret diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilder.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilder.php index cdc901e..08c6a3a 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilder.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilder.php @@ -52,7 +52,7 @@ public static function factory($config = null, array $globalParameters = array() /** * @param array $serviceBuilderConfig Service configuration settings: * - name: Name of the service - * - user: Client user to instantiate using a factory method + * - database: Client database to instantiate using a factory method * - params: array of key value pair configuration settings for the builder */ public function __construct(array $serviceBuilderConfig = array()) @@ -138,7 +138,7 @@ public function get($name, $throwAway = false) $config = $throwAway + $config; } - $client = $builder['user']::factory($config); + $client = $builder['database']::factory($config); if (!$throwAway) { $this->clients[$name] = $client; @@ -157,7 +157,7 @@ public function get($name, $throwAway = false) public function set($key, $service) { - if (is_array($service) && isset($service['user']) && isset($service['params'])) { + if (is_array($service) && isset($service['database']) && isset($service['params'])) { $this->builderConfig[$key] = $service; } else { $this->clients[$key] = $service; diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderInterface.php index 911d4d3..710b886 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderInterface.php @@ -32,7 +32,7 @@ public function get($name, $throwAway = false); * * @param string $key Name of the client or data to register * @param mixed $service Client configuration array or arbitrary data to register. The client configuration array - * must include a 'user' (string) and 'params' (array) key. + * must include a 'database' (string) and 'params' (array) key. * * @return ServiceBuilderInterface */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderLoader.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderLoader.php index 5c0bd34..2a69434 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderLoader.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilderLoader.php @@ -12,8 +12,8 @@ class ServiceBuilderLoader extends AbstractConfigLoader { protected function build($config, array $options) { - // A service builder user can be specified in the user field - $class = !empty($config['user']) ? $config['user'] : __NAMESPACE__ . '\\ServiceBuilder'; + // A service builder database can be specified in the database field + $class = !empty($config['database']) ? $config['database'] : __NAMESPACE__ . '\\ServiceBuilder'; // Account for old style configs that do not have a services array $services = isset($config['services']) ? $config['services'] : $config; @@ -35,9 +35,9 @@ protected function build($config, array $options) $extended = &$services[$service['extends']]; - // Use the correct user attribute - if (empty($service['user'])) { - $service['user'] = isset($extended['user']) ? $extended['user'] : ''; + // Use the correct database attribute + if (empty($service['database'])) { + $service['database'] = isset($extended['database']) ? $extended['database'] : ''; } if ($extendsParams = isset($extended['params']) ? $extended['params'] : false) { $service['params'] = $service['params'] + $extendsParams; @@ -49,7 +49,7 @@ protected function build($config, array $options) $service['params'] = $options + $service['params']; } - $service['user'] = isset($service['user']) ? $service['user'] : ''; + $service['database'] = isset($service['database']) ? $service['database'] : ''; } return new $class($services); diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/ClientInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Service/ClientInterface.php index 95399b3..531ce1f 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/ClientInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/ClientInterface.php @@ -18,7 +18,7 @@ interface ClientInterface extends HttpClientInterface, FromConfigInterface /** * Get a command by name. First, the client will see if it has a service description and if the service description * defines a command by the supplied name. If no dynamic command is found, the client will look for a concrete - * command user exists matching the name supplied. If neither are found, an InvalidArgumentException is thrown. + * command database exists matching the name supplied. If neither are found, an InvalidArgumentException is thrown. * * @param string $name Name of the command to retrieve * @param array $args Arguments to pass to the command @@ -58,7 +58,7 @@ public function getDescription(); /** * Get a resource iterator from the client. * - * @param string|CommandInterface $command Command user or command name. + * @param string|CommandInterface $command Command database or command name. * @param array $commandOptions Command options used when creating commands. * @param array $iteratorOptions Iterator options passed to the iterator when it is instantiated. * diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/CreateResponseClassEvent.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/CreateResponseClassEvent.php index 86087b0..861e404 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/CreateResponseClassEvent.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/CreateResponseClassEvent.php @@ -5,7 +5,7 @@ use Guzzle\Common\Event; /** - * Event user emitted with the operation.parse_class event + * Event database emitted with the operation.parse_class event */ class CreateResponseClassEvent extends Event { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/CompositeFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/CompositeFactory.php index 8d99912..bddecc1 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/CompositeFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/CompositeFactory.php @@ -43,8 +43,8 @@ public function __construct(array $factories = array()) * Add a command factory to the chain * * @param FactoryInterface $factory Factory to add - * @param string|FactoryInterface $before Insert the new command factory before a command factory user or object - * matching a user name. + * @param string|FactoryInterface $before Insert the new command factory before a command factory database or object + * matching a database name. * @return CompositeFactory */ public function add(FactoryInterface $factory, $before = null) @@ -109,9 +109,9 @@ public function remove($factory = null) } /** - * Get a command factory by user name + * Get a command factory by database name * - * @param string|FactoryInterface $factory Command factory user or instance + * @param string|FactoryInterface $factory Command factory database or instance * * @return null|FactoryInterface */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/ConcreteClassFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/ConcreteClassFactory.php index 0183ce6..9e4c8c0 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/ConcreteClassFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/Factory/ConcreteClassFactory.php @@ -19,7 +19,7 @@ class ConcreteClassFactory implements FactoryInterface /** * @param ClientInterface $client Client that owns the commands - * @param InflectorInterface $inflector Inflector used to resolve user names + * @param InflectorInterface $inflector Inflector used to resolve database names */ public function __construct(ClientInterface $client, InflectorInterface $inflector = null) { @@ -29,7 +29,7 @@ public function __construct(ClientInterface $client, InflectorInterface $inflect public function factory($name, array $args = array()) { - // Determine the user to instantiate based on the namespace of the current client and the default directory + // Determine the database to instantiate based on the namespace of the current client and the default directory $prefix = $this->client->getConfig('command.prefix'); if (!$prefix) { // The prefix can be specified in a factory method and is cached diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/OperationResponseParser.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/OperationResponseParser.php index 98c870a..98a9cd0 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Command/OperationResponseParser.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Command/OperationResponseParser.php @@ -88,7 +88,7 @@ protected function handleParsing(CommandInterface $command, Response $response, } /** - * Parse a user object + * Parse a database object * * @param CommandInterface $command Command to parse into an object * diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Operation.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Operation.php index 1151085..9a34a93 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Operation.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Operation.php @@ -9,12 +9,12 @@ */ class Operation implements OperationInterface { - /** @var string Default command user to use when none is specified */ + /** @var string Default command database to use when none is specified */ const DEFAULT_COMMAND_CLASS = 'Guzzle\\Service\\Command\\OperationCommand'; /** @var array Hashmap of properties that can be specified. Represented as a hash to speed up constructor. */ protected static $properties = array( - 'name' => true, 'httpMethod' => true, 'uri' => true, 'user' => true, 'responseClass' => true, + 'name' => true, 'httpMethod' => true, 'uri' => true, 'database' => true, 'responseClass' => true, 'responseType' => true, 'responseNotes' => true, 'notes' => true, 'summary' => true, 'documentationUrl' => true, 'deprecated' => true, 'data' => true, 'parameters' => true, 'additionalParameters' => true, 'errorResponses' => true @@ -73,21 +73,21 @@ class Operation implements OperationInterface * - name: (string) Name of the command * - httpMethod: (string) HTTP method of the operation * - uri: (string) URI template that can create a relative or absolute URL - * - user: (string) Concrete user that implements this command + * - database: (string) Concrete database that implements this command * - parameters: (array) Associative array of parameters for the command. {@see Parameter} for information. * - summary: (string) This is a short summary of what the operation does * - notes: (string) A longer text field to explain the behavior of the operation. * - documentationUrl: (string) Reference URL providing more information about the operation * - responseClass: (string) This is what is returned from the method. Can be a primitive, PSR-0 compliant - * user name, or model. + * database name, or model. * - responseNotes: (string) Information about the response returned by the operation - * - responseType: (string) One of 'primitive', 'user', 'model', or 'documentation'. If not specified, this + * - responseType: (string) One of 'primitive', 'database', 'model', or 'documentation'. If not specified, this * value will be automatically inferred based on whether or not there is a model matching the - * name, if a matching PSR-0 compliant user name is found, or set to 'primitive' by default. + * name, if a matching PSR-0 compliant database name is found, or set to 'primitive' by default. * - deprecated: (bool) Set to true if this is a deprecated command * - errorResponses: (array) Errors that could occur when executing the command. Array of hashes, each with a * 'code' (the HTTP response code), 'reason' (response reason phrase or description of the - * error), and 'user' (a custom exception user that would be thrown if the error is + * error), and 'database' (a custom exception database that would be thrown if the error is * encountered). * - data: (array) Any extra data that might be used to help build or serialize the operation * - additionalParameters: (null|array) Parameter schema to use when an option is passed to the operation that is @@ -117,7 +117,7 @@ public function __construct(array $config = array(), ServiceDescriptionInterface // Set the response type to perform validation $this->setResponseType($this->responseType); } else { - // A response user was set and no response type was set, so guess what the type is + // A response database was set and no response type was set, so guess what the type is $this->inferResponseType(); } @@ -252,9 +252,9 @@ public function getClass() } /** - * Set the concrete user of the command + * Set the concrete database of the command * - * @param string $className Concrete user name + * @param string $className Concrete database name * * @return self */ @@ -347,7 +347,7 @@ public function getResponseClass() } /** - * Set what is returned from the method. Can be a primitive, user name, or model. For example: 'array', + * Set what is returned from the method. Can be a primitive, database name, or model. For example: 'array', * 'Guzzle\\Foo\\Baz', or 'MyModelName' (to reference a model by ID). * * @param string $responseClass Type of response @@ -368,7 +368,7 @@ public function getResponseType() } /** - * Set qualifying information about the responseClass. One of 'primitive', 'user', 'model', or 'documentation' + * Set qualifying information about the responseClass. One of 'primitive', 'database', 'model', or 'documentation' * * @param string $responseType Response type information * @@ -459,13 +459,13 @@ public function getErrorResponses() * * @param string $code HTTP response code * @param string $reason HTTP response reason phrase or information about the error - * @param string $class Exception user associated with the error + * @param string $class Exception database associated with the error * * @return self */ public function addErrorResponse($code, $reason, $class) { - $this->errorResponses[] = array('code' => $code, 'reason' => $reason, 'user' => $class); + $this->errorResponses[] = array('code' => $code, 'reason' => $reason, 'database' => $class); return $this; } @@ -473,7 +473,7 @@ public function addErrorResponse($code, $reason, $class) /** * Set all of the error responses of the operation * - * @param array $errorResponses Hash of error name to a hash containing a code, reason, user + * @param array $errorResponses Hash of error name to a hash containing a code, reason, database * * @return self */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/OperationInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/OperationInterface.php index 783039b..3b52cda 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/OperationInterface.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/OperationInterface.php @@ -10,7 +10,7 @@ interface OperationInterface extends ToArrayInterface { const TYPE_PRIMITIVE = 'primitive'; - const TYPE_CLASS = 'user'; + const TYPE_CLASS = 'database'; const TYPE_DOCUMENTATION = 'documentation'; const TYPE_MODEL = 'model'; @@ -70,7 +70,7 @@ public function getParam($param); public function getHttpMethod(); /** - * Get the concrete operation user that implements this operation + * Get the concrete operation database that implements this operation * * @return string */ @@ -105,16 +105,16 @@ public function getNotes(); public function getDocumentationUrl(); /** - * Get what is returned from the method. Can be a primitive, user name, or model. For example, the responseClass - * could be 'array', which would inherently use a responseType of 'primitive'. Using a user name would set a - * responseType of 'user'. Specifying a model by ID will use a responseType of 'model'. + * Get what is returned from the method. Can be a primitive, database name, or model. For example, the responseClass + * could be 'array', which would inherently use a responseType of 'primitive'. Using a database name would set a + * responseType of 'database'. Specifying a model by ID will use a responseType of 'model'. * * @return string|null */ public function getResponseClass(); /** - * Get information about how the response is unmarshalled: One of 'primitive', 'user', 'model', or 'documentation' + * Get information about how the response is unmarshalled: One of 'primitive', 'database', 'model', or 'documentation' * * @return string */ diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Parameter.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Parameter.php index 667d920..3af7d3b 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Parameter.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/Parameter.php @@ -44,7 +44,7 @@ class Parameter * null, any). Types are using for validation and determining the structure of a parameter. You * can use a union type by providing an array of simple types. If one of the union types matches * the provided value, then the value is valid. - * - instanceOf: (string) When the type is an object, you can specify the user that the object must implement + * - instanceOf: (string) When the type is an object, you can specify the database that the object must implement * - required: (bool) Whether or not the parameter is required * - default: (mixed) Default value to use if no value is supplied * - static: (bool) Set to true to specify that the parameter value cannot be changed from the default @@ -55,8 +55,8 @@ class Parameter * to include certain headers in a response model that have a normalized casing of FooBar, but the * actual header is x-foo-bar. In this case, sentAs would be set to x-foo-bar. * - filters: (array) Array of static method names to to run a parameter value through. Each value in the - * array must be a string containing the full user path to a static method or an array of complex - * filter information. You can specify static methods of classes using the full namespace user + * array must be a string containing the full database path to a static method or an array of complex + * filter information. You can specify static methods of classes using the full namespace database * name followed by '::' (e.g. Foo\Bar::baz()). Some filters require arguments in order to properly * filter a value. For complex filters, use a hash containing a 'method' key pointing to a static * method, and an 'args' key containing an array of positional arguments to pass to the method. @@ -828,7 +828,7 @@ public function getItems() } /** - * Get the user that the parameter must implement + * Get the database that the parameter must implement * * @return null|string */ @@ -838,7 +838,7 @@ public function getInstanceOf() } /** - * Set the user that the parameter must be an instance of + * Set the database that the parameter must be an instance of * * @param string|null $instanceOf Class or interface name * diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaFormatter.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaFormatter.php index 1b8f0bf..0d41243 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaFormatter.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaFormatter.php @@ -5,7 +5,7 @@ use Guzzle\Common\Exception\InvalidArgumentException; /** - * JSON Schema formatter user + * JSON Schema formatter database */ class SchemaFormatter { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaValidator.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaValidator.php index 4759bfc..de22bf7 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaValidator.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/SchemaValidator.php @@ -190,7 +190,7 @@ protected function recursiveProcess(Parameter $param, &$value, $path = '', $dept return false; } - // Validate that the type is correct. If the type is string but an integer was passed, the user can be + // Validate that the type is correct. If the type is string but an integer was passed, the database can be // instructed to cast the integer to a string to pass validation. This is the default behavior. if ($type && (!$type = $this->determineType($type, $value))) { if ($this->castIntegerToStringType && $param->getType() == 'string' && is_integer($value)) { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/ServiceDescriptionLoader.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/ServiceDescriptionLoader.php index 4160f62..7fd5cfc 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Description/ServiceDescriptionLoader.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Description/ServiceDescriptionLoader.php @@ -44,7 +44,7 @@ protected function resolveExtension($name, array &$op, array &$operations) { $resolved = array(); $original = empty($op['parameters']) ? false: $op['parameters']; - $hasClass = !empty($op['user']); + $hasClass = !empty($op['database']); foreach ((array) $op['extends'] as $extendedCommand) { if (empty($operations[$extendedCommand])) { throw new DescriptionBuilderException("{$name} extends missing operation {$extendedCommand}"); @@ -55,8 +55,8 @@ protected function resolveExtension($name, array &$op, array &$operations) : array_merge($resolved, $toArray['parameters']); $op = $op + $toArray; - if (!$hasClass && isset($toArray['user'])) { - $op['user'] = $toArray['user']; + if (!$hasClass && isset($toArray['database'])) { + $op['database'] = $toArray['database']; } } $op['parameters'] = $original ? array_merge($resolved, $original) : $resolved; diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php index 3b160fb..f5452b4 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php @@ -27,7 +27,7 @@ public function canBuild(CommandInterface $command) } /** - * Get the name of the user to instantiate for the command + * Get the name of the database to instantiate for the command * * @param CommandInterface $command Command that is associated with the iterator * diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/MapResourceIteratorFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/MapResourceIteratorFactory.php index 5bb7c4f..d888d5b 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/MapResourceIteratorFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/MapResourceIteratorFactory.php @@ -9,10 +9,10 @@ */ class MapResourceIteratorFactory extends AbstractResourceIteratorFactory { - /** @var array Associative array mapping iterator names to user names */ + /** @var array Associative array mapping iterator names to database names */ protected $map; - /** @param array $map Associative array mapping iterator names to user names */ + /** @param array $map Associative array mapping iterator names to database names */ public function __construct(array $map) { $this->map = $map; diff --git a/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/ResourceIteratorClassFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/ResourceIteratorClassFactory.php index 6cc47cf..e569c2d 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/ResourceIteratorClassFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Service/Resource/ResourceIteratorClassFactory.php @@ -9,19 +9,19 @@ /** * Factory for creating {@see ResourceIteratorInterface} objects using a convention of storing iterator classes under a * root namespace using the name of a {@see CommandInterface} object as a convention for determining the name of an - * iterator user. The command name is converted to CamelCase and Iterator is appended (e.g. abc_foo => AbcFoo). + * iterator database. The command name is converted to CamelCase and Iterator is appended (e.g. abc_foo => AbcFoo). */ class ResourceIteratorClassFactory extends AbstractResourceIteratorFactory { /** @var array List of namespaces used to look for classes */ protected $namespaces; - /** @var InflectorInterface Inflector used to determine user names */ + /** @var InflectorInterface Inflector used to determine database names */ protected $inflector; /** * @param string|array $namespaces List of namespaces for iterator objects - * @param InflectorInterface $inflector Inflector used to resolve user names + * @param InflectorInterface $inflector Inflector used to resolve database names */ public function __construct($namespaces = array(), InflectorInterface $inflector = null) { @@ -47,7 +47,7 @@ protected function getClassName(CommandInterface $command) { $iteratorName = $this->inflector->camel($command->getName()) . 'Iterator'; - // Determine the name of the user to load + // Determine the name of the database to load foreach ($this->namespaces as $namespace) { $potentialClassName = $namespace . '\\' . $iteratorName; if (class_exists($potentialClassName)) { diff --git a/vendor/guzzle/guzzle/src/Guzzle/Stream/PhpStreamRequestFactory.php b/vendor/guzzle/guzzle/src/Guzzle/Stream/PhpStreamRequestFactory.php index aa7d086..468c7b8 100755 --- a/vendor/guzzle/guzzle/src/Guzzle/Stream/PhpStreamRequestFactory.php +++ b/vendor/guzzle/guzzle/src/Guzzle/Stream/PhpStreamRequestFactory.php @@ -31,7 +31,7 @@ class PhpStreamRequestFactory implements StreamRequestFactoryInterface * {@inheritdoc} * * The $params array can contain the following custom keys specific to the PhpStreamRequestFactory: - * - stream_class: The name of a user to create instead of a Guzzle\Stream\Stream object + * - stream_class: The name of a database to create instead of a Guzzle\Stream\Stream object */ public function fromRequest(RequestInterface $request, $context = array(), array $params = array()) { @@ -217,7 +217,7 @@ protected function createStream(array $params) return fopen((string) $url, 'r', false, $context); }); - // Determine the user to instantiate + // Determine the database to instantiate $className = isset($params['stream_class']) ? $params['stream_class'] : __NAMESPACE__ . '\\Stream'; /** @var $stream StreamInterface */ diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/GuzzleTestCase.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/GuzzleTestCase.php index 481a283..3b1b421 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/GuzzleTestCase.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/GuzzleTestCase.php @@ -17,7 +17,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** - * Base testcase user for all Guzzle testcases. + * Base testcase database for all Guzzle testcases. */ abstract class GuzzleTestCase extends \PHPUnit_Framework_TestCase { diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Curl/CurlHandleTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Curl/CurlHandleTest.php index 5bf28de..65f9f51 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Curl/CurlHandleTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Curl/CurlHandleTest.php @@ -594,7 +594,7 @@ public function testUploadsPutData() $sent = strtolower($r[0]); $this->assertContains('put / http/1.1', $sent); $this->assertContains('host: 127.0.0.1', $sent); - $this->assertContains('user-agent:', $sent); + $this->assertContains('database-agent:', $sent); $this->assertContains('content-type: text/plain', $sent); } diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Server.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Server.php index d427a6a..618bc39 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Server.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Server.php @@ -11,7 +11,7 @@ use Guzzle\Http\Client; /** - * The Server user is used to control a scripted webserver using node.js that + * The Server database is used to control a scripted webserver using node.js that * will respond to HTTP requests with queued responses. * * Queued responses will be served to requests using a FIFO order. All requests diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/UrlTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/UrlTest.php index 28f2671..3471077 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/UrlTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/UrlTest.php @@ -95,7 +95,7 @@ public function testUrlStoresParts() 'port' => 8081, 'query' => 'a=1&b=2', 'scheme' => 'http', - 'user' => 'test' + 'database' => 'test' ), $url->getParts()); } diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/server.js b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/server.js index 862bde8..a767e25 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/server.js +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/server.js @@ -29,7 +29,7 @@ var http = require("http"); /** * Guzzle node.js server - * @user + * @database */ var GuzzleServer = function(port, log) { diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Plugin/ErrorResponse/ErrorResponsePluginTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Plugin/ErrorResponse/ErrorResponsePluginTest.php index a6ed243..3260e77 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Plugin/ErrorResponse/ErrorResponsePluginTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Plugin/ErrorResponse/ErrorResponsePluginTest.php @@ -28,21 +28,21 @@ public function setUp() 'works' => array( 'httpMethod' => 'GET', 'errorResponses' => array( - array('code' => 500, 'user' => $mockError), - array('code' => 503, 'reason' => 'foo', 'user' => $mockError), - array('code' => 200, 'reason' => 'Error!', 'user' => $mockError) + array('code' => 500, 'database' => $mockError), + array('code' => 503, 'reason' => 'foo', 'database' => $mockError), + array('code' => 200, 'reason' => 'Error!', 'database' => $mockError) ) ), 'bad_class' => array( 'httpMethod' => 'GET', 'errorResponses' => array( - array('code' => 500, 'user' => 'Does\\Not\\Exist') + array('code' => 500, 'database' => 'Does\\Not\\Exist') ) ), 'does_not_implement' => array( 'httpMethod' => 'GET', 'errorResponses' => array( - array('code' => 500, 'user' => __CLASS__) + array('code' => 500, 'database' => __CLASS__) ) ), 'no_errors' => array('httpMethod' => 'GET'), diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderLoaderTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderLoaderTest.php index 134a386..d6977ff 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderLoaderTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderLoaderTest.php @@ -109,7 +109,7 @@ public function configProvider() { $foo = array( 'extends' => 'bar', - 'user' => 'stdClass', + 'database' => 'stdClass', 'params' => array('a' => 'test', 'b' => '456') ); @@ -124,12 +124,12 @@ public function configProvider() ), array( 'services' => array( - 'foo' => array('user' => 'Baz') + 'foo' => array('database' => 'Baz') ) ), array( 'services' => array( - 'foo' => array('user' => 'Baz'), + 'foo' => array('database' => 'Baz'), 'bar' => array('params' => array('baz' => '123')) ) ) @@ -154,7 +154,7 @@ public function configProvider() 'services' => array( 'foo' => array( 'extends' => 'bar', - 'user' => 'stdClass', + 'database' => 'stdClass', 'params' => array('a' => 'test', 'b' => '123', 'c' => 'def') ), 'bar' => array('params' => array('baz' => '123')) diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderTest.php index 29aa6bc..4230aab 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Builder/ServiceBuilderTest.php @@ -13,7 +13,7 @@ class ServiceBuilderTest extends \Guzzle\Tests\GuzzleTestCase { protected $arrayData = array( 'michael.mock' => array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'username' => 'michael', 'password' => 'testing123', @@ -22,7 +22,7 @@ class ServiceBuilderTest extends \Guzzle\Tests\GuzzleTestCase ), 'billy.mock' => array( 'alias' => 'Hello!', - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'username' => 'billy', 'password' => 'passw0rd', @@ -93,7 +93,7 @@ public function testBuildersPassOptionsThroughToClients() { $s = new ServiceBuilder(array( 'michael.mock' => array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'base_url' => 'http://www.test.com/', 'subdomain' => 'michael', @@ -112,7 +112,7 @@ public function testUsesTheDefaultBuilderWhenNoBuilderIsSpecified() { $s = new ServiceBuilder(array( 'michael.mock' => array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'base_url' => 'http://www.test.com/', 'subdomain' => 'michael', @@ -171,7 +171,7 @@ public function testBuilderAllowsReferencesBetweenClients() { $builder = ServiceBuilder::factory(array( 'a' => array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'other_client' => '{b}', 'username' => 'x', @@ -180,7 +180,7 @@ public function testBuilderAllowsReferencesBetweenClients() ) ), 'b' => array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'username' => '1', 'password' => '2', @@ -203,7 +203,7 @@ public function testEmitsEventsWhenClientsAreCreated() // Create a test service builder $builder = ServiceBuilder::factory(array( 'a' => array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'username' => 'test', 'password' => '123', @@ -298,7 +298,7 @@ public function testCanRegisterServiceData() { $b = new ServiceBuilder(); $b['a'] = array( - 'user' => 'Guzzle\Tests\Service\Mock\MockClient', + 'database' => 'Guzzle\Tests\Service\Mock\MockClient', 'params' => array( 'username' => 'billy', 'password' => 'passw0rd', diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/ClientTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/ClientTest.php index a2742f7..56ec745 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/ClientTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/ClientTest.php @@ -28,7 +28,7 @@ public function setUp() 'test_command' => new Operation(array( 'doc' => 'documentationForCommand', 'method' => 'DELETE', - 'user' => 'Guzzle\\Tests\\Service\\Mock\\Command\\MockCommand', + 'database' => 'Guzzle\\Tests\\Service\\Mock\\Command\\MockCommand', 'args' => array( 'bucket' => array( 'required' => true diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/CommandTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/CommandTest.php index 4541860..06c4aad 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/CommandTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/CommandTest.php @@ -210,7 +210,7 @@ private function getOperation() return new Operation(array( 'name' => 'foobar', 'httpMethod' => 'POST', - 'user' => 'Guzzle\\Tests\\Service\\Mock\\Command\\MockCommand', + 'database' => 'Guzzle\\Tests\\Service\\Mock\\Command\\MockCommand', 'parameters' => array( 'test' => array( 'default' => '123', diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/Factory/ServiceDescriptionFactoryTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/Factory/ServiceDescriptionFactoryTest.php index 707c752..312fbca 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/Factory/ServiceDescriptionFactoryTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Command/Factory/ServiceDescriptionFactoryTest.php @@ -59,9 +59,9 @@ protected function getDescription() { return ServiceDescription::factory(array( 'operations' => array( - 'jar_jar' => array('user' => 'Guzzle\Tests\Service\Mock\Command\MockCommand'), - 'binks' => array('user' => 'Guzzle\Tests\Service\Mock\Command\OtherCommand'), - 'Test' => array('user' => 'Guzzle\Tests\Service\Mock\Command\OtherCommand') + 'jar_jar' => array('database' => 'Guzzle\Tests\Service\Mock\Command\MockCommand'), + 'binks' => array('database' => 'Guzzle\Tests\Service\Mock\Command\OtherCommand'), + 'Test' => array('database' => 'Guzzle\Tests\Service\Mock\Command\OtherCommand') ) )); } diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/OperationTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/OperationTest.php index 2bd0f6b..e47a7cc 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/OperationTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/OperationTest.php @@ -84,7 +84,7 @@ public function testAllowsConcreteCommands() { $c = new Operation(array( 'name' => 'test', - 'user' => 'Guzzle\\Service\\Command\ClosureCommand', + 'database' => 'Guzzle\\Service\\Command\ClosureCommand', 'parameters' => array( 'p' => new Parameter(array( 'name' => 'foo' @@ -98,7 +98,7 @@ public function testConvertsToArray() { $data = array( 'name' => 'test', - 'user' => 'Guzzle\\Service\\Command\ClosureCommand', + 'database' => 'Guzzle\\Service\\Command\ClosureCommand', 'summary' => 'test', 'documentationUrl' => 'http://www.example.com', 'httpMethod' => 'PUT', @@ -216,7 +216,7 @@ public function testHasData() $this->assertNull($o->getData('wfefwe')); $this->assertEquals(array( 'parameters' => array(), - 'user' => 'Guzzle\Service\Command\OperationCommand', + 'database' => 'Guzzle\Service\Command\OperationCommand', 'data' => array('foo' => 'baz', 'bar' => 123, 'test' => false), 'responseClass' => 'array', 'responseType' => 'primitive' @@ -247,8 +247,8 @@ public function testInfersResponseType() $this->assertEquals('primitive', $o->setResponseClass('array')->getResponseType()); $this->assertEquals('primitive', $o->setResponseClass('integer')->getResponseType()); $this->assertEquals('primitive', $o->setResponseClass('string')->getResponseType()); - $this->assertEquals('user', $o->setResponseClass('foo')->getResponseType()); - $this->assertEquals('user', $o->setResponseClass(__CLASS__)->getResponseType()); + $this->assertEquals('database', $o->setResponseClass('foo')->getResponseType()); + $this->assertEquals('database', $o->setResponseClass(__CLASS__)->getResponseType()); $this->assertEquals('model', $o->setResponseClass('Foo')->getResponseType()); } @@ -287,7 +287,7 @@ protected function getOperation() { return new Operation(array( 'name' => 'OperationTest', - 'user' => get_class($this), + 'database' => get_class($this), 'parameters' => array( 'test' => array('type' => 'object'), 'bool_1' => array('default' => true, 'type' => 'boolean'), @@ -301,7 +301,7 @@ protected function getOperation() 'test_function' => array('type' => 'string', 'filters' => __CLASS__ . '::strtoupper') ), 'errorResponses' => array( - array('code' => 503, 'reason' => 'InsufficientCapacity', 'user' => 'Guzzle\\Exception\\RuntimeException') + array('code' => 503, 'reason' => 'InsufficientCapacity', 'database' => 'Guzzle\\Exception\\RuntimeException') ) )); } diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionLoaderTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionLoaderTest.php index 280b774..5271613 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionLoaderTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionLoaderTest.php @@ -137,7 +137,7 @@ public function testCanLoadNestedExtends() $description = ServiceDescription::factory(array( 'operations' => array( 'root' => array( - 'user' => 'foo' + 'database' => 'foo' ), 'foo' => array( 'extends' => 'root', @@ -152,7 +152,7 @@ public function testCanLoadNestedExtends() ) ), 'foo_3' => array( - 'user' => 'bar', + 'database' => 'bar', 'parameters' => array( 'bar2' => array('type' => 'string') ) diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionTest.php index 23771b8..930dc0b 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Service/Description/ServiceDescriptionTest.php @@ -21,7 +21,7 @@ public function setup() 'name' => 'test_command', 'description' => 'documentationForCommand', 'httpMethod' => 'DELETE', - 'user' => 'Guzzle\\Tests\\Service\\Mock\\Command\\MockCommand', + 'database' => 'Guzzle\\Tests\\Service\\Mock\\Command\\MockCommand', 'parameters' => array( 'bucket' => array('required' => true), 'key' => array('required' => true) @@ -150,7 +150,7 @@ public function testHasAttributes() public function testPersistsCustomAttributes() { $data = array( - 'operations' => array('foo' => array('user' => 'foo', 'parameters' => array())), + 'operations' => array('foo' => array('database' => 'foo', 'parameters' => array())), 'name' => 'Name', 'description' => 'Test', 'apiVersion' => '1.24', @@ -224,7 +224,7 @@ public function testModelsHaveNames() $desc = array( 'models' => array( 'date' => array('type' => 'string'), - 'user'=> array( + 'database'=> array( 'type' => 'object', 'properties' => array( 'dob' => array('$ref' => 'date') @@ -235,6 +235,6 @@ public function testModelsHaveNames() $s = ServiceDescription::factory($desc); $this->assertEquals('date', $s->getModel('date')->getName()); - $this->assertEquals('dob', $s->getModel('user')->getProperty('dob')->getName()); + $this->assertEquals('dob', $s->getModel('database')->getProperty('dob')->getName()); } } diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Stream/PhpStreamRequestFactoryTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Stream/PhpStreamRequestFactoryTest.php index 083aaa0..06a0f69 100755 --- a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Stream/PhpStreamRequestFactoryTest.php +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Stream/PhpStreamRequestFactoryTest.php @@ -89,7 +89,7 @@ public function testAddsPostFields() $this->assertEquals(1, count($received)); $this->assertContains('POST / HTTP/1.1', $received[0]); $this->assertContains('host: ', $received[0]); - $this->assertContains('user-agent: Guzzle/', $received[0]); + $this->assertContains('database-agent: Guzzle/', $received[0]); $this->assertContains('foo: Bar', $received[0]); $this->assertContains('content-length: 13', $received[0]); $this->assertContains('foo=baz%20bar', $received[0]); @@ -112,7 +112,7 @@ public function testAddsBody() $this->assertEquals(1, count($received)); $this->assertContains('PUT / HTTP/1.1', $received[0]); $this->assertContains('host: ', $received[0]); - $this->assertContains('user-agent: Guzzle/', $received[0]); + $this->assertContains('database-agent: Guzzle/', $received[0]); $this->assertContains('foo: Bar', $received[0]); $this->assertContains('content-length: 13', $received[0]); $this->assertContains('Testing...123', $received[0]); diff --git a/vendor/monolog/monolog/.php_cs b/vendor/monolog/monolog/.php_cs old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/CHANGELOG.mdown b/vendor/monolog/monolog/CHANGELOG.mdown old mode 100755 new mode 100644 index cf8db7b..2aaeec5 --- a/vendor/monolog/monolog/CHANGELOG.mdown +++ b/vendor/monolog/monolog/CHANGELOG.mdown @@ -1,3 +1,51 @@ +### 1.17.2 (2015-10-14) + + * Fixed ErrorHandler compatibility with non-Monolog PSR-3 loggers + * Fixed SlackHandler handling to use slack functionalities better + * Fixed SwiftMailerHandler bug when sending multiple emails they all had the same id + * Fixed 5.3 compatibility regression + +### 1.17.1 (2015-08-31) + + * Fixed RollbarHandler triggering PHP notices + +### 1.17.0 (2015-08-30) + + * Added support for `checksum` and `release` context/extra values in RavenHandler + * Added better support for exceptions in RollbarHandler + * Added UidProcessor::getUid + * Added support for showing the resource type in NormalizedFormatter + * Fixed IntrospectionProcessor triggering PHP notices + +### 1.16.0 (2015-08-09) + + * Added IFTTTHandler to notify ifttt.com triggers + * Added Logger::setHandlers() to allow setting/replacing all handlers + * Added $capSize in RedisHandler to cap the log size + * Fixed StreamHandler creation of directory to only trigger when the first log write happens + * Fixed bug in the handling of curl failures + * Fixed duplicate logging of fatal errors when both error and fatal error handlers are registered in monolog's ErrorHandler + * Fixed missing fatal errors records with handlers that need to be closed to flush log records + * Fixed TagProcessor::addTags support for associative arrays + +### 1.15.0 (2015-07-12) + + * Added addTags and setTags methods to change a TagProcessor + * Added automatic creation of directories if they are missing for a StreamHandler to open a log file + * Added retry functionality to Loggly, Cube and Mandrill handlers so they retry up to 5 times in case of network failure + * Fixed process exit code being incorrectly reset to 0 if ErrorHandler::registerExceptionHandler was used + * Fixed HTML/JS escaping in BrowserConsoleHandler + * Fixed JSON encoding errors being silently suppressed (PHP 5.5+ only) + +### 1.14.0 (2015-06-19) + + * Added PHPConsoleHandler to send record to Chrome's PHP Console extension and library + * Added support for objects implementing __toString in the NormalizerFormatter + * Added support for HipChat's v2 API in HipChatHandler + * Added Logger::setTimezone() to initialize the timezone monolog should use in case date.timezone isn't correct for your app + * Added an option to send formatted message instead of the raw record on PushoverHandler via ->useFormattedMessage(true) + * Fixed curl errors being silently suppressed + ### 1.13.1 (2015-03-09) * Fixed regression in HipChat requiring a new token to be created diff --git a/vendor/monolog/monolog/LICENSE b/vendor/monolog/monolog/LICENSE old mode 100755 new mode 100644 index 3572704..56e08d5 --- a/vendor/monolog/monolog/LICENSE +++ b/vendor/monolog/monolog/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2011-2014 Jordi Boggiano +Copyright (c) 2011-2015 Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/monolog/monolog/README.mdown b/vendor/monolog/monolog/README.mdown old mode 100755 new mode 100644 index 7ac9904..7d8ade5 --- a/vendor/monolog/monolog/README.mdown +++ b/vendor/monolog/monolog/README.mdown @@ -1,8 +1,7 @@ -Monolog - Logging for PHP 5.3+ [![Build Status](https://secure.travis-ci.org/Seldaek/monolog.png)](http://travis-ci.org/Seldaek/monolog) -============================== +# Monolog - Logging for PHP [![Build Status](https://img.shields.io/travis/Seldaek/monolog.svg)](https://travis-ci.org/Seldaek/monolog) -[![Total Downloads](https://poser.pugx.org/monolog/monolog/downloads.png)](https://packagist.org/packages/monolog/monolog) -[![Latest Stable Version](https://poser.pugx.org/monolog/monolog/v/stable.png)](https://packagist.org/packages/monolog/monolog) +[![Total Downloads](https://img.shields.io/packagist/dt/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog) +[![Latest Stable Version](https://img.shields.io/packagist/v/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog) [![Reference Status](https://www.versioneye.com/php/monolog:monolog/reference_badge.svg)](https://www.versioneye.com/php/monolog:monolog/references) @@ -17,10 +16,15 @@ make sure you can always use another compatible logger at a later time. As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels. Internally Monolog still uses its own level scheme since it predates PSR-3. -Usage ------ +## Installation -Install the latest version with `composer require monolog/monolog` +Install the latest version with + +```bash +$ composer require monolog/monolog +``` + +## Basic Usage ```php addWarning('Foo'); $log->addError('Bar'); ``` -Core Concepts -------------- - -Every `Logger` instance has a channel (name) and a stack of handlers. Whenever -you add a record to the logger, it traverses the handler stack. Each handler -decides whether it fully handled the record, and if so, the propagation of the -record ends there. - -This allows for flexible logging setups, for example having a `StreamHandler` at -the bottom of the stack that will log anything to disk, and on top of that add -a `MailHandler` that will send emails only when an error message is logged. -Handlers also have a `$bubble` property which defines whether they block the -record or not if they handled it. In this example, setting the `MailHandler`'s -`$bubble` argument to false means that records handled by the `MailHandler` will -not propagate to the `StreamHandler` anymore. - -You can create many `Logger`s, each defining a channel (e.g.: db, request, -router, ..) and each of them combining various handlers, which can be shared -or not. The channel is reflected in the logs and allows you to easily see or -filter records. - -Each Handler also has a Formatter, a default one with settings that make sense -will be created if you don't set one. The formatters normalize and format -incoming records so that they can be used by the handlers to output useful -information. - -Custom severity levels are not available. Only the eight -[RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice, -warning, error, critical, alert, emergency) are present for basic filtering -purposes, but for sorting and other use cases that would require -flexibility, you should add Processors to the Logger that can add extra -information (tags, user ip, ..) to the records before they are handled. - -Log Levels ----------- - -Monolog supports the logging levels described by [RFC 5424](http://tools.ietf.org/html/rfc5424). - -- **DEBUG** (100): Detailed debug information. - -- **INFO** (200): Interesting events. Examples: User logs in, SQL logs. - -- **NOTICE** (250): Normal but significant events. - -- **WARNING** (300): Exceptional occurrences that are not errors. Examples: - Use of deprecated APIs, poor use of an API, undesirable things that are not - necessarily wrong. - -- **ERROR** (400): Runtime errors that do not require immediate action but - should typically be logged and monitored. - -- **CRITICAL** (500): Critical conditions. Example: Application component - unavailable, unexpected exception. - -- **ALERT** (550): Action must be taken immediately. Example: Entire website - down, database unavailable, etc. This should trigger the SMS alerts and wake - you up. - -- **EMERGENCY** (600): Emergency: system is unusable. - -Docs -==== - -**See the `doc` directory for more detailed documentation. -The following is only a list of all parts that come with Monolog.** - -Handlers --------- - -### Log to files and syslog - -- _StreamHandler_: Logs records into any PHP stream, use this for log files. -- _RotatingFileHandler_: Logs records to a file and creates one logfile per day. - It will also delete files older than `$maxFiles`. You should use - [logrotate](http://linuxcommand.org/man_pages/logrotate8.html) for high profile - setups though, this is just meant as a quick and dirty solution. -- _SyslogHandler_: Logs records to the syslog. -- _ErrorLogHandler_: Logs records to PHP's - [`error_log()`](http://docs.php.net/manual/en/function.error-log.php) function. - -### Send alerts and emails - -- _NativeMailerHandler_: Sends emails using PHP's - [`mail()`](http://php.net/manual/en/function.mail.php) function. -- _SwiftMailerHandler_: Sends emails using a [`Swift_Mailer`](http://swiftmailer.org/) instance. -- _PushoverHandler_: Sends mobile notifications via the [Pushover](https://www.pushover.net/) API. -- _HipChatHandler_: Logs records to a [HipChat](http://hipchat.com) chat room using its API. -- _FlowdockHandler_: Logs records to a [Flowdock](https://www.flowdock.com/) account. -- _SlackHandler_: Logs records to a [Slack](https://www.slack.com/) account. -- _MandrillHandler_: Sends emails via the Mandrill API using a [`Swift_Message`](http://swiftmailer.org/) instance. -- _FleepHookHandler_: Logs records to a [Fleep](https://fleep.io/) conversation using Webhooks. - -### Log specific servers and networked logging - -- _SocketHandler_: Logs records to [sockets](http://php.net/fsockopen), use this - for UNIX and TCP sockets. See an [example](https://github.com/Seldaek/monolog/blob/master/doc/sockets.md). -- _AmqpHandler_: Logs records to an [amqp](http://www.amqp.org/) compatible - server. Requires the [php-amqp](http://pecl.php.net/package/amqp) extension (1.0+). -- _GelfHandler_: Logs records to a [Graylog2](http://www.graylog2.org) server. -- _CubeHandler_: Logs records to a [Cube](http://square.github.com/cube/) server. -- _RavenHandler_: Logs records to a [Sentry](http://getsentry.com/) server using - [raven](https://packagist.org/packages/raven/raven). -- _ZendMonitorHandler_: Logs records to the Zend Monitor present in Zend Server. -- _NewRelicHandler_: Logs records to a [NewRelic](http://newrelic.com/) application. -- _LogglyHandler_: Logs records to a [Loggly](http://www.loggly.com/) account. -- _RollbarHandler_: Logs records to a [Rollbar](https://rollbar.com/) account. -- _SyslogUdpHandler_: Logs records to a remote [Syslogd](http://www.rsyslog.com/) server. -- _LogEntriesHandler_: Logs records to a [LogEntries](http://logentries.com/) account. - -### Logging in development - -- _FirePHPHandler_: Handler for [FirePHP](http://www.firephp.org/), providing - inline `console` messages within [FireBug](http://getfirebug.com/). -- _ChromePHPHandler_: Handler for [ChromePHP](http://www.chromephp.com/), providing - inline `console` messages within Chrome. -- _BrowserConsoleHandler_: Handler to send logs to browser's Javascript `console` with - no browser extension required. Most browsers supporting `console` API are supported. - -### Log to databases - -- _RedisHandler_: Logs records to a [redis](http://redis.io) server. -- _MongoDBHandler_: Handler to write records in MongoDB via a - [Mongo](http://pecl.php.net/package/mongo) extension connection. -- _CouchDBHandler_: Logs records to a CouchDB server. -- _DoctrineCouchDBHandler_: Logs records to a CouchDB server via the Doctrine CouchDB ODM. -- _ElasticSearchHandler_: Logs records to an Elastic Search server. -- _DynamoDbHandler_: Logs records to a DynamoDB table with the [AWS SDK](https://github.com/aws/aws-sdk-php). - -### Wrappers / Special Handlers - -- _FingersCrossedHandler_: A very interesting wrapper. It takes a logger as - parameter and will accumulate log records of all levels until a record - exceeds the defined severity level. At which point it delivers all records, - including those of lower severity, to the handler it wraps. This means that - until an error actually happens you will not see anything in your logs, but - when it happens you will have the full information, including debug and info - records. This provides you with all the information you need, but only when - you need it. -- _WhatFailureGroupHandler_: This handler extends the _GroupHandler_ ignoring - exceptions raised by each child handler. This allows you to ignore issues - where a remote tcp connection may have died but you do not want your entire - application to crash and may wish to continue to log to other handlers. -- _BufferHandler_: This handler will buffer all the log records it receives - until `close()` is called at which point it will call `handleBatch()` on the - handler it wraps with all the log messages at once. This is very useful to - send an email with all records at once for example instead of having one mail - for every log record. -- _GroupHandler_: This handler groups other handlers. Every record received is - sent to all the handlers it is configured with. -- _FilterHandler_: This handler only lets records of the given levels through - to the wrapped handler. -- _SamplingHandler_: Wraps around another handler and lets you sample records - if you only want to store some of them. -- _NullHandler_: Any record it can handle will be thrown away. This can be used - to put on top of an existing handler stack to disable it temporarily. -- _PsrHandler_: Can be used to forward log records to an existing PSR-3 logger -- _TestHandler_: Used for testing, it records everything that is sent to it and - has accessors to read out the information. - -Formatters ----------- - -- _LineFormatter_: Formats a log record into a one-line string. -- _HtmlFormatter_: Used to format log records into a human readable html table, mainly suitable for emails. -- _NormalizerFormatter_: Normalizes objects/resources down to strings so a record can easily be serialized/encoded. -- _ScalarFormatter_: Used to format log records into an associative array of scalar values. -- _JsonFormatter_: Encodes a log record into json. -- _WildfireFormatter_: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler. -- _ChromePHPFormatter_: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler. -- _GelfMessageFormatter_: Used to format log records into Gelf message instances, only useful for the GelfHandler. -- _LogstashFormatter_: Used to format log records into [logstash](http://logstash.net/) event json, useful for any handler listed under inputs [here](http://logstash.net/docs/latest). -- _ElasticaFormatter_: Used to format log records into an Elastica\Document object, only useful for the ElasticSearchHandler. -- _LogglyFormatter_: Used to format log records into Loggly messages, only useful for the LogglyHandler. -- _FlowdockFormatter_: Used to format log records into Flowdock messages, only useful for the FlowdockHandler. -- _MongoDBFormatter_: Converts \DateTime instances to \MongoDate and objects recursively to arrays, only useful with the MongoDBHandler. - -Processors ----------- - -- _IntrospectionProcessor_: Adds the line/file/class/method from which the log call originated. -- _WebProcessor_: Adds the current request URI, request method and client IP to a log record. -- _MemoryUsageProcessor_: Adds the current memory usage to a log record. -- _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record. -- _ProcessIdProcessor_: Adds the process id to a log record. -- _UidProcessor_: Adds a unique identifier to a log record. -- _GitProcessor_: Adds the current git branch and commit to a log record. -- _TagProcessor_: Adds an array of predefined tags to a log record. - -Utilities ---------- +## Documentation -- _Registry_: The `Monolog\Registry` class lets you configure global loggers that you - can then statically access from anywhere. It is not really a best practice but can - help in some older codebases or for ease of use. -- _ErrorHandler_: The `Monolog\ErrorHandler` class allows you to easily register - a Logger instance as an exception handler, error handler or fatal error handler. -- _ErrorLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain log - level is reached. -- _ChannelLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain - log level is reached, depending on which channel received the log record. +- [Usage Instructions](doc/01-usage.md) +- [Handlers, Formatters and Processors](doc/02-handlers-formatters-processors.md) +- [Utility classes](doc/03-utilities.md) +- [Extending Monolog](doc/04-extending.md) -Third Party Packages --------------------- +## Third Party Packages Third party handlers, formatters and processors are [listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You can also add your own there if you publish one. -About -===== +## About -Requirements ------------- +### Requirements - Monolog works with PHP 5.3 or above, and is also tested to work with HHVM. -Submitting bugs and feature requests ------------------------------------- +### Submitting bugs and feature requests Bugs and feature request are tracked on [GitHub](https://github.com/Seldaek/monolog/issues) -Frameworks Integration ----------------------- +### Framework Integrations - Frameworks and libraries using [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) can be used very easily with Monolog since it implements the interface. - [Symfony2](http://symfony.com) comes out of the box with Monolog. - [Silex](http://silex.sensiolabs.org/) comes out of the box with Monolog. - [Laravel 4 & 5](http://laravel.com/) come out of the box with Monolog. +- [Lumen](http://lumen.laravel.com/) comes out of the box with Monolog. - [PPI](http://www.ppi.io/) comes out of the box with Monolog. - [CakePHP](http://cakephp.org/) is usable with Monolog via the [cakephp-monolog](https://github.com/jadb/cakephp-monolog) plugin. - [Slim](http://www.slimframework.com/) is usable with Monolog via the [Slim-Monolog](https://github.com/Flynsarmy/Slim-Monolog) log writer. - [XOOPS 2.6](http://xoops.org/) comes out of the box with Monolog. - [Aura.Web_Project](https://github.com/auraphp/Aura.Web_Project) comes out of the box with Monolog. - [Nette Framework](http://nette.org/en/) can be used with Monolog via [Kdyby/Monolog](https://github.com/Kdyby/Monolog) extension. -- [Proton Micro Framework](https://github.com/alexbilbie/Proton) comes out of the box with Monolog. +- [Proton Micro Framework](https://github.com/alexbilbie/Proton) comes out of the box with Monolog. -Author ------- +### Author Jordi Boggiano - -
See also the list of [contributors](https://github.com/Seldaek/monolog/contributors) which participated in this project. -License -------- +### License Monolog is licensed under the MIT License - see the `LICENSE` file for details -Acknowledgements ----------------- +### Acknowledgements This library is heavily inspired by Python's [Logbook](http://packages.python.org/Logbook/) library, although most concepts have been adjusted to fit to the PHP world. diff --git a/vendor/monolog/monolog/composer.json b/vendor/monolog/monolog/composer.json old mode 100755 new mode 100644 index 9fec07a..2bb9053 --- a/vendor/monolog/monolog/composer.json +++ b/vendor/monolog/monolog/composer.json @@ -17,15 +17,19 @@ "psr/log": "~1.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", + "phpunit/phpunit": "~4.5", "graylog2/gelf-php": "~1.0", - "raven/raven": "~0.5", - "ruflin/elastica": "0.90.*", + "raven/raven": "^0.13", + "ruflin/elastica": ">=0.90 <3.0", "doctrine/couchdb": "~1.0@dev", - "aws/aws-sdk-php": "~2.4, >2.4.8", + "aws/aws-sdk-php": "^2.4.9", "videlalvaro/php-amqplib": "~2.4", - "swiftmailer/swiftmailer": "~5.3" + "swiftmailer/swiftmailer": "~5.3", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit-mock-objects": "2.3.0", + "jakub-onderka/php-parallel-lint": "0.9" }, + "_": "phpunit/phpunit-mock-objects required in 2.3.0 due to https://github.com/sebastianbergmann/phpunit-mock-objects/issues/223 - needs hhvm 3.8+ on travis", "suggest": { "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "raven/raven": "Allow sending log messages to a Sentry server", @@ -35,20 +39,27 @@ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", "ext-mongo": "Allow sending log messages to a MongoDB server", "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "rollbar/rollbar": "Allow sending log messages to Rollbar" + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "php-console/php-console": "Allow sending log messages to Google Chrome" }, "autoload": { "psr-4": {"Monolog\\": "src/Monolog"} }, + "autoload-dev": { + "psr-4": {"Monolog\\": "tests/Monolog"} + }, "provide": { "psr/log-implementation": "1.0.0" }, "extra": { "branch-alias": { - "dev-master": "1.13.x-dev" + "dev-master": "1.16.x-dev" } }, "scripts": { - "test": "phpunit" + "test": [ + "parallel-lint . --exclude vendor", + "phpunit" + ] } } diff --git a/vendor/monolog/monolog/doc/usage.md b/vendor/monolog/monolog/doc/01-usage.md old mode 100755 new mode 100644 similarity index 56% rename from vendor/monolog/monolog/doc/usage.md rename to vendor/monolog/monolog/doc/01-usage.md index 7585fa2..75bc402 --- a/vendor/monolog/monolog/doc/usage.md +++ b/vendor/monolog/monolog/doc/01-usage.md @@ -1,22 +1,85 @@ -Using Monolog -============= +# Using Monolog -Installation ------------- +- [Installation](#installation) +- [Core Concepts](#core-concepts) +- [Log Levels](#log-levels) +- [Configuring a logger](#configuring-a-logger) +- [Adding extra data in the records](#adding-extra-data-in-the-records) +- [Leveraging channels](#leveraging-channels) +- [Customizing the log format](#customizing-the-log-format) + +## Installation Monolog is available on Packagist ([monolog/monolog](http://packagist.org/packages/monolog/monolog)) and as such installable via [Composer](http://getcomposer.org/). ```bash -php composer.phar require monolog/monolog +composer require monolog/monolog ``` If you do not use Composer, you can grab the code from GitHub, and use any PSR-0 compatible autoloader (e.g. the [Symfony2 ClassLoader component](https://github.com/symfony/ClassLoader)) to load Monolog classes. -Configuring a logger --------------------- +## Core Concepts + +Every `Logger` instance has a channel (name) and a stack of handlers. Whenever +you add a record to the logger, it traverses the handler stack. Each handler +decides whether it fully handled the record, and if so, the propagation of the +record ends there. + +This allows for flexible logging setups, for example having a `StreamHandler` at +the bottom of the stack that will log anything to disk, and on top of that add +a `MailHandler` that will send emails only when an error message is logged. +Handlers also have a `$bubble` property which defines whether they block the +record or not if they handled it. In this example, setting the `MailHandler`'s +`$bubble` argument to false means that records handled by the `MailHandler` will +not propagate to the `StreamHandler` anymore. + +You can create many `Logger`s, each defining a channel (e.g.: db, request, +router, ..) and each of them combining various handlers, which can be shared +or not. The channel is reflected in the logs and allows you to easily see or +filter records. + +Each Handler also has a Formatter, a default one with settings that make sense +will be created if you don't set one. The formatters normalize and format +incoming records so that they can be used by the handlers to output useful +information. + +Custom severity levels are not available. Only the eight +[RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice, +warning, error, critical, alert, emergency) are present for basic filtering +purposes, but for sorting and other use cases that would require +flexibility, you should add Processors to the Logger that can add extra +information (tags, user ip, ..) to the records before they are handled. + +## Log Levels + +Monolog supports the logging levels described by [RFC 5424](http://tools.ietf.org/html/rfc5424). + +- **DEBUG** (100): Detailed debug information. + +- **INFO** (200): Interesting events. Examples: User logs in, SQL logs. + +- **NOTICE** (250): Normal but significant events. + +- **WARNING** (300): Exceptional occurrences that are not errors. Examples: + Use of deprecated APIs, poor use of an API, undesirable things that are not + necessarily wrong. + +- **ERROR** (400): Runtime errors that do not require immediate action but + should typically be logged and monitored. + +- **CRITICAL** (500): Critical conditions. Example: Application component + unavailable, unexpected exception. + +- **ALERT** (550): Action must be taken immediately. Example: Entire website + down, database unavailable, etc. This should trigger the SMS alerts and wake + you up. + +- **EMERGENCY** (600): Emergency: system is unusable. + +## Configuring a logger Here is a basic setup to log to a file and to firephp on the DEBUG level: @@ -49,8 +112,11 @@ Note that the FirePHPHandler is called first as it is added on top of the stack. This allows you to temporarily add a logger with bubbling disabled if you want to override other configured loggers. -Adding extra data in the records --------------------------------- +> If you use Monolog standalone and are looking for an easy way to +> configure many handlers, the [theorchard/monolog-cascade](https://github.com/theorchard/monolog-cascade) +> can help you build complex logging configs via PHP arrays, yaml or json configs. + +## Adding extra data in the records Monolog provides two different ways to add extra informations along the simple textual message. @@ -88,13 +154,12 @@ $logger->pushProcessor(function ($record) { ``` Monolog provides some built-in processors that can be used in your project. -Look at the [README file](https://github.com/Seldaek/monolog/blob/master/README.mdown) for the list. +Look at the [dedicated chapter](https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#processors) for the list. > Tip: processors can also be registered on a specific handler instead of the logger to apply only for this handler. -Leveraging channels -------------------- +## Leveraging channels Channels are a great way to identify to which part of the application a record is related. This is useful in big applications (and is leveraged by @@ -126,8 +191,7 @@ $securityLogger->pushHandler($stream); $securityLogger->pushHandler($firephp); ``` -Customizing log format ----------------------- +## Customizing the log format In Monolog it's easy to customize the format of the logs written into files, sockets, mails, databases and other handlers. Most of the handlers use the @@ -160,3 +224,5 @@ $securityLogger->pushHandler($stream); You may also reuse the same formatter between multiple handlers and share those handlers between multiple loggers. + +[Handlers, Formatters and Processors](02-handlers-formatters-processors.md) → diff --git a/vendor/monolog/monolog/doc/02-handlers-formatters-processors.md b/vendor/monolog/monolog/doc/02-handlers-formatters-processors.md new file mode 100644 index 0000000..90f8fce --- /dev/null +++ b/vendor/monolog/monolog/doc/02-handlers-formatters-processors.md @@ -0,0 +1,142 @@ +# Handlers, Formatters and Processors + +- [Handlers](#handlers) + - [Log to files and syslog](#log-to-files-and-syslog) + - [Send alerts and emails](#send-alerts-and-emails) + - [Log specific servers and networked logging](#log-specific-servers-and-networked-logging) + - [Logging in development](#logging-in-development) + - [Log to databases](#log-to-databases) + - [Wrappers / Special Handlers](#wrappers--special-handlers) +- [Formatters](#formatters) +- [Processors](#processors) +- [Third Party Packages](#third-party-packages) + +## Handlers + +### Log to files and syslog + +- _StreamHandler_: Logs records into any PHP stream, use this for log files. +- _RotatingFileHandler_: Logs records to a file and creates one logfile per day. + It will also delete files older than `$maxFiles`. You should use + [logrotate](http://linuxcommand.org/man_pages/logrotate8.html) for high profile + setups though, this is just meant as a quick and dirty solution. +- _SyslogHandler_: Logs records to the syslog. +- _ErrorLogHandler_: Logs records to PHP's + [`error_log()`](http://docs.php.net/manual/en/function.error-log.php) function. + +### Send alerts and emails + +- _NativeMailerHandler_: Sends emails using PHP's + [`mail()`](http://php.net/manual/en/function.mail.php) function. +- _SwiftMailerHandler_: Sends emails using a [`Swift_Mailer`](http://swiftmailer.org/) instance. +- _PushoverHandler_: Sends mobile notifications via the [Pushover](https://www.pushover.net/) API. +- _HipChatHandler_: Logs records to a [HipChat](http://hipchat.com) chat room using its API. +- _FlowdockHandler_: Logs records to a [Flowdock](https://www.flowdock.com/) account. +- _SlackHandler_: Logs records to a [Slack](https://www.slack.com/) account. +- _MandrillHandler_: Sends emails via the Mandrill API using a [`Swift_Message`](http://swiftmailer.org/) instance. +- _FleepHookHandler_: Logs records to a [Fleep](https://fleep.io/) conversation using Webhooks. +- _IFTTTHandler_: Notifies an [IFTTT](https://ifttt.com/maker) trigger with the log channel, level name and message. + +### Log specific servers and networked logging + +- _SocketHandler_: Logs records to [sockets](http://php.net/fsockopen), use this + for UNIX and TCP sockets. See an [example](sockets.md). +- _AmqpHandler_: Logs records to an [amqp](http://www.amqp.org/) compatible + server. Requires the [php-amqp](http://pecl.php.net/package/amqp) extension (1.0+). +- _GelfHandler_: Logs records to a [Graylog2](http://www.graylog2.org) server. +- _CubeHandler_: Logs records to a [Cube](http://square.github.com/cube/) server. +- _RavenHandler_: Logs records to a [Sentry](http://getsentry.com/) server using + [raven](https://packagist.org/packages/raven/raven). +- _ZendMonitorHandler_: Logs records to the Zend Monitor present in Zend Server. +- _NewRelicHandler_: Logs records to a [NewRelic](http://newrelic.com/) application. +- _LogglyHandler_: Logs records to a [Loggly](http://www.loggly.com/) account. +- _RollbarHandler_: Logs records to a [Rollbar](https://rollbar.com/) account. +- _SyslogUdpHandler_: Logs records to a remote [Syslogd](http://www.rsyslog.com/) server. +- _LogEntriesHandler_: Logs records to a [LogEntries](http://logentries.com/) account. + +### Logging in development + +- _FirePHPHandler_: Handler for [FirePHP](http://www.firephp.org/), providing + inline `console` messages within [FireBug](http://getfirebug.com/). +- _ChromePHPHandler_: Handler for [ChromePHP](http://www.chromephp.com/), providing + inline `console` messages within Chrome. +- _BrowserConsoleHandler_: Handler to send logs to browser's Javascript `console` with + no browser extension required. Most browsers supporting `console` API are supported. +- _PHPConsoleHandler_: Handler for [PHP Console](https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef), providing + inline `console` and notification popup messages within Chrome. + +### Log to databases + +- _RedisHandler_: Logs records to a [redis](http://redis.io) server. +- _MongoDBHandler_: Handler to write records in MongoDB via a + [Mongo](http://pecl.php.net/package/mongo) extension connection. +- _CouchDBHandler_: Logs records to a CouchDB server. +- _DoctrineCouchDBHandler_: Logs records to a CouchDB server via the Doctrine CouchDB ODM. +- _ElasticSearchHandler_: Logs records to an Elastic Search server. +- _DynamoDbHandler_: Logs records to a DynamoDB table with the [AWS SDK](https://github.com/aws/aws-sdk-php). + +### Wrappers / Special Handlers + +- _FingersCrossedHandler_: A very interesting wrapper. It takes a logger as + parameter and will accumulate log records of all levels until a record + exceeds the defined severity level. At which point it delivers all records, + including those of lower severity, to the handler it wraps. This means that + until an error actually happens you will not see anything in your logs, but + when it happens you will have the full information, including debug and info + records. This provides you with all the information you need, but only when + you need it. +- _WhatFailureGroupHandler_: This handler extends the _GroupHandler_ ignoring + exceptions raised by each child handler. This allows you to ignore issues + where a remote tcp connection may have died but you do not want your entire + application to crash and may wish to continue to log to other handlers. +- _BufferHandler_: This handler will buffer all the log records it receives + until `close()` is called at which point it will call `handleBatch()` on the + handler it wraps with all the log messages at once. This is very useful to + send an email with all records at once for example instead of having one mail + for every log record. +- _GroupHandler_: This handler groups other handlers. Every record received is + sent to all the handlers it is configured with. +- _FilterHandler_: This handler only lets records of the given levels through + to the wrapped handler. +- _SamplingHandler_: Wraps around another handler and lets you sample records + if you only want to store some of them. +- _NullHandler_: Any record it can handle will be thrown away. This can be used + to put on top of an existing handler stack to disable it temporarily. +- _PsrHandler_: Can be used to forward log records to an existing PSR-3 logger +- _TestHandler_: Used for testing, it records everything that is sent to it and + has accessors to read out the information. + +## Formatters + +- _LineFormatter_: Formats a log record into a one-line string. +- _HtmlFormatter_: Used to format log records into a human readable html table, mainly suitable for emails. +- _NormalizerFormatter_: Normalizes objects/resources down to strings so a record can easily be serialized/encoded. +- _ScalarFormatter_: Used to format log records into an associative array of scalar values. +- _JsonFormatter_: Encodes a log record into json. +- _WildfireFormatter_: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler. +- _ChromePHPFormatter_: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler. +- _GelfMessageFormatter_: Used to format log records into Gelf message instances, only useful for the GelfHandler. +- _LogstashFormatter_: Used to format log records into [logstash](http://logstash.net/) event json, useful for any handler listed under inputs [here](http://logstash.net/docs/latest). +- _ElasticaFormatter_: Used to format log records into an Elastica\Document object, only useful for the ElasticSearchHandler. +- _LogglyFormatter_: Used to format log records into Loggly messages, only useful for the LogglyHandler. +- _FlowdockFormatter_: Used to format log records into Flowdock messages, only useful for the FlowdockHandler. +- _MongoDBFormatter_: Converts \DateTime instances to \MongoDate and objects recursively to arrays, only useful with the MongoDBHandler. + +## Processors + +- _IntrospectionProcessor_: Adds the line/file/class/method from which the log call originated. +- _WebProcessor_: Adds the current request URI, request method and client IP to a log record. +- _MemoryUsageProcessor_: Adds the current memory usage to a log record. +- _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record. +- _ProcessIdProcessor_: Adds the process id to a log record. +- _UidProcessor_: Adds a unique identifier to a log record. +- _GitProcessor_: Adds the current git branch and commit to a log record. +- _TagProcessor_: Adds an array of predefined tags to a log record. + +## Third Party Packages + +Third party handlers, formatters and processors are +[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You +can also add your own there if you publish one. + +← [Usage](01-usage.md) | [Utility classes](03-utilities.md) → diff --git a/vendor/monolog/monolog/doc/03-utilities.md b/vendor/monolog/monolog/doc/03-utilities.md new file mode 100644 index 0000000..c62aa41 --- /dev/null +++ b/vendor/monolog/monolog/doc/03-utilities.md @@ -0,0 +1,13 @@ +# Utilities + +- _Registry_: The `Monolog\Registry` class lets you configure global loggers that you + can then statically access from anywhere. It is not really a best practice but can + help in some older codebases or for ease of use. +- _ErrorHandler_: The `Monolog\ErrorHandler` class allows you to easily register + a Logger instance as an exception handler, error handler or fatal error handler. +- _ErrorLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain log + level is reached. +- _ChannelLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain + log level is reached, depending on which channel received the log record. + +← [Handlers, Formatters and Processors](02-handlers-formatters-processors.md) | [Extending Monolog](04-extending.md) → diff --git a/vendor/monolog/monolog/doc/extending.md b/vendor/monolog/monolog/doc/04-extending.md old mode 100755 new mode 100644 similarity index 95% rename from vendor/monolog/monolog/doc/extending.md rename to vendor/monolog/monolog/doc/04-extending.md index bb39ddc..ebd9104 --- a/vendor/monolog/monolog/doc/extending.md +++ b/vendor/monolog/monolog/doc/04-extending.md @@ -1,10 +1,8 @@ -Extending Monolog -================= +# Extending Monolog Monolog is fully extensible, allowing you to adapt your logger to your needs. -Writing your own handler ------------------------- +## Writing your own handler Monolog provides many built-in handlers. But if the one you need does not exist, you can write it and use it in your logger. The only requirement is @@ -74,3 +72,5 @@ $logger->addInfo('My logger is now ready'); The `Monolog\Handler\AbstractProcessingHandler` class provides most of the logic needed for the handler, including the use of processors and the formatting of the record (which is why we use ``$record['formatted']`` instead of ``$record['message']``). + +← [Utility classes](03-utilities.md) diff --git a/vendor/monolog/monolog/doc/sockets.md b/vendor/monolog/monolog/doc/sockets.md old mode 100755 new mode 100644 index fad30a9..ea9cf0e --- a/vendor/monolog/monolog/doc/sockets.md +++ b/vendor/monolog/monolog/doc/sockets.md @@ -7,6 +7,8 @@ or [pfsockopen](http://php.net/pfsockopen). Persistent sockets are mainly useful in web environments where you gain some performance not closing/opening the connections between requests. +You can use a `unix://` prefix to access unix sockets and `udp://` to open UDP sockets instead of the default TCP. + Basic Example ------------- diff --git a/vendor/monolog/monolog/phpunit.xml.dist b/vendor/monolog/monolog/phpunit.xml.dist old mode 100755 new mode 100644 index 1754570..20d82b6 --- a/vendor/monolog/monolog/phpunit.xml.dist +++ b/vendor/monolog/monolog/phpunit.xml.dist @@ -1,6 +1,6 @@ - + tests/Monolog/ @@ -12,4 +12,8 @@ src/Monolog/ + + + + diff --git a/vendor/monolog/monolog/src/Monolog/ErrorHandler.php b/vendor/monolog/monolog/src/Monolog/ErrorHandler.php old mode 100755 new mode 100644 index c892335..f21eb28 --- a/vendor/monolog/monolog/src/Monolog/ErrorHandler.php +++ b/vendor/monolog/monolog/src/Monolog/ErrorHandler.php @@ -13,6 +13,7 @@ use Psr\Log\LoggerInterface; use Psr\Log\LogLevel; +use Monolog\Handler\AbstractHandler; /** * Monolog error handler @@ -33,6 +34,7 @@ class ErrorHandler private $previousErrorHandler; private $errorLevelMap; + private $hasFatalErrorHandler; private $fatalLevel; private $reservedMemory; private static $fatalErrors = array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR); @@ -93,6 +95,7 @@ public function registerFatalHandler($level = null, $reservedMemorySize = 20) $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize); $this->fatalLevel = $level; + $this->hasFatalErrorHandler = true; } protected function defaultErrorLevelMap() @@ -119,7 +122,7 @@ protected function defaultErrorLevelMap() /** * @private */ - public function handleException(\Exception $e) + public function handleException($e) { $this->logger->log( $this->uncaughtExceptionLevel === null ? LogLevel::ERROR : $this->uncaughtExceptionLevel, @@ -130,6 +133,8 @@ public function handleException(\Exception $e) if ($this->previousExceptionHandler) { call_user_func($this->previousExceptionHandler, $e); } + + exit(255); } /** @@ -141,8 +146,11 @@ public function handleError($code, $message, $file = '', $line = 0, $context = a return; } - $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : LogLevel::CRITICAL; - $this->logger->log($level, self::codeToString($code).': '.$message, array('code' => $code, 'message' => $message, 'file' => $file, 'line' => $line)); + // fatal error codes are ignored if a fatal error handler is present as well to avoid duplicate log entries + if (!$this->hasFatalErrorHandler || !in_array($code, self::$fatalErrors, true)) { + $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : LogLevel::CRITICAL; + $this->logger->log($level, self::codeToString($code).': '.$message, array('code' => $code, 'message' => $message, 'file' => $file, 'line' => $line)); + } if ($this->previousErrorHandler === true) { return false; @@ -159,12 +167,20 @@ public function handleFatalError() $this->reservedMemory = null; $lastError = error_get_last(); - if ($lastError && in_array($lastError['type'], self::$fatalErrors)) { + if ($lastError && in_array($lastError['type'], self::$fatalErrors, true)) { $this->logger->log( $this->fatalLevel === null ? LogLevel::ALERT : $this->fatalLevel, 'Fatal Error ('.self::codeToString($lastError['type']).'): '.$lastError['message'], array('code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line']) ); + + if ($this->logger instanceof Logger) { + foreach ($this->logger->getHandlers() as $handler) { + if ($handler instanceof AbstractHandler) { + $handler->close(); + } + } + } } } diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php old mode 100755 new mode 100644 index af63d01..5094af3 --- a/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php @@ -93,10 +93,22 @@ public function formatBatch(array $records) */ public function getShortMessage($message) { + static $hasMbString; + + if (null === $hasMbString) { + $hasMbString = function_exists('mb_strlen'); + } + $maxLength = 45; - if (strlen($message) > $maxLength) { - $message = substr($message, 0, $maxLength - 4) . ' ...'; + if ($hasMbString) { + if (mb_strlen($message, 'UTF-8') > $maxLength) { + $message = mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...'; + } + } else { + if (strlen($message) > $maxLength) { + $message = substr($message, 0, $maxLength - 4) . ' ...'; + } } return $message; diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php b/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php old mode 100755 new mode 100644 index 07ab245..255d288 --- a/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php @@ -72,7 +72,7 @@ private function addTitle($title, $level) { $title = htmlspecialchars($title, ENT_NOQUOTES, 'UTF-8'); - return '

'.$title.'

'; + return '

'.$title.'

'; } /** * Formats a log record. @@ -83,7 +83,7 @@ private function addTitle($title, $level) public function format(array $record) { $output = $this->addTitle($record['level_name'], $record['level']); - $output .= ''; + $output .= '
'; $output .= $this->addRow('Message', (string) $record['message']); $output .= $this->addRow('Time', $record['datetime']->format($this->dateFormat)); diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php old mode 100755 new mode 100644 index 6983d1a..388e226 --- a/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php @@ -154,6 +154,6 @@ protected function replaceNewlines($str) return $str; } - return strtr($str, array("\r\n" => ' ', "\r" => ' ', "\n" => ' ')); + return str_replace(array("\r\n", "\r", "\n"), ' ', $str); } } diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php old mode 100755 new mode 100644 index 7a7b3b3..be21b2c --- a/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php @@ -50,10 +50,11 @@ class LogstashFormatter extends NormalizerFormatter protected $version; /** - * @param string $applicationName the application that sends the data, used as the "type" field of logstash - * @param string $systemName the system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine - * @param string $extraPrefix prefix for extra keys inside logstash "fields" - * @param string $contextPrefix prefix for context keys inside logstash "fields", defaults to ctxt_ + * @param string $applicationName the application that sends the data, used as the "type" field of logstash + * @param string $systemName the system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine + * @param string $extraPrefix prefix for extra keys inside logstash "fields" + * @param string $contextPrefix prefix for context keys inside logstash "fields", defaults to ctxt_ + * @param integer $version the logstash format version to use, defaults to 0 */ public function __construct($applicationName, $systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $version = self::V0) { diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php old mode 100755 new mode 100644 index 18fe9e1..eb067bb --- a/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php @@ -75,7 +75,7 @@ protected function formatArray(array $record, $nestingLevel = 0) protected function formatObject($value, $nestingLevel) { $objectVars = get_object_vars($value); - $objectVars['user'] = get_class($value); + $objectVars['class'] = get_class($value); return $this->formatArray($objectVars, $nestingLevel); } @@ -83,7 +83,7 @@ protected function formatObject($value, $nestingLevel) protected function formatException(\Exception $exception, $nestingLevel) { $formattedException = array( - 'user' => get_class($exception), + 'class' => get_class($exception), 'message' => $exception->getMessage(), 'code' => $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine(), diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php old mode 100755 new mode 100644 index 2924061..0361935 --- a/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +++ b/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php @@ -94,11 +94,19 @@ protected function normalize($data) return $this->normalizeException($data); } - return sprintf("[object] (%s: %s)", get_class($data), $this->toJson($data, true)); + // non-serializable objects that implement __toString stringified + if (method_exists($data, '__toString') && !$data instanceof \JsonSerializable) { + $value = (string) $data; + } else { + // the rest is json-serialized in some way + $value = $this->toJson($data, true); + } + + return sprintf("[object] (%s: %s)", get_class($data), $value); } if (is_resource($data)) { - return '[resource]'; + return sprintf('[resource] (%s)', get_resource_type($data)); } return '[unknown('.gettype($data).')]'; @@ -107,7 +115,7 @@ protected function normalize($data) protected function normalizeException(Exception $e) { $data = array( - 'user' => get_class($e), + 'class' => get_class($e), 'message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile().':'.$e->getLine(), @@ -142,9 +150,44 @@ protected function toJson($data, $ignoreErrors = false) } if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + $json = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + } else { + $json = json_encode($data); + } + + if ($json === false) { + $this->throwEncodeError(json_last_error(), $data); + } + + return $json; + } + + /** + * Throws an exception according to a given code with a customized message + * + * @param int $code return code of json_last_error function + * @param mixed $data data that was meant to be encoded + * @throws \RuntimeException + */ + private function throwEncodeError($code, $data) + { + switch ($code) { + case JSON_ERROR_DEPTH: + $msg = 'Maximum stack depth exceeded'; + break; + case JSON_ERROR_STATE_MISMATCH: + $msg = 'Underflow or the modes mismatch'; + break; + case JSON_ERROR_CTRL_CHAR: + $msg = 'Unexpected control character found'; + break; + case JSON_ERROR_UTF8: + $msg = 'Malformed UTF-8 characters, possibly incorrectly encoded'; + break; + default: + $msg = 'Unknown error'; } - return json_encode($data); + throw new \RuntimeException('JSON encoding failed: '.$msg.'. Encoding: '.var_export($data, true)); } } diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php old mode 100755 new mode 100644 index 10012a7..69ede49 --- a/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php @@ -16,7 +16,7 @@ use Monolog\Formatter\LineFormatter; /** - * Base Handler user providing the Handler structure + * Base Handler class providing the Handler structure * * @author Jordi Boggiano */ diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php old mode 100755 new mode 100644 index d4104d6..6f18f72 --- a/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php @@ -12,7 +12,7 @@ namespace Monolog\Handler; /** - * Base Handler user providing the Handler structure + * Base Handler class providing the Handler structure * * Classes extending it should (in most cases) only implement write($record) * diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php old mode 100755 new mode 100644 index bee6903..a409952 --- a/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php @@ -55,15 +55,19 @@ protected function write(array $record) /** * Convert records to javascript console commands and send it to the browser. - * This method is automatically called on PHP shutdown if output is HTML. + * This method is automatically called on PHP shutdown if output is HTML or Javascript. */ public static function send() { + $htmlTags = true; // Check content type foreach (headers_list() as $header) { if (stripos($header, 'content-type:') === 0) { - if (stripos($header, 'text/html') === false) { - // This handler only works with HTML outputs + // This handler only works with HTML and javascript outputs + // text/javascript is obsolete in favour of application/javascript, but still used + if (stripos($header, 'application/javascript') !== false || stripos($header, 'text/javascript') !== false) { + $htmlTags = false; + } elseif (stripos($header, 'text/html') === false) { return; } break; @@ -71,7 +75,11 @@ public static function send() } if (count(self::$records)) { - echo ''; + if ($htmlTags) { + echo ''; + } else { + echo self::generateScript(); + } self::reset(); } } @@ -166,7 +174,7 @@ private static function dump($title, array $dict) private static function quote($arg) { - return '"' . addcslashes($arg, "\"\n") . '"'; + return '"' . addcslashes($arg, "\"\n\\") . '"'; } private static function call() diff --git a/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php old mode 100755 new mode 100644 index bc65934..b3f2963 --- a/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php @@ -129,7 +129,7 @@ protected function send() $json = @json_encode(self::$json); $data = base64_encode(utf8_encode($json)); - if (strlen($data) > 240*1024) { + if (strlen($data) > 240 * 1024) { self::$overflowed = true; $record = array( diff --git a/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php old mode 100755 new mode 100644 index d968720..e7dd854 --- a/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php @@ -31,7 +31,7 @@ class CubeHandler extends AbstractProcessingHandler /** * Create a Cube handler * - * @throws UnexpectedValueException when given url is not a valid url. + * @throws \UnexpectedValueException when given url is not a valid url. * A valid url must consists of three parts : protocol://host:port * Only valid protocol used by Cube are http and udp */ @@ -59,7 +59,7 @@ public function __construct($url, $level = Logger::DEBUG, $bubble = true) /** * Establish a connection to an UDP socket * - * @throws LogicException when unable to connect to the socket + * @throws \LogicException when unable to connect to the socket */ protected function connectUdp() { @@ -116,7 +116,11 @@ protected function write(array $record) $data['data'] = $record['context']; $data['data']['level'] = $record['level']; - $this->{'write'.$this->scheme}(json_encode($data)); + if ($this->scheme === 'http') { + $this->writeHttp(json_encode($data)); + } else { + $this->writeUdp(json_encode($data)); + } } private function writeUdp($data) @@ -140,6 +144,6 @@ private function writeHttp($data) 'Content-Length: ' . strlen('['.$data.']')) ); - return curl_exec($this->httpConnection); + Curl\Util::execute($ch, 5, false); } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php b/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php new file mode 100644 index 0000000..adbe4f4 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\Curl; + +class Util +{ + private static $retriableErrorCodes = array( + CURLE_COULDNT_RESOLVE_HOST, + CURLE_COULDNT_CONNECT, + CURLE_HTTP_NOT_FOUND, + CURLE_READ_ERROR, + CURLE_OPERATION_TIMEOUTED, + CURLE_HTTP_POST_ERROR, + CURLE_SSL_CONNECT_ERROR, + ); + + /** + * Executes a CURL request with optional retries and exception on failure + * + * @param resource $ch curl handler + * @throws \RuntimeException + */ + public static function execute($ch, $retries = 5, $closeAfterDone = true) + { + while ($retries--) { + if (curl_exec($ch) === false) { + $curlErrno = curl_errno($ch); + + if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) { + $curlError = curl_error($ch); + + if ($closeAfterDone) { + curl_close($ch); + } + + throw new \RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError)); + } + + continue; + } + + if ($closeAfterDone) { + curl_close($ch); + } + break; + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php old mode 100755 new mode 100644 index a81c9e6..30a85dd --- a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php @@ -61,7 +61,10 @@ public function __construct($handler, $activationStrategy = null, $bufferSize = $this->bufferSize = $bufferSize; $this->bubble = $bubble; $this->stopBuffering = $stopBuffering; - $this->passthruLevel = $passthruLevel; + + if ($passthruLevel !== null) { + $this->passthruLevel = Logger::toMonologLevel($passthruLevel); + } if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php old mode 100755 new mode 100644 index 6eaaa9d..dd9a361 --- a/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php @@ -12,6 +12,8 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Formatter\FlowdockFormatter; +use Monolog\Formatter\FormatterInterface; /** * Sends notifications through the Flowdock push API @@ -48,6 +50,28 @@ public function __construct($apiToken, $level = Logger::DEBUG, $bubble = true) $this->apiToken = $apiToken; } + /** + * {@inheritdoc} + */ + public function setFormatter(FormatterInterface $formatter) + { + if (!$formatter instanceof FlowdockFormatter) { + throw new \InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); + } + + return parent::setFormatter($formatter); + } + + /** + * Gets the default formatter. + * + * @return FormatterInterface + */ + protected function getDefaultFormatter() + { + throw new \InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); + } + /** * {@inheritdoc} * diff --git a/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php old mode 100755 new mode 100644 index 790f636..28c7b55 --- a/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php @@ -13,6 +13,7 @@ use Gelf\IMessagePublisher; use Gelf\PublisherInterface; +use Gelf\Publisher; use InvalidArgumentException; use Monolog\Logger; use Monolog\Formatter\GelfMessageFormatter; @@ -31,16 +32,16 @@ class GelfHandler extends AbstractProcessingHandler protected $publisher; /** - * @param PublisherInterface|IMessagePublisher $publisher a publisher object - * @param integer $level The minimum logging level at which this handler will be triggered - * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not + * @param PublisherInterface|IMessagePublisher|Publisher $publisher a publisher object + * @param integer $level The minimum logging level at which this handler will be triggered + * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not */ public function __construct($publisher, $level = Logger::DEBUG, $bubble = true) { parent::__construct($level, $bubble); - if (!$publisher instanceof IMessagePublisher && !$publisher instanceof PublisherInterface) { - throw new InvalidArgumentException("Invalid publisher, expected a Gelf\IMessagePublisher or Gelf\PublisherInterface instance"); + if (!$publisher instanceof Publisher && !$publisher instanceof IMessagePublisher && !$publisher instanceof PublisherInterface) { + throw new InvalidArgumentException("Invalid publisher, expected a Gelf\Publisher, Gelf\IMessagePublisher or Gelf\PublisherInterface instance"); } $this->publisher = $publisher; diff --git a/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php b/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php old mode 100755 new mode 100644 index eb197ea..d920c4b --- a/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php @@ -42,7 +42,7 @@ public function isHandling(array $record); * those that it does not want to handle. * * The return value of this function controls the bubbling process of the handler stack. - * Unless the bubbling is interrupted (by returning true), the Logger user will keep on + * Unless the bubbling is interrupted (by returning true), the Logger class will keep on * calling further handlers in the stack with a given log record. * * @param array $record The record to handle diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php old mode 100755 new mode 100644 index 185e86e..34d3437 --- a/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php @@ -21,12 +21,23 @@ * Room - HipChat Room Id or name, where messages are sent * Name - Name used to send the message (from) * notify - Should the message trigger a notification in the clients + * version - The API version to use (HipChatHandler::API_V1 | HipChatHandler::API_V2) * * @author Rafael Dohms * @see https://www.hipchat.com/docs/api */ class HipChatHandler extends SocketHandler { + /** + * Use API version 1 + */ + const API_V1 = 'v1'; + + /** + * Use API version v2 + */ + const API_V2 = 'v2'; + /** * The maximum allowed length for the name used in the "from" field. */ @@ -68,19 +79,25 @@ class HipChatHandler extends SocketHandler private $host; /** - * @param string $token HipChat API Token - * @param string $room The room that should be alerted of the message (Id or Name) - * @param string $name Name used in the "from" field - * @param bool $notify Trigger a notification in clients or not - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param bool $useSSL Whether to connect via SSL. - * @param string $format The format of the messages (default to text, can be set to html if you have html in the messages) - * @param string $host The HipChat server hostname. + * @var string + */ + private $version; + + /** + * @param string $token HipChat API Token + * @param string $room The room that should be alerted of the message (Id or Name) + * @param string $name Name used in the "from" field. Not used for v2 + * @param bool $notify Trigger a notification in clients or not + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $useSSL Whether to connect via SSL. + * @param string $format The format of the messages (default to text, can be set to html if you have html in the messages) + * @param string $host The HipChat server hostname. + * @param string $version The HipChat API version (default HipChatHandler::API_V1) */ - public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com') + public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1) { - if (!$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) { + if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) { throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.'); } @@ -93,6 +110,7 @@ public function __construct($token, $room, $name = 'Monolog', $notify = false, $ $this->room = $room; $this->format = $format; $this->host = $host; + $this->version = $version; } /** @@ -117,14 +135,20 @@ protected function generateDataStream($record) private function buildContent($record) { $dataArray = array( - 'from' => $this->name, - 'room_id' => $this->room, - 'notify' => $this->notify, + 'notify' => $this->version == self::API_V1 ? + ($this->notify ? 1 : 0) : + ($this->notify ? 'true' : 'false'), 'message' => $record['formatted'], 'message_format' => $this->format, 'color' => $this->getAlertColor($record['level']), ); + // if we are using the legacy API then we need to send some additional information + if ($this->version == self::API_V1) { + $dataArray['room_id'] = $this->room; + $dataArray['from'] = $this->name; + } + return http_build_query($dataArray); } @@ -136,7 +160,14 @@ private function buildContent($record) */ private function buildHeader($content) { - $header = "POST /v1/rooms/message?format=json&auth_token=".$this->token." HTTP/1.1\r\n"; + if ($this->version == self::API_V1) { + $header = "POST /v1/rooms/message?format=json&auth_token={$this->token} HTTP/1.1\r\n"; + } else { + // needed for rooms with special (spaces, etc) characters in the name + $room = rawurlencode($this->room); + $header = "POST /v2/room/{$room}/notification?auth_token={$this->token} HTTP/1.1\r\n"; + } + $header .= "Host: {$this->host}\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($content) . "\r\n"; diff --git a/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php new file mode 100644 index 0000000..bc11705 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * IFTTTHandler uses cURL to trigger IFTTT Maker actions + * + * Register a secret key and trigger/event name at https://ifttt.com/maker + * + * value1 will be the channel from monolog's Logger constructor, + * value2 will be the level name (ERROR, WARNING, ..) + * value3 will be the log record's message + * + * @author Nehal Patel + */ +class IFTTTHandler extends AbstractProcessingHandler +{ + private $eventName; + private $secretKey; + + /** + * @param string $eventName The name of the IFTTT Maker event that should be triggered + * @param string $secretKey A valid IFTTT secret key + * @param integer $level The minimum logging level at which this handler will be triggered + * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($eventName, $secretKey, $level = Logger::ERROR, $bubble = true) + { + $this->eventName = $eventName; + $this->secretKey = $secretKey; + + parent::__construct($level, $bubble); + } + + /** + * {@inheritdoc} + */ + public function write(array $record) + { + $postData = array( + "value1" => $record["channel"], + "value2" => $record["level_name"], + "value3" => $record["message"] + ); + $postString = json_encode($postData); + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + "Content-Type: application/json" + )); + + Curl\Util::execute($ch); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php old mode 100755 new mode 100644 index efd94d3..bcd62e1 --- a/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php @@ -19,6 +19,7 @@ * * @author Przemek Sobstel * @author Adam Pancutt + * @author Gregory Barchard */ class LogglyHandler extends AbstractProcessingHandler { @@ -28,7 +29,7 @@ class LogglyHandler extends AbstractProcessingHandler protected $token; - protected $tag; + protected $tag = array(); public function __construct($token, $level = Logger::DEBUG, $bubble = true) { @@ -43,12 +44,16 @@ public function __construct($token, $level = Logger::DEBUG, $bubble = true) public function setTag($tag) { - $this->tag = $tag; + $tag = !empty($tag) ? $tag : array(); + $this->tag = is_array($tag) ? $tag : array($tag); } public function addTag($tag) { - $this->tag = (strlen($this->tag) > 0) ? $this->tag .','. $tag : $tag; + if (!empty($tag)) { + $tag = is_array($tag) ? $tag : array($tag); + $this->tag = array_unique(array_merge($this->tag, $tag)); + } } protected function write(array $record) @@ -75,8 +80,8 @@ protected function send($data, $endpoint) $headers = array('Content-Type: application/json'); - if ($this->tag) { - $headers[] = "X-LOGGLY-TAG: {$this->tag}"; + if (!empty($this->tag)) { + $headers[] = 'X-LOGGLY-TAG: '.implode(',', $this->tag); } $ch = curl_init(); @@ -87,8 +92,7 @@ protected function send($data, $endpoint) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_exec($ch); - curl_close($ch); + Curl\Util::execute($ch); } protected function getDefaultFormatter() diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php old mode 100755 new mode 100644 index 8812360..50ed638 --- a/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php @@ -12,7 +12,7 @@ namespace Monolog\Handler; /** - * Base user for all mail handlers + * Base class for all mail handlers * * @author Gyula Sallai */ diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php old mode 100755 new mode 100644 index 60a2901..0ed098a --- a/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php @@ -20,8 +20,8 @@ */ class MandrillHandler extends MailHandler { - protected $client; protected $message; + protected $apiKey; /** * @param string $apiKey A valid Mandrill API key @@ -63,7 +63,6 @@ protected function send($content, array $records) 'async' => false, ))); - curl_exec($ch); - curl_close($ch); + Curl\Util::execute($ch); } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php b/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php old mode 100755 new mode 100644 index 0c26794..8cb4ab3 --- a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Formatter\NormalizerFormatter; /** * Class to record a log on a NewRelic application. @@ -80,33 +81,33 @@ protected function write(array $record) if ($transactionName = $this->getTransactionName($record['context'])) { $this->setNewRelicTransactionName($transactionName); - unset($record['context']['transaction_name']); + unset($record['formatted']['context']['transaction_name']); } if (isset($record['context']['exception']) && $record['context']['exception'] instanceof \Exception) { newrelic_notice_error($record['message'], $record['context']['exception']); - unset($record['context']['exception']); + unset($record['formatted']['context']['exception']); } else { newrelic_notice_error($record['message']); } - foreach ($record['context'] as $key => $parameter) { + foreach ($record['formatted']['context'] as $key => $parameter) { if (is_array($parameter) && $this->explodeArrays) { foreach ($parameter as $paramKey => $paramValue) { - newrelic_add_custom_parameter('context_' . $key . '_' . $paramKey, $paramValue); + $this->setNewRelicParameter('context_' . $key . '_' . $paramKey, $paramValue); } } else { - newrelic_add_custom_parameter('context_' . $key, $parameter); + $this->setNewRelicParameter('context_' . $key, $parameter); } } - foreach ($record['extra'] as $key => $parameter) { + foreach ($record['formatted']['extra'] as $key => $parameter) { if (is_array($parameter) && $this->explodeArrays) { foreach ($parameter as $paramKey => $paramValue) { - newrelic_add_custom_parameter('extra_' . $key . '_' . $paramKey, $paramValue); + $this->setNewRelicParameter('extra_' . $key . '_' . $paramKey, $paramValue); } } else { - newrelic_add_custom_parameter('extra_' . $key, $parameter); + $this->setNewRelicParameter('extra_' . $key, $parameter); } } } @@ -167,10 +168,31 @@ protected function setNewRelicAppName($appName) /** * Overwrites the name of the current transaction * - * @param $transactionName + * @param string $transactionName */ protected function setNewRelicTransactionName($transactionName) { newrelic_name_transaction($transactionName); } + + /** + * @param string $key + * @param mixed $value + */ + protected function setNewRelicParameter($key, $value) + { + if (null === $value || is_scalar($value)) { + newrelic_add_custom_parameter($key, $value); + } else { + newrelic_add_custom_parameter($key, @json_encode($value)); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new NormalizerFormatter(); + } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php new file mode 100644 index 0000000..2b7e353 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php @@ -0,0 +1,242 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Exception; +use Monolog\Formatter\LineFormatter; +use Monolog\Logger; +use PhpConsole\Connector; +use PhpConsole\Handler; +use PhpConsole\Helper; + +/** + * Monolog handler for Google Chrome extension "PHP Console" + * + * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely + * + * Usage: + * 1. Install Google Chrome extension https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef + * 2. See overview https://github.com/barbushin/php-console#overview + * 3. Install PHP Console library https://github.com/barbushin/php-console#installation + * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png) + * + * $logger = new \Monolog\Logger('all', array(new \Monolog\Handler\PHPConsoleHandler())); + * \Monolog\ErrorHandler::register($logger); + * echo $undefinedVar; + * $logger->addDebug('SELECT * FROM users', array('db', 'time' => 0.012)); + * PC::debug($_SERVER); // PHP Console debugger for any type of vars + * + * @author Sergey Barbushin https://www.linkedin.com/in/barbushin + */ +class PHPConsoleHandler extends AbstractProcessingHandler +{ + private $options = array( + 'enabled' => true, // bool Is PHP Console server enabled + 'classesPartialsTraceIgnore' => array('Monolog\\'), // array Hide calls of classes started with... + 'debugTagsKeysInContext' => array(0, 'tag'), // bool Is PHP Console server enabled + 'useOwnErrorsHandler' => false, // bool Enable errors handling + 'useOwnExceptionsHandler' => false, // bool Enable exceptions handling + 'sourcesBasePath' => null, // string Base path of all project sources to strip in errors source paths + 'registerHelper' => true, // bool Register PhpConsole\Helper that allows short debug calls like PC::debug($var, 'ta.g.s') + 'serverEncoding' => null, // string|null Server internal encoding + 'headersLimit' => null, // int|null Set headers size limit for your web-server + 'password' => null, // string|null Protect PHP Console connection by password + 'enableSslOnlyMode' => false, // bool Force connection by SSL for clients with PHP Console installed + 'ipMasks' => array(), // array Set IP masks of clients that will be allowed to connect to PHP Console: array('192.168.*.*', '127.0.0.1') + 'enableEvalListener' => false, // bool Enable eval request to be handled by eval dispatcher(if enabled, 'password' option is also required) + 'dumperDetectCallbacks' => false, // bool Convert callback items in dumper vars to (callback SomeClass::someMethod) strings + 'dumperLevelLimit' => 5, // int Maximum dumped vars array or object nested dump level + 'dumperItemsCountLimit' => 100, // int Maximum dumped var same level array items or object properties number + 'dumperItemSizeLimit' => 5000, // int Maximum length of any string or dumped array item + 'dumperDumpSizeLimit' => 500000, // int Maximum approximate size of dumped vars result formatted in JSON + 'detectDumpTraceAndSource' => false, // bool Autodetect and append trace data to debug + 'dataStorage' => null, // PhpConsole\Storage|null Fixes problem with custom $_SESSION handler(see http://goo.gl/Ne8juJ) + ); + + /** @var Connector */ + private $connector; + + /** + * @param array $options See \Monolog\Handler\PHPConsoleHandler::$options for more details + * @param Connector|null $connector Instance of \PhpConsole\Connector class (optional) + * @param int $level + * @param bool $bubble + * @throws Exception + */ + public function __construct(array $options = array(), Connector $connector = null, $level = Logger::DEBUG, $bubble = true) + { + if (!class_exists('PhpConsole\Connector')) { + throw new Exception('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); + } + parent::__construct($level, $bubble); + $this->options = $this->initOptions($options); + $this->connector = $this->initConnector($connector); + } + + private function initOptions(array $options) + { + $wrongOptions = array_diff(array_keys($options), array_keys($this->options)); + if ($wrongOptions) { + throw new Exception('Unknown options: ' . implode(', ', $wrongOptions)); + } + + return array_replace($this->options, $options); + } + + private function initConnector(Connector $connector = null) + { + if (!$connector) { + if ($this->options['dataStorage']) { + Connector::setPostponeStorage($this->options['dataStorage']); + } + $connector = Connector::getInstance(); + } + + if ($this->options['registerHelper'] && !Helper::isRegistered()) { + Helper::register(); + } + + if ($this->options['enabled'] && $connector->isActiveClient()) { + if ($this->options['useOwnErrorsHandler'] || $this->options['useOwnExceptionsHandler']) { + $handler = Handler::getInstance(); + $handler->setHandleErrors($this->options['useOwnErrorsHandler']); + $handler->setHandleExceptions($this->options['useOwnExceptionsHandler']); + $handler->start(); + } + if ($this->options['sourcesBasePath']) { + $connector->setSourcesBasePath($this->options['sourcesBasePath']); + } + if ($this->options['serverEncoding']) { + $connector->setServerEncoding($this->options['serverEncoding']); + } + if ($this->options['password']) { + $connector->setPassword($this->options['password']); + } + if ($this->options['enableSslOnlyMode']) { + $connector->enableSslOnlyMode(); + } + if ($this->options['ipMasks']) { + $connector->setAllowedIpMasks($this->options['ipMasks']); + } + if ($this->options['headersLimit']) { + $connector->setHeadersLimit($this->options['headersLimit']); + } + if ($this->options['detectDumpTraceAndSource']) { + $connector->getDebugDispatcher()->detectTraceAndSource = true; + } + $dumper = $connector->getDumper(); + $dumper->levelLimit = $this->options['dumperLevelLimit']; + $dumper->itemsCountLimit = $this->options['dumperItemsCountLimit']; + $dumper->itemSizeLimit = $this->options['dumperItemSizeLimit']; + $dumper->dumpSizeLimit = $this->options['dumperDumpSizeLimit']; + $dumper->detectCallbacks = $this->options['dumperDetectCallbacks']; + if ($this->options['enableEvalListener']) { + $connector->startEvalRequestsListener(); + } + } + + return $connector; + } + + public function getConnector() + { + return $this->connector; + } + + public function getOptions() + { + return $this->options; + } + + public function handle(array $record) + { + if ($this->options['enabled'] && $this->connector->isActiveClient()) { + return parent::handle($record); + } + + return !$this->bubble; + } + + /** + * Writes the record down to the log of the implementing handler + * + * @param array $record + * @return void + */ + protected function write(array $record) + { + if ($record['level'] < Logger::NOTICE) { + $this->handleDebugRecord($record); + } elseif (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { + $this->handleExceptionRecord($record); + } else { + $this->handleErrorRecord($record); + } + } + + private function handleDebugRecord(array $record) + { + $tags = $this->getRecordTags($record); + $message = $record['message']; + if ($record['context']) { + $message .= ' ' . json_encode($this->connector->getDumper()->dump(array_filter($record['context']))); + } + $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']); + } + + private function handleExceptionRecord(array $record) + { + $this->connector->getErrorsDispatcher()->dispatchException($record['context']['exception']); + } + + private function handleErrorRecord(array $record) + { + $context = $record['context']; + + $this->connector->getErrorsDispatcher()->dispatchError( + isset($context['code']) ? $context['code'] : null, + isset($context['message']) ? $context['message'] : $record['message'], + isset($context['file']) ? $context['file'] : null, + isset($context['line']) ? $context['line'] : null, + $this->options['classesPartialsTraceIgnore'] + ); + } + + private function getRecordTags(array &$record) + { + $tags = null; + if (!empty($record['context'])) { + $context = & $record['context']; + foreach ($this->options['debugTagsKeysInContext'] as $key) { + if (!empty($context[$key])) { + $tags = $context[$key]; + if ($key === 0) { + array_shift($context); + } else { + unset($context[$key]); + } + break; + } + } + } + + return $tags ?: strtolower($record['level_name']); + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new LineFormatter('%message%'); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php old mode 100755 new mode 100644 index cd2fcfa..9917b64 --- a/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php @@ -30,6 +30,7 @@ class PushoverHandler extends SocketHandler private $highPriorityLevel; private $emergencyLevel; + private $useFormattedMessage = false; /** * All parameters that can be sent to Pushover @@ -103,7 +104,10 @@ private function buildContent($record) { // Pushover has a limit of 512 characters on title and message combined. $maxMessageLength = 512 - strlen($this->title); - $message = substr($record['message'], 0, $maxMessageLength); + + $message = ($this->useFormattedMessage) ? $record['formatted'] : $record['message']; + $message = substr($message, 0, $maxMessageLength); + $timestamp = $record['datetime']->getTimestamp(); $dataArray = array( @@ -169,4 +173,13 @@ public function setEmergencyLevel($value) { $this->emergencyLevel = $value; } + + /** + * Use the formatted message? + * @param boolean $value + */ + public function useFormattedMessage($value) + { + $this->useFormattedMessage = (boolean) $value; + } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php old mode 100755 new mode 100644 index 69da8ca..1807705 --- a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php @@ -127,8 +127,7 @@ public function getBatchFormatter() */ protected function write(array $record) { - // ensures user context is empty - $this->ravenClient->user_context(null); + $previousUserContext = false; $options = array(); $options['level'] = $this->logLevels[$record['level']]; $options['tags'] = array(); @@ -146,9 +145,18 @@ protected function write(array $record) } else { $options['logger'] = $record['channel']; } + foreach ($this->getExtraParameters() as $key) { + foreach (array('extra', 'context') as $source) { + if (!empty($record[$source][$key])) { + $options[$key] = $record[$source][$key]; + unset($record[$source][$key]); + } + } + } if (!empty($record['context'])) { $options['extra']['context'] = $record['context']; if (!empty($record['context']['user'])) { + $previousUserContext = $this->ravenClient->context->user; $this->ravenClient->user_context($record['context']['user']); unset($options['extra']['context']['user']); } @@ -160,11 +168,13 @@ protected function write(array $record) if (isset($record['context']['exception']) && $record['context']['exception'] instanceof \Exception) { $options['extra']['message'] = $record['formatted']; $this->ravenClient->captureException($record['context']['exception'], $options); - - return; + } else { + $this->ravenClient->captureMessage($record['formatted'], array(), $options); } - $this->ravenClient->captureMessage($record['formatted'], array(), $options); + if ($previousUserContext !== false) { + $this->ravenClient->user_context($previousUserContext); + } } /** @@ -184,4 +194,14 @@ protected function getDefaultBatchFormatter() { return new LineFormatter(); } + + /** + * Gets extra parameters supported by Raven that can be found in "extra" and "context" + * + * @return array + */ + protected function getExtraParameters() + { + return array('checksum', 'release'); + } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php old mode 100755 new mode 100644 index 3fc7f34..157e2f9 --- a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php @@ -11,8 +11,8 @@ namespace Monolog\Handler; -use Monolog\Logger; use Monolog\Formatter\LineFormatter; +use Monolog\Logger; /** * Logs to a Redis key using rpush @@ -29,9 +29,16 @@ class RedisHandler extends AbstractProcessingHandler { private $redisClient; private $redisKey; + protected $capSize; - # redis instance, key to use - public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true) + /** + * @param \Predis\Client|\Redis $redis The redis instance + * @param string $key The key name to push records to + * @param integer $level The minimum logging level at which this handler will be triggered + * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not + * @param integer $capSize Number of entries to limit list size to + */ + public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true, $capSize = false) { if (!(($redis instanceof \Predis\Client) || ($redis instanceof \Redis))) { throw new \InvalidArgumentException('Predis\Client or Redis instance required'); @@ -39,13 +46,45 @@ public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true $this->redisClient = $redis; $this->redisKey = $key; + $this->capSize = $capSize; parent::__construct($level, $bubble); } + /** + * {@inheritDoc} + */ protected function write(array $record) { - $this->redisClient->rpush($this->redisKey, $record["formatted"]); + if ($this->capSize) { + $this->writeCapped($record); + } else { + $this->redisClient->rpush($this->redisKey, $record["formatted"]); + } + } + + /** + * Write and cap the collection + * Writes the record to the redis list and caps its + * + * @param array $record associative record array + * @return void + */ + protected function writeCapped(array $record) + { + if ($this->redisClient instanceof \Redis) { + $this->redisClient->multi() + ->rpush($this->redisKey, $record["formatted"]) + ->ltrim($this->redisKey, -$this->capSize, -1) + ->execute(); + } else { + $redisKey = $this->redisKey; + $capSize = $this->capSize; + $this->redisClient->transaction(function ($tx) use ($record, $redisKey, $capSize) { + $tx->rpush($redisKey, $record["formatted"]); + $tx->ltrim($redisKey, -$capSize, -1); + }); + } } /** diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php old mode 100755 new mode 100644 index 81abf08..0ad618d --- a/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php @@ -29,6 +29,13 @@ class RollbarHandler extends AbstractProcessingHandler */ protected $rollbarNotifier; + /** + * Records whether any log records have been added since the last flush of the rollbar notifier + * + * @var bool + */ + private $hasRecords = false; + /** * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token * @param integer $level The minimum logging level at which this handler will be triggered @@ -47,7 +54,17 @@ public function __construct(RollbarNotifier $rollbarNotifier, $level = Logger::E protected function write(array $record) { if (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { - $this->rollbarNotifier->report_exception($record['context']['exception']); + $context = $record['context']; + $exception = $context['exception']; + unset($context['exception']); + + $payload = array(); + if (isset($context['payload'])) { + $payload = $context['payload']; + unset($context['payload']); + } + + $this->rollbarNotifier->report_exception($exception, $context, $payload); } else { $extraData = array( 'level' => $record['level'], @@ -61,6 +78,8 @@ protected function write(array $record) array_merge($record['context'], $record['extra'], $extraData) ); } + + $this->hasRecords = true; } /** @@ -68,6 +87,9 @@ protected function write(array $record) */ public function close() { - $this->rollbarNotifier->flush(); + if ($this->hasRecords) { + $this->rollbarNotifier->flush(); + $this->hasRecords = false; + } } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php old mode 100755 new mode 100644 index 4168c32..0a20377 --- a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php @@ -118,6 +118,8 @@ protected function rotate() unlink($file); } } + + $this->mustRotate = false; } protected function getTimedFilename() diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php old mode 100755 new mode 100644 index 7328dee..61245ff --- a/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php @@ -120,41 +120,45 @@ protected function generateDataStream($record) * @return string */ private function buildContent($record) + { + $dataArray = $this->prepareContentData($record); + + return http_build_query($dataArray); + } + + /** + * Prepares content data + * + * @param array $record + * @return array + */ + protected function prepareContentData($record) { $dataArray = array( - 'token' => $this->token, - 'channel' => $this->channel, - 'username' => $this->username, - 'text' => '', + 'token' => $this->token, + 'channel' => $this->channel, + 'username' => $this->username, + 'text' => '', 'attachments' => array() ); if ($this->useAttachment) { $attachment = array( 'fallback' => $record['message'], - 'color' => $this->getAttachmentColor($record['level']) + 'color' => $this->getAttachmentColor($record['level']), + 'fields' => array() ); if ($this->useShortAttachment) { - $attachment['fields'] = array( - array( - 'title' => $record['level_name'], - 'value' => $record['message'], - 'short' => false - ) - ); + $attachment['title'] = $record['level_name']; + $attachment['text'] = $record['message']; } else { - $attachment['fields'] = array( - array( - 'title' => 'Message', - 'value' => $record['message'], - 'short' => false - ), - array( - 'title' => 'Level', - 'value' => $record['level_name'], - 'short' => true - ) + $attachment['title'] = 'Message'; + $attachment['text'] = $record['message']; + $attachment['fields'][] = array( + 'title' => 'Level', + 'value' => $record['level_name'], + 'short' => true ); } @@ -173,7 +177,7 @@ private function buildContent($record) 'title' => $var, 'value' => $val, 'short' => $this->useShortAttachment - ); + ); } } } @@ -192,7 +196,7 @@ private function buildContent($record) 'title' => $var, 'value' => $val, 'short' => $this->useShortAttachment - ); + ); } } } @@ -207,7 +211,7 @@ private function buildContent($record) $dataArray['icon_emoji'] = ":{$this->iconEmoji}:"; } - return http_build_query($dataArray); + return $dataArray; } /** diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php old mode 100755 new mode 100644 index ee486f6..a3e7252 --- a/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php @@ -80,11 +80,11 @@ public function closeSocket() /** * Set socket connection to nbe persistent. It only has effect before the connection is initiated. * - * @param type $boolean + * @param boolean $persistent */ - public function setPersistent($boolean) + public function setPersistent($persistent) { - $this->persistent = (boolean) $boolean; + $this->persistent = (boolean) $persistent; } /** @@ -190,7 +190,7 @@ protected function fsockopen() protected function streamSetTimeout() { $seconds = floor($this->timeout); - $microseconds = round(($this->timeout - $seconds)*1e6); + $microseconds = round(($this->timeout - $seconds) * 1e6); return stream_set_timeout($this->resource, $seconds, $microseconds); } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php old mode 100755 new mode 100644 index 7965db7..28b9b11 --- a/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php @@ -27,6 +27,7 @@ class StreamHandler extends AbstractProcessingHandler private $errorMessage; protected $filePermission; protected $useLocking; + private $dirCreated; /** * @param resource|string $stream @@ -35,6 +36,7 @@ class StreamHandler extends AbstractProcessingHandler * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) * @param Boolean $useLocking Try to lock log file before doing any writes * + * @throws \Exception If a missing directory is not buildable * @throws \InvalidArgumentException If stream is not a resource or string */ public function __construct($stream, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) @@ -72,6 +74,7 @@ protected function write(array $record) if (!$this->url) { throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().'); } + $this->createDir(); $this->errorMessage = null; set_error_handler(array($this, 'customErrorHandler')); $this->stream = fopen($this->url, 'a'); @@ -99,6 +102,45 @@ protected function write(array $record) private function customErrorHandler($code, $msg) { - $this->errorMessage = preg_replace('{^fopen\(.*?\): }', '', $msg); + $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg); + } + + /** + * @param string $stream + * + * @return null|string + */ + private function getDirFromStream($stream) + { + $pos = strpos($stream, '://'); + if ($pos === false) { + return dirname($stream); + } + + if ('file://' === substr($stream, 0, 7)) { + return dirname(substr($stream, 7)); + } + + return; + } + + private function createDir() + { + // Do not try to create dir if it has already been tried. + if ($this->dirCreated) { + return; + } + + $dir = $this->getDirFromStream($this->url); + if (null !== $dir && !is_dir($dir)) { + $this->errorMessage = null; + set_error_handler(array($this, 'customErrorHandler')); + $status = mkdir($dir, 0777, true); + restore_error_handler(); + if (false === $status) { + throw new \UnexpectedValueException(sprintf('There is no existing directory at "%s" and its not buildable: '.$this->errorMessage, $dir)); + } + } + $this->dirCreated = true; } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php old mode 100755 new mode 100644 index 003a1a2..5c2b156 --- a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php @@ -57,7 +57,8 @@ protected function buildMessage($content, array $records) $message = null; if ($this->messageTemplate instanceof \Swift_Message) { $message = clone $this->messageTemplate; - } else if (is_callable($this->messageTemplate)) { + $message->generateId(); + } elseif (is_callable($this->messageTemplate)) { $message = call_user_func($this->messageTemplate, $content, $records); } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php old mode 100755 new mode 100644 index dcf3f1f..3bff085 --- a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php @@ -15,6 +15,10 @@ class UdpSocket { const DATAGRAM_MAX_LENGTH = 65023; + protected $ip; + protected $port; + protected $socket; + public function __construct($ip, $port = 514) { $this->ip = $ip; @@ -29,11 +33,17 @@ public function write($line, $header = "") public function close() { - socket_close($this->socket); + if (is_resource($this->socket)) { + socket_close($this->socket); + $this->socket = null; + } } protected function send($chunk) { + if (!is_resource($this->socket)) { + throw new \LogicException('The UdpSocket to '.$this->ip.':'.$this->port.' has been closed and can not be written to anymore'); + } socket_sendto($this->socket, $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port); } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php old mode 100755 new mode 100644 index aa047c0..2e32fa7 --- a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php @@ -21,6 +21,8 @@ */ class SyslogUdpHandler extends AbstractSyslogHandler { + protected $socket; + /** * @param string $host * @param int $port diff --git a/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php old mode 100755 new mode 100644 index 085d9e1..e24fa9e --- a/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php @@ -11,14 +11,57 @@ namespace Monolog\Handler; -use Monolog\Logger; - /** * Used for testing purposes. * * It records all records and gives you access to them for verification. * * @author Jordi Boggiano + * + * @method boolean hasEmergency($record) + * @method boolean hasAlert($record) + * @method boolean hasCritical($record) + * @method boolean hasError($record) + * @method boolean hasWarning($record) + * @method boolean hasNotice($record) + * @method boolean hasInfo($record) + * @method boolean hasDebug($record) + * + * @method boolean hasEmergencyRecords() + * @method boolean hasAlertRecords() + * @method boolean hasCriticalRecords() + * @method boolean hasErrorRecords() + * @method boolean hasWarningRecords() + * @method boolean hasNoticeRecords() + * @method boolean hasInfoRecords() + * @method boolean hasDebugRecords() + * + * @method boolean hasEmergencyThatContains($message) + * @method boolean hasAlertThatContains($message) + * @method boolean hasCriticalThatContains($message) + * @method boolean hasErrorThatContains($message) + * @method boolean hasWarningThatContains($message) + * @method boolean hasNoticeThatContains($message) + * @method boolean hasInfoThatContains($message) + * @method boolean hasDebugThatContains($message) + * + * @method boolean hasEmergencyThatMatches($message) + * @method boolean hasAlertThatMatches($message) + * @method boolean hasCriticalThatMatches($message) + * @method boolean hasErrorThatMatches($message) + * @method boolean hasWarningThatMatches($message) + * @method boolean hasNoticeThatMatches($message) + * @method boolean hasInfoThatMatches($message) + * @method boolean hasDebugThatMatches($message) + * + * @method boolean hasEmergencyThatPasses($message) + * @method boolean hasAlertThatPasses($message) + * @method boolean hasCriticalThatPasses($message) + * @method boolean hasErrorThatPasses($message) + * @method boolean hasWarningThatPasses($message) + * @method boolean hasNoticeThatPasses($message) + * @method boolean hasInfoThatPasses($message) + * @method boolean hasDebugThatPasses($message) */ class TestHandler extends AbstractProcessingHandler { @@ -30,98 +73,48 @@ public function getRecords() return $this->records; } - public function hasEmergency($record) - { - return $this->hasRecord($record, Logger::EMERGENCY); - } - - public function hasAlert($record) - { - return $this->hasRecord($record, Logger::ALERT); - } - - public function hasCritical($record) - { - return $this->hasRecord($record, Logger::CRITICAL); - } - - public function hasError($record) + protected function hasRecordRecords($level) { - return $this->hasRecord($record, Logger::ERROR); + return isset($this->recordsByLevel[$level]); } - public function hasWarning($record) - { - return $this->hasRecord($record, Logger::WARNING); - } - - public function hasNotice($record) - { - return $this->hasRecord($record, Logger::NOTICE); - } - - public function hasInfo($record) - { - return $this->hasRecord($record, Logger::INFO); - } - - public function hasDebug($record) - { - return $this->hasRecord($record, Logger::DEBUG); - } - - public function hasEmergencyRecords() - { - return isset($this->recordsByLevel[Logger::EMERGENCY]); - } - - public function hasAlertRecords() - { - return isset($this->recordsByLevel[Logger::ALERT]); - } - - public function hasCriticalRecords() - { - return isset($this->recordsByLevel[Logger::CRITICAL]); - } - - public function hasErrorRecords() + protected function hasRecord($record, $level) { - return isset($this->recordsByLevel[Logger::ERROR]); - } + if (is_array($record)) { + $record = $record['message']; + } - public function hasWarningRecords() - { - return isset($this->recordsByLevel[Logger::WARNING]); + return $this->hasRecordThatPasses(function ($rec) use ($record) { + return $rec['message'] === $record; + }, $level); } - public function hasNoticeRecords() + public function hasRecordThatContains($message, $level) { - return isset($this->recordsByLevel[Logger::NOTICE]); + return $this->hasRecordThatPasses(function ($rec) use ($message) { + return strpos($rec['message'], $message) !== false; + }, $level); } - public function hasInfoRecords() + public function hasRecordThatMatches($regex, $level) { - return isset($this->recordsByLevel[Logger::INFO]); + return $this->hasRecordThatPasses(function ($rec) use ($regex) { + return preg_match($regex, $rec['message']) > 0; + }, $level); } - public function hasDebugRecords() + public function hasRecordThatPasses($predicate, $level) { - return isset($this->recordsByLevel[Logger::DEBUG]); - } + if (!is_callable($predicate)) { + throw new \InvalidArgumentException("Expected a callable for hasRecordThatSucceeds"); + } - protected function hasRecord($record, $level) - { if (!isset($this->recordsByLevel[$level])) { return false; } - if (is_array($record)) { - $record = $record['message']; - } - - foreach ($this->recordsByLevel[$level] as $rec) { - if ($rec['message'] === $record) { + foreach ($this->recordsByLevel[$level] as $i => $rec) { + if (call_user_func($predicate, $rec, $i)) { return true; } } @@ -137,4 +130,19 @@ protected function write(array $record) $this->recordsByLevel[$record['level']][] = $record; $this->records[] = $record; } + + public function __call($method, $args) + { + if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) { + $genericMethod = $matches[1] . 'Record' . $matches[3]; + $level = constant('Monolog\Logger::' . strtoupper($matches[2])); + if (method_exists($this, $genericMethod)) { + $args[] = $level; + + return call_user_func_array(array($this, $genericMethod), $args); + } + } + + throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()'); + } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Logger.php b/vendor/monolog/monolog/src/Monolog/Logger.php old mode 100755 new mode 100644 index 4a38de7..d31a098 --- a/vendor/monolog/monolog/src/Monolog/Logger.php +++ b/vendor/monolog/monolog/src/Monolog/Logger.php @@ -152,10 +152,13 @@ public function getName() * Pushes a handler on to the stack. * * @param HandlerInterface $handler + * @return $this */ public function pushHandler(HandlerInterface $handler) { array_unshift($this->handlers, $handler); + + return $this; } /** @@ -172,6 +175,24 @@ public function popHandler() return array_shift($this->handlers); } + /** + * Set handlers, replacing all existing ones. + * + * If a map is passed, keys will be ignored. + * + * @param HandlerInterface[] $handlers + * @return $this + */ + public function setHandlers(array $handlers) + { + $this->handlers = array(); + foreach (array_reverse($handlers) as $handler) { + $this->pushHandler($handler); + } + + return $this; + } + /** * @return HandlerInterface[] */ @@ -184,6 +205,7 @@ public function getHandlers() * Adds a processor on to the stack. * * @param callable $callback + * @return $this */ public function pushProcessor($callback) { @@ -191,6 +213,8 @@ public function pushProcessor($callback) throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); } array_unshift($this->processors, $callback); + + return $this; } /** @@ -438,9 +462,7 @@ public function isHandling($level) */ public function log($level, $message, array $context = array()) { - if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { - $level = constant(__CLASS__.'::'.strtoupper($level)); - } + $level = static::toMonologLevel($level); return $this->addRecord($level, $message, $context); } @@ -612,4 +634,16 @@ public function emergency($message, array $context = array()) { return $this->addRecord(static::EMERGENCY, $message, $context); } + + /** + * Set the timezone to be used for the timestamp of log records. + * + * This is stored globally for all Logger instances + * + * @param \DateTimeZone $tz Timezone object + */ + public static function setTimezone(\DateTimeZone $tz) + { + self::$timezone = $tz; + } } diff --git a/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php old mode 100755 new mode 100644 index 9197d6d..8f553fe --- a/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php +++ b/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php @@ -14,7 +14,7 @@ use Monolog\Logger; /** - * Injects line/file:user/function where the log message came from + * Injects line/file:class/function where the log message came from * * Warning: This only works if the handler processes the logs directly. * If you put the processor on a handler that is behind a FingersCrossedHandler @@ -30,10 +30,15 @@ class IntrospectionProcessor private $skipClassesPartials; - public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array('Monolog\\')) + private $skipFunctions = array( + 'call_user_func', + 'call_user_func_array', + ); + + public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array()) { $this->level = Logger::toMonologLevel($level); - $this->skipClassesPartials = $skipClassesPartials; + $this->skipClassesPartials = array_merge(array('Monolog\\'), $skipClassesPartials); } /** @@ -56,13 +61,19 @@ public function __invoke(array $record) $i = 0; - while (isset($trace[$i]['user'])) { - foreach ($this->skipClassesPartials as $part) { - if (strpos($trace[$i]['user'], $part) !== false) { - $i++; - continue 2; + while ($this->isTraceClassOrSkippedFunction($trace, $i)) { + if (isset($trace[$i]['class'])) { + foreach ($this->skipClassesPartials as $part) { + if (strpos($trace[$i]['class'], $part) !== false) { + $i++; + continue 2; + } } + } elseif (in_array($trace[$i]['function'], $this->skipFunctions)) { + $i++; + continue; } + break; } @@ -70,13 +81,22 @@ public function __invoke(array $record) $record['extra'] = array_merge( $record['extra'], array( - 'file' => isset($trace[$i-1]['file']) ? $trace[$i-1]['file'] : null, - 'line' => isset($trace[$i-1]['line']) ? $trace[$i-1]['line'] : null, - 'user' => isset($trace[$i]['user']) ? $trace[$i]['user'] : null, + 'file' => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null, + 'line' => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null, + 'class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : null, 'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null, ) ); return $record; } + + private function isTraceClassOrSkippedFunction(array $trace, $index) + { + if (!isset($trace[$index])) { + return false; + } + + return isset($trace[$index]['class']) || in_array($trace[$index]['function'], $this->skipFunctions); + } } diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php old mode 100755 new mode 100644 index 552fd70..0543e92 --- a/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php +++ b/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php @@ -28,12 +28,7 @@ public function __invoke(array $record) $bytes = memory_get_peak_usage($this->realUsage); $formatted = $this->formatBytes($bytes); - $record['extra'] = array_merge( - $record['extra'], - array( - 'memory_peak_usage' => $formatted, - ) - ); + $record['extra']['memory_peak_usage'] = $formatted; return $record; } diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php old mode 100755 new mode 100644 index 0820def..eb802c0 --- a/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php +++ b/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php @@ -52,10 +52,10 @@ protected function formatBytes($bytes) return $bytes; } - if ($bytes > 1024*1024) { - return round($bytes/1024/1024, 2).' MB'; + if ($bytes > 1024 * 1024) { + return round($bytes / 1024 / 1024, 2).' MB'; } elseif ($bytes > 1024) { - return round($bytes/1024, 2).' KB'; + return round($bytes / 1024, 2).' KB'; } return $bytes . ' B'; diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php old mode 100755 new mode 100644 index 0c4dd9a..2783d65 --- a/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php +++ b/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php @@ -28,12 +28,7 @@ public function __invoke(array $record) $bytes = memory_get_usage($this->realUsage); $formatted = $this->formatBytes($bytes); - $record['extra'] = array_merge( - $record['extra'], - array( - 'memory_usage' => $formatted, - ) - ); + $record['extra']['memory_usage'] = $formatted; return $record; } diff --git a/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php old mode 100755 new mode 100644 index 2784cef..7e2df2a --- a/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php +++ b/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php @@ -21,6 +21,16 @@ class TagProcessor private $tags; public function __construct(array $tags = array()) + { + $this->setTags($tags); + } + + public function addTags(array $tags = array()) + { + $this->tags = array_merge($this->tags, $tags); + } + + public function setTags(array $tags = array()) { $this->tags = $tags; } diff --git a/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php old mode 100755 new mode 100644 index 80270d0..812707c --- a/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php +++ b/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php @@ -35,4 +35,12 @@ public function __invoke(array $record) return $record; } + + /** + * @return string + */ + public function getUid() + { + return $this->uid; + } } diff --git a/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/src/Monolog/Registry.php b/vendor/monolog/monolog/src/Monolog/Registry.php old mode 100755 new mode 100644 index 507e8c4..a33cb7c --- a/vendor/monolog/monolog/src/Monolog/Registry.php +++ b/vendor/monolog/monolog/src/Monolog/Registry.php @@ -17,7 +17,7 @@ * Monolog log registry * * Allows to get `Logger` instances in the global scope - * via static method calls on this user. + * via static method calls on this class. * * * $application = new Monolog\Logger('application'); @@ -38,7 +38,7 @@ class Registry { /** - * List of all loggers in the registry (ba named indexes) + * List of all loggers in the registry (by named indexes) * * @var Logger[] */ diff --git a/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php old mode 100755 new mode 100644 index 7639986..546e5c2 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php @@ -34,7 +34,7 @@ public function testFormat() 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'user' => new \stdClass), + 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), 'datetime' => new \DateTime("@0"), 'extra' => array(), 'message' => 'log', @@ -44,7 +44,7 @@ public function testFormat() $expected = $msg; $expected['datetime'] = '1970-01-01T00:00:00+0000'; $expected['context'] = array( - 'user' => '[object] (stdClass: {})', + 'class' => '[object] (stdClass: {})', 'foo' => 7, 0 => 'bar', ); diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php old mode 100755 new mode 100644 index d6898bc..6ac1485 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php @@ -143,7 +143,7 @@ public function testFormatWithContextContainingException() 'level_name' => 'ERROR', 'channel' => 'meh', 'context' => array('from' => 'logger', 'exception' => array( - 'user' => '\Exception', + 'class' => '\Exception', 'file' => '/some/file/in/dir.php:56', 'trace' => array('/some/file/1.php:23', '/some/file/2.php:3') )), diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php old mode 100755 new mode 100644 index 89e1ca2..875bd57 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php @@ -103,7 +103,7 @@ public function testDefFormatWithObject() 'message' => 'foobar', )); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: {})","baz":[],"res":"[resource]"}'."\n", $message); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: bar)","baz":[],"res":"[resource] (stream)"}'."\n", $message); } public function testDefFormatWithException() @@ -120,7 +120,7 @@ public function testDefFormatWithException() $path = str_replace('\\/', '/', json_encode(__FILE__)); - $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__-8).')"} []'."\n", $message); + $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).')"} []'."\n", $message); } public function testDefFormatWithPreviousException() @@ -138,7 +138,7 @@ public function testDefFormatWithPreviousException() $path = str_replace('\\/', '/', json_encode(__FILE__)); - $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__-8).', LogicException(code: 0): Wut? at '.substr($path, 1, -1).':'.(__LINE__-12).')"} []'."\n", $message); + $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).', LogicException(code: 0): Wut? at '.substr($path, 1, -1).':'.(__LINE__ - 12).')"} []'."\n", $message); } public function testBatchFormat() diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php old mode 100755 new mode 100644 index 5a20753..1554ef4 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php @@ -103,7 +103,7 @@ public function testRecursiveFormat() array( 'foo' => 'something', 'bar' => 'stuff', - 'user' => 'stdClass', + 'class' => 'stdClass', ), $formattedRecord['context']['some_object'] ); @@ -116,7 +116,7 @@ public function testRecursiveFormat() $this->assertInternalType('string', $formattedRecord['context']['except']['file']); $this->assertInternalType('integer', $formattedRecord['context']['except']['code']); $this->assertInternalType('string', $formattedRecord['context']['except']['trace']); - $this->assertEquals('Exception', $formattedRecord['context']['except']['user']); + $this->assertEquals('Exception', $formattedRecord['context']['except']['class']); } public function testFormatDepthArray() @@ -222,7 +222,7 @@ public function testFormatDepthObjects() 'nest2' => array( 'property' => 'anything', 'nest3' => '[...]', - 'user' => 'stdClass', + 'class' => 'stdClass', ), ), $formattedResult['context'] diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php old mode 100755 new mode 100644 index c3ac712..c484dfe --- a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php @@ -41,9 +41,9 @@ public function testFormat() 'datetime' => date('Y-m-d'), 'extra' => array( 'foo' => '[object] (Monolog\\Formatter\\TestFooNorm: {"foo":"foo"})', - 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: {})', + 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: bar)', 'baz' => array(), - 'res' => '[resource]', + 'res' => '[resource] (stream)', ), 'context' => array( 'foo' => 'bar', @@ -70,7 +70,7 @@ public function testFormatExceptions() $this->assertEquals(array( 'exception' => array( - 'user' => get_class($e2), + 'class' => get_class($e2), 'message' => $e2->getMessage(), 'code' => $e2->getCode(), 'file' => $e2->getFile().':'.$e2->getLine(), @@ -174,6 +174,22 @@ public function testIgnoresInvalidTypes() $this->assertEquals(@json_encode(array($resource)), $res); } + /** + * @expectedException RuntimeException + */ + public function testThrowsOnInvalidEncoding() + { + $formatter = new NormalizerFormatter(); + $reflMethod = new \ReflectionMethod($formatter, 'toJson'); + $reflMethod->setAccessible(true); + + // send an invalid unicode sequence + $res = $reflMethod->invoke($formatter, array('message' => "\xB1\x31")); + if (PHP_VERSION_ID < 50500 && $res === '{"message":null}') { + throw new \RuntimeException('PHP 5.3/5.4 throw a warning and null the value instead of returning false entirely'); + } + } + public function testExceptionTraceWithArgs() { if (defined('HHVM_VERSION')) { @@ -190,7 +206,8 @@ public function testExceptionTraceWithArgs() // This will contain $resource and $wrappedResource as arguments in the trace item $resource = fopen('php://memory', 'rw+'); fwrite($resource, 'test_resource'); - $wrappedResource = new TestStreamFoo($resource); + $wrappedResource = new TestFooNorm; + $wrappedResource->foo = $resource; // Just do something stupid with a resource/wrapped resource as argument array_keys($wrappedResource); } catch (\Exception $e) { @@ -202,14 +219,14 @@ public function testExceptionTraceWithArgs() $result = $formatter->format($record); $this->assertRegExp( - '%"resource":"\[resource\]"%', + '%"resource":"\[resource\] \(stream\)"%', $result['context']['exception']['trace'][0] ); if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestStreamFoo: \)"%'; + $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestFooNorm: \)"%'; } else { - $pattern = '%\\\\"resource\\\\":null%'; + $pattern = '%\\\\"foo\\\\":null%'; } // Tests that the wrapped resource is ignored while encoding, only works for PHP <= 5.4 diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php old mode 100755 new mode 100644 index 9091091..2a35446 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php @@ -3,6 +3,8 @@ class ScalarFormatterTest extends \PHPUnit_Framework_TestCase { + private $formatter; + public function setUp() { $this->formatter = new ScalarFormatter(); @@ -53,7 +55,7 @@ public function testFormat() 'bat' => $this->encodeJson(array('foo' => 'bar')), 'bap' => '1970-01-01 00:00:00', 'ban' => $this->encodeJson(array( - 'user' => get_class($exception), + 'class' => get_class($exception), 'message' => $exception->getMessage(), 'code' => $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine(), @@ -86,7 +88,7 @@ public function testFormatWithExceptionContext() $this->assertSame(array( 'context' => $this->encodeJson(array( 'exception' => array( - 'user' => get_class($exception), + 'class' => get_class($exception), 'message' => $exception->getMessage(), 'code' => $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine(), diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php old mode 100755 new mode 100644 index 074d50c..a71d625 --- a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php @@ -14,7 +14,6 @@ use Monolog\TestCase; use Monolog\Logger; use PhpAmqpLib\Message\AMQPMessage; -use PhpAmqpLib\Channel\AMQPChannel; use PhpAmqpLib\Connection\AMQPConnection; /** diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php old mode 100755 new mode 100644 index 2f55faf..4d64025 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php @@ -51,10 +51,10 @@ public function testHeadersOverflow() { $handler = new TestChromePHPHandler(); $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 150*1024))); + $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 150 * 1024))); // overflow chrome headers limit - $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 100*1024))); + $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 100 * 1024))); $expected = array( 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( @@ -69,7 +69,7 @@ public function testHeadersOverflow() ), array( 'test', - str_repeat('a', 150*1024), + str_repeat('a', 150 * 1024), 'unknown', 'warn', ), diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php old mode 100755 new mode 100644 index 78a1d15..9fc4b38 --- a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php @@ -20,16 +20,6 @@ public function testHandle() { $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - $expected = array( - 'message' => 'test', - 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), - 'level' => Logger::WARNING, - 'level_name' => 'WARNING', - 'channel' => 'test', - 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), - 'extra' => array(), - ); - $handler = new CouchDBHandler(); try { diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php old mode 100755 new mode 100644 index a38a8cb..42d4323 --- a/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php @@ -15,6 +15,8 @@ class DynamoDbHandlerTest extends TestCase { + private $client; + public function setUp() { if (!class_exists('Aws\DynamoDb\DynamoDbClient')) { diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php old mode 100755 new mode 100644 index a675599..1687074 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php @@ -61,7 +61,7 @@ public function testHandle() 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'user' => new \stdClass), + 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), 'datetime' => new \DateTime("@0"), 'extra' => array(), 'message' => 'log', @@ -166,7 +166,7 @@ public function testHandleIntegration() 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'user' => new \stdClass), + 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), 'datetime' => new \DateTime("@0"), 'extra' => array(), 'message' => 'log', @@ -175,7 +175,7 @@ public function testHandleIntegration() $expected = $msg; $expected['datetime'] = $msg['datetime']->format(\DateTime::ISO8601); $expected['context'] = array( - 'user' => '[object] (stdClass: {})', + 'class' => '[object] (stdClass: {})', 'foo' => 7, 0 => 'bar', ); diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php old mode 100755 new mode 100644 index a3d350d..8e31e9b --- a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php @@ -15,6 +15,7 @@ use Monolog\Logger; use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; use Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy; +use Psr\Log\LogLevel; class FingersCrossedHandlerTest extends TestCase { @@ -237,4 +238,18 @@ public function testPassthruOnClose() $this->assertFalse($test->hasDebugRecords()); $this->assertTrue($test->hasInfoRecords()); } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::close + */ + public function testPsrLevelPassthruOnClose() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, LogLevel::INFO); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); + $this->assertFalse($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep b/vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php old mode 100755 new mode 100644 index 49f1dfb..462dac8 --- a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php @@ -37,7 +37,7 @@ public function testWriteHeader() public function testWriteCustomHostHeader() { - $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar'); + $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar'); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); fseek($this->res, 0); $content = fread($this->res, 1024); @@ -47,12 +47,72 @@ public function testWriteCustomHostHeader() return $content; } + public function testWriteV2() + { + $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + public function testWriteV2Notify() + { + $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + public function testRoomSpaces() + { + $this->createHandler('myToken', 'room name', 'Monolog', false, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v2\/room\/room%20name\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + /** * @depends testWriteHeader */ public function testWriteContent($content) { - $this->assertRegexp('/from=Monolog&room_id=room1¬ify=0&message=test1&message_format=text&color=red$/', $content); + $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); + } + + /** + * @depends testWriteCustomHostHeader + */ + public function testWriteContentNotify($content) + { + $this->assertRegexp('/notify=1&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); + } + + /** + * @depends testWriteV2 + */ + public function testWriteContentV2($content) + { + $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red$/', $content); + } + + /** + * @depends testWriteV2Notify + */ + public function testWriteContentV2Notify($content) + { + $this->assertRegexp('/notify=true&message=test1&message_format=text&color=red$/', $content); } public function testWriteWithComplexMessage() @@ -141,9 +201,9 @@ public function provideBatchRecords() ); } - private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com') + private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com', $version = 'v1') { - $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host); + $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version); $this->res = fopen('php://memory', 'a'); $this->handler = $this->getMock( '\Monolog\Handler\HipChatHandler', @@ -173,6 +233,12 @@ private function createHandler($token = 'myToken', $room = 'room1', $name = 'Mon */ public function testCreateWithTooLongName() { - $hipChatHandler = new \Monolog\Handler\HipChatHandler('token', 'room', 'SixteenCharsHere'); + $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere'); + } + + public function testCreateWithTooLongNameV2() + { + // creating a handler with too long of a name but using the v2 api doesn't matter. + $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere', false, Logger::CRITICAL, true, true, 'test', 'api.hipchat.com', 'v2'); } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php old mode 100755 new mode 100644 index fbaab9b..a083322 --- a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php @@ -17,6 +17,7 @@ class MockRavenClient extends Raven_Client { public function capture($data, $stack, $vars = null) { + $data = array_merge($this->get_user_data(), $data); $this->lastData = $data; $this->lastStack = $stack; } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php new file mode 100644 index 0000000..ee95172 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php @@ -0,0 +1,274 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Exception; +use Monolog\ErrorHandler; +use Monolog\Logger; +use Monolog\TestCase; +use PhpConsole\Connector; +use PhpConsole\Dispatcher\Debug as DebugDispatcher; +use PhpConsole\Dispatcher\Errors as ErrorDispatcher; +use PhpConsole\Handler; +use PHPUnit_Framework_MockObject_MockObject; + +/** + * @covers Monolog\Handler\PHPConsoleHandler + * @author Sergey Barbushin https://www.linkedin.com/in/barbushin + */ +class PHPConsoleHandlerTest extends TestCase +{ + + /** @var Connector|PHPUnit_Framework_MockObject_MockObject */ + protected $connector; + /** @var DebugDispatcher|PHPUnit_Framework_MockObject_MockObject */ + protected $debugDispatcher; + /** @var ErrorDispatcher|PHPUnit_Framework_MockObject_MockObject */ + protected $errorDispatcher; + + protected function setUp() + { + if (!class_exists('PhpConsole\Connector')) { + $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); + } + $this->connector = $this->initConnectorMock(); + + $this->debugDispatcher = $this->initDebugDispatcherMock($this->connector); + $this->connector->setDebugDispatcher($this->debugDispatcher); + + $this->errorDispatcher = $this->initErrorDispatcherMock($this->connector); + $this->connector->setErrorsDispatcher($this->errorDispatcher); + } + + protected function initDebugDispatcherMock(Connector $connector) + { + return $this->getMockBuilder('PhpConsole\Dispatcher\Debug') + ->disableOriginalConstructor() + ->setMethods(array('dispatchDebug')) + ->setConstructorArgs(array($connector, $connector->getDumper())) + ->getMock(); + } + + protected function initErrorDispatcherMock(Connector $connector) + { + return $this->getMockBuilder('PhpConsole\Dispatcher\Errors') + ->disableOriginalConstructor() + ->setMethods(array('dispatchError', 'dispatchException')) + ->setConstructorArgs(array($connector, $connector->getDumper())) + ->getMock(); + } + + protected function initConnectorMock() + { + $connector = $this->getMockBuilder('PhpConsole\Connector') + ->disableOriginalConstructor() + ->setMethods(array( + 'sendMessage', + 'onShutDown', + 'isActiveClient', + 'setSourcesBasePath', + 'setServerEncoding', + 'setPassword', + 'enableSslOnlyMode', + 'setAllowedIpMasks', + 'setHeadersLimit', + 'startEvalRequestsListener', + )) + ->getMock(); + + $connector->expects($this->any()) + ->method('isActiveClient') + ->will($this->returnValue(true)); + + return $connector; + } + + protected function getHandlerDefaultOption($name) + { + $handler = new PHPConsoleHandler(array(), $this->connector); + $options = $handler->getOptions(); + + return $options[$name]; + } + + protected function initLogger($handlerOptions = array(), $level = Logger::DEBUG) + { + return new Logger('test', array( + new PHPConsoleHandler($handlerOptions, $this->connector, $level) + )); + } + + public function testInitWithDefaultConnector() + { + $handler = new PHPConsoleHandler(); + $this->assertEquals(spl_object_hash(Connector::getInstance()), spl_object_hash($handler->getConnector())); + } + + public function testInitWithCustomConnector() + { + $handler = new PHPConsoleHandler(array(), $this->connector); + $this->assertEquals(spl_object_hash($this->connector), spl_object_hash($handler->getConnector())); + } + + public function testDebug() + { + $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with($this->equalTo('test')); + $this->initLogger()->addDebug('test'); + } + + public function testDebugContextInMessage() + { + $message = 'test'; + $tag = 'tag'; + $context = array($tag, 'custom' => mt_rand()); + $expectedMessage = $message . ' ' . json_encode(array_slice($context, 1)); + $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with( + $this->equalTo($expectedMessage), + $this->equalTo($tag) + ); + $this->initLogger()->addDebug($message, $context); + } + + public function testDebugTags($tagsContextKeys = null) + { + $expectedTags = mt_rand(); + $logger = $this->initLogger($tagsContextKeys ? array('debugTagsKeysInContext' => $tagsContextKeys) : array()); + if (!$tagsContextKeys) { + $tagsContextKeys = $this->getHandlerDefaultOption('debugTagsKeysInContext'); + } + foreach ($tagsContextKeys as $key) { + $debugDispatcher = $this->initDebugDispatcherMock($this->connector); + $debugDispatcher->expects($this->once())->method('dispatchDebug')->with( + $this->anything(), + $this->equalTo($expectedTags) + ); + $this->connector->setDebugDispatcher($debugDispatcher); + $logger->addDebug('test', array($key => $expectedTags)); + } + } + + public function testError($classesPartialsTraceIgnore = null) + { + $code = E_USER_NOTICE; + $message = 'message'; + $file = __FILE__; + $line = __LINE__; + $this->errorDispatcher->expects($this->once())->method('dispatchError')->with( + $this->equalTo($code), + $this->equalTo($message), + $this->equalTo($file), + $this->equalTo($line), + $classesPartialsTraceIgnore ?: $this->equalTo($this->getHandlerDefaultOption('classesPartialsTraceIgnore')) + ); + $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? array('classesPartialsTraceIgnore' => $classesPartialsTraceIgnore) : array()), false); + $errorHandler->registerErrorHandler(array(), false, E_USER_WARNING); + $errorHandler->handleError($code, $message, $file, $line); + } + + public function testException() + { + $e = new Exception(); + $this->errorDispatcher->expects($this->once())->method('dispatchException')->with( + $this->equalTo($e) + ); + $handler = $this->initLogger(); + $handler->log( + \Psr\Log\LogLevel::ERROR, + sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), + array('exception' => $e) + ); + } + + /** + * @expectedException Exception + */ + public function testWrongOptionsThrowsException() + { + new PHPConsoleHandler(array('xxx' => 1)); + } + + public function testOptionEnabled() + { + $this->debugDispatcher->expects($this->never())->method('dispatchDebug'); + $this->initLogger(array('enabled' => false))->addDebug('test'); + } + + public function testOptionClassesPartialsTraceIgnore() + { + $this->testError(array('Class', 'Namespace\\')); + } + + public function testOptionDebugTagsKeysInContext() + { + $this->testDebugTags(array('key1', 'key2')); + } + + public function testOptionUseOwnErrorsAndExceptionsHandler() + { + $this->initLogger(array('useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true)); + $this->assertEquals(array(Handler::getInstance(), 'handleError'), set_error_handler(function () { + })); + $this->assertEquals(array(Handler::getInstance(), 'handleException'), set_exception_handler(function () { + })); + } + + public static function provideConnectorMethodsOptionsSets() + { + return array( + array('sourcesBasePath', 'setSourcesBasePath', __DIR__), + array('serverEncoding', 'setServerEncoding', 'cp1251'), + array('password', 'setPassword', '******'), + array('enableSslOnlyMode', 'enableSslOnlyMode', true, false), + array('ipMasks', 'setAllowedIpMasks', array('127.0.0.*')), + array('headersLimit', 'setHeadersLimit', 2500), + array('enableEvalListener', 'startEvalRequestsListener', true, false), + ); + } + + /** + * @dataProvider provideConnectorMethodsOptionsSets + */ + public function testOptionCallsConnectorMethod($option, $method, $value, $isArgument = true) + { + $expectCall = $this->connector->expects($this->once())->method($method); + if ($isArgument) { + $expectCall->with($value); + } + new PHPConsoleHandler(array($option => $value), $this->connector); + } + + public function testOptionDetectDumpTraceAndSource() + { + new PHPConsoleHandler(array('detectDumpTraceAndSource' => true), $this->connector); + $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource); + } + + public static function provideDumperOptionsValues() + { + return array( + array('dumperLevelLimit', 'levelLimit', 1001), + array('dumperItemsCountLimit', 'itemsCountLimit', 1002), + array('dumperItemSizeLimit', 'itemSizeLimit', 1003), + array('dumperDumpSizeLimit', 'dumpSizeLimit', 1004), + array('dumperDetectCallbacks', 'detectCallbacks', true), + ); + } + + /** + * @dataProvider provideDumperOptionsValues + */ + public function testDumperOptions($option, $dumperProperty, $value) + { + new PHPConsoleHandler(array($option => $value), $this->connector); + $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php old mode 100755 new mode 100644 index c7b4136..2ca5c02 --- a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php @@ -19,8 +19,8 @@ class RavenHandlerTest extends TestCase { public function setUp() { - if (!class_exists("Raven_Client")) { - $this->markTestSkipped("raven/raven not installed"); + if (!class_exists('Raven_Client')) { + $this->markTestSkipped('raven/raven not installed'); } require_once __DIR__ . '/MockRavenClient.php'; @@ -54,7 +54,7 @@ public function testDebug() $ravenClient = $this->getRavenClient(); $handler = $this->getHandler($ravenClient); - $record = $this->getRecord(Logger::DEBUG, "A test debug message"); + $record = $this->getRecord(Logger::DEBUG, 'A test debug message'); $handler->handle($record); $this->assertEquals($ravenClient::DEBUG, $ravenClient->lastData['level']); @@ -66,7 +66,7 @@ public function testWarning() $ravenClient = $this->getRavenClient(); $handler = $this->getHandler($ravenClient); - $record = $this->getRecord(Logger::WARNING, "A test warning message"); + $record = $this->getRecord(Logger::WARNING, 'A test warning message'); $handler->handle($record); $this->assertEquals($ravenClient::WARNING, $ravenClient->lastData['level']); @@ -79,29 +79,58 @@ public function testTag() $handler = $this->getHandler($ravenClient); $tags = array(1, 2, 'foo'); - $record = $this->getRecord(Logger::INFO, "test", array('tags' => $tags)); + $record = $this->getRecord(Logger::INFO, 'test', array('tags' => $tags)); $handler->handle($record); $this->assertEquals($tags, $ravenClient->lastData['tags']); } + public function testExtraParameters() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $checksum = '098f6bcd4621d373cade4e832627b4f6'; + $release = '05a671c66aefea124cc08b76ea6d30bb'; + $record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum, 'release' => $release)); + $handler->handle($record); + + $this->assertEquals($checksum, $ravenClient->lastData['checksum']); + $this->assertEquals($release, $ravenClient->lastData['release']); + } + public function testUserContext() { $ravenClient = $this->getRavenClient(); $handler = $this->getHandler($ravenClient); + $recordWithNoContext = $this->getRecord(Logger::INFO, 'test with default user context'); + // set user context 'externally' + $user = array( 'id' => '123', 'email' => 'test@test.com' ); - $record = $this->getRecord(Logger::INFO, "test", array('user' => $user)); - $handler->handle($record); - $this->assertEquals($user, $ravenClient->context->user); + $recordWithContext = $this->getRecord(Logger::INFO, 'test', array('user' => $user)); + + $ravenClient->user_context(array('id' => 'test_user_id')); + // handle context + $handler->handle($recordWithContext); + $this->assertEquals($user, $ravenClient->lastData['user']); + + // check to see if its reset + $handler->handle($recordWithNoContext); + $this->assertInternalType('array', $ravenClient->context->user); + $this->assertSame('test_user_id', $ravenClient->context->user['id']); - $secondRecord = $this->getRecord(Logger::INFO, "test without user"); + // handle with null context + $ravenClient->user_context(null); + $handler->handle($recordWithContext); + $this->assertEquals($user, $ravenClient->lastData['user']); - $handler->handle($secondRecord); + // check to see if its reset + $handler->handle($recordWithNoContext); $this->assertNull($ravenClient->context->user); } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php old mode 100755 new mode 100644 index 3629f8a..97e0d94 --- a/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php @@ -68,4 +68,60 @@ public function testRedisHandle() $handler->setFormatter(new LineFormatter("%message%")); $handler->handle($record); } + + public function testRedisHandleCapped() + { + $redis = $this->getMock('Redis', array('multi', 'rpush', 'ltrim', 'execute')); + + // Redis uses multi + $redis->expects($this->once()) + ->method('multi') + ->will($this->returnSelf()); + + $redis->expects($this->once()) + ->method('rpush') + ->will($this->returnSelf()); + + $redis->expects($this->once()) + ->method('ltrim') + ->will($this->returnSelf()); + + $redis->expects($this->once()) + ->method('execute') + ->will($this->returnSelf()); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); + $handler->setFormatter(new LineFormatter("%message%")); + $handler->handle($record); + } + + public function testPredisHandleCapped() + { + $redis = $this->getMock('Predis\Client', array('transaction')); + + $redisTransaction = $this->getMock('Predis\Client', array('rpush', 'ltrim')); + + $redisTransaction->expects($this->once()) + ->method('rpush') + ->will($this->returnSelf()); + + $redisTransaction->expects($this->once()) + ->method('ltrim') + ->will($this->returnSelf()); + + // Redis uses multi + $redis->expects($this->once()) + ->method('transaction') + ->will($this->returnCallback(function ($cb) use ($redisTransaction) { + $cb($redisTransaction); + })); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); + $handler->setFormatter(new LineFormatter("%message%")); + $handler->handle($record); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php old mode 100755 new mode 100644 index 44d3d9f..b1e22fb --- a/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php @@ -112,7 +112,57 @@ public function testWriteInvalidResource() */ public function testWriteNonExistingResource() { - $handler = new StreamHandler('/foo/bar/baz/'.rand(0, 10000)); + $handler = new StreamHandler('ftp://foo/bar/baz/'.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingPath() + { + $handler = new StreamHandler(sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingFileResource() + { + $handler = new StreamHandler('file://'.sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @expectedException Exception + * @expectedExceptionMessageRegExp /There is no existing directory at/ + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingAndNotCreatablePath() + { + if (defined('PHP_WINDOWS_VERSION_BUILD')) { + $this->markTestSkipped('Permissions checks can not run on windows'); + } + $handler = new StreamHandler('/foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @expectedException Exception + * @expectedExceptionMessageRegExp /There is no existing directory at/ + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingAndNotCreatableFileResource() + { + if (defined('PHP_WINDOWS_VERSION_BUILD')) { + $this->markTestSkipped('Permissions checks can not run on windows'); + } + $handler = new StreamHandler('file:///foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); $handler->handle($this->getRecord()); } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php old mode 100755 new mode 100644 index ac88522..55e69c2 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php @@ -62,4 +62,18 @@ public function testMessageCanBeCustomizedGivenLoggedData() ); $handler->handleBatch($records); } + + public function testMessageHaveUniqueId() { + $messageTemplate = \Swift_Message::newInstance(); + $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); + + $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage'); + $method->setAccessible(true); + $method->invokeArgs($handler, array($messageTemplate, array())); + + $builtMessage1 = $method->invoke($handler, $messageTemplate, array()); + $builtMessage2 = $method->invoke($handler, $messageTemplate, array()); + + $this->assertFalse($builtMessage1->getId() === $builtMessage2->getId(), 'Two different messages have the same id'); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php old mode 100755 new mode 100644 index 801d80a..75cc4a8 --- a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php @@ -26,14 +26,24 @@ public function testHandler($method, $level) { $handler = new TestHandler; $record = $this->getRecord($level, 'test'.$method); - $this->assertFalse($handler->{'has'.$method}($record)); - $this->assertFalse($handler->{'has'.$method.'Records'}()); + $this->assertFalse($handler->{'has'.$method}($record), 'has'.$method); + $this->assertFalse($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains'); + $this->assertFalse($handler->{'has'.$method.'ThatPasses'}(function ($rec) { + return true; + }), 'has'.$method.'ThatPasses'); + $this->assertFalse($handler->{'has'.$method.'ThatMatches'}('/test\w+/')); + $this->assertFalse($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records'); $handler->handle($record); - $this->assertFalse($handler->{'has'.$method}('bar')); - $this->assertTrue($handler->{'has'.$method}($record)); - $this->assertTrue($handler->{'has'.$method}('test'.$method)); - $this->assertTrue($handler->{'has'.$method.'Records'}()); + $this->assertFalse($handler->{'has'.$method}('bar'), 'has'.$method); + $this->assertTrue($handler->{'has'.$method}($record), 'has'.$method); + $this->assertTrue($handler->{'has'.$method}('test'.$method), 'has'.$method); + $this->assertTrue($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains'); + $this->assertTrue($handler->{'has'.$method.'ThatPasses'}(function ($rec) { + return true; + }), 'has'.$method.'ThatPasses'); + $this->assertTrue($handler->{'has'.$method.'ThatMatches'}('/test\w+/')); + $this->assertTrue($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records'); $records = $handler->getRecords(); unset($records[0]['formatted']); diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php old mode 100755 new mode 100644 index bcaf52b..fa524d0 --- a/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\TestCase; +use Monolog\Handler\SyslogUdp\UdpSocket; /** * @requires extension sockets @@ -43,4 +44,21 @@ public function testLongMessagesAreTruncated() $socket->write($longString, "HEADER"); } + + public function testDoubleCloseDoesNotError() + { + $socket = new UdpSocket('127.0.0.1', 514); + $socket->close(); + $socket->close(); + } + + /** + * @expectedException LogicException + */ + public function testWriteAfterCloseErrors() + { + $socket = new UdpSocket('127.0.0.1', 514); + $socket->close(); + $socket->write('foo', "HEADER"); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php old mode 100755 new mode 100644 index 7a19c0b..b9ba6e9 --- a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php @@ -33,6 +33,21 @@ public function testGetLevelName() $this->assertEquals('ERROR', Logger::getLevelName(Logger::ERROR)); } + /** + * @covers Monolog\Logger::toMonologLevel + */ + public function testConvertPSR3ToMonologLevel() + { + $this->assertEquals(Logger::toMonologLevel('debug'), 100); + $this->assertEquals(Logger::toMonologLevel('info'), 200); + $this->assertEquals(Logger::toMonologLevel('notice'), 250); + $this->assertEquals(Logger::toMonologLevel('warning'), 300); + $this->assertEquals(Logger::toMonologLevel('error'), 400); + $this->assertEquals(Logger::toMonologLevel('critical'), 500); + $this->assertEquals(Logger::toMonologLevel('alert'), 550); + $this->assertEquals(Logger::toMonologLevel('emergency'), 600); + } + /** * @covers Monolog\Logger::getLevelName * @expectedException InvalidArgumentException @@ -124,6 +139,30 @@ public function testPushPopHandler() $logger->popHandler(); } + /** + * @covers Monolog\Logger::setHandlers + */ + public function testSetHandlers() + { + $logger = new Logger(__METHOD__); + $handler1 = new TestHandler; + $handler2 = new TestHandler; + + $logger->pushHandler($handler1); + $logger->setHandlers(array($handler2)); + + // handler1 has been removed + $this->assertEquals(array($handler2), $logger->getHandlers()); + + $logger->setHandlers(array( + "AMapKey" => $handler1, + "Woop" => $handler2, + )); + + // Keys have been scrubbed + $this->assertEquals(array($handler1, $handler2), $logger->getHandlers()); + } + /** * @covers Monolog\Logger::pushProcessor * @covers Monolog\Logger::popProcessor @@ -406,4 +445,27 @@ public function logMethodProvider() array('emerg', Logger::EMERGENCY), ); } + + /** + * @dataProvider setTimezoneProvider + * @covers Monolog\Logger::setTimezone + */ + public function testSetTimezone($tz) + { + Logger::setTimezone($tz); + $logger = new Logger('foo'); + $handler = new TestHandler; + $logger->pushHandler($handler); + $logger->info('test'); + list($record) = $handler->getRecords(); + $this->assertEquals($tz, $record['datetime']->getTimezone()); + } + + public function setTimezoneProvider() + { + return array_map( + function ($tz) { return array(new \DateTimeZone($tz)); }, + \DateTimeZone::listIdentifiers() + ); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php old mode 100755 new mode 100644 index 2ea075b..0dd411d --- a/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php @@ -49,7 +49,7 @@ public function testProcessorFromClass() list($record) = $handler->getRecords(); $this->assertEquals(__FILE__, $record['extra']['file']); $this->assertEquals(18, $record['extra']['line']); - $this->assertEquals('Acme\Tester', $record['extra']['user']); + $this->assertEquals('Acme\Tester', $record['extra']['class']); $this->assertEquals('test', $record['extra']['function']); } @@ -60,7 +60,7 @@ public function testProcessorFromFunc() list($record) = $handler->getRecords(); $this->assertEquals(__FILE__, $record['extra']['file']); $this->assertEquals(24, $record['extra']['line']); - $this->assertEquals(null, $record['extra']['user']); + $this->assertEquals(null, $record['extra']['class']); $this->assertEquals('Acme\tester', $record['extra']['function']); } @@ -90,7 +90,7 @@ public function testLevelEqual() $expected['extra'] = array( 'file' => null, 'line' => null, - 'user' => 'ReflectionMethod', + 'class' => 'ReflectionMethod', 'function' => 'invokeArgs', ); @@ -111,7 +111,7 @@ public function testLevelHigher() $expected['extra'] = array( 'file' => null, 'line' => null, - 'user' => 'ReflectionMethod', + 'class' => 'ReflectionMethod', 'function' => 'invokeArgs', ); diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php old mode 100755 new mode 100644 index 851a9dc..0d860c6 --- a/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php @@ -26,4 +26,24 @@ public function testProcessor() $this->assertEquals($tags, $record['extra']['tags']); } + + /** + * @covers Monolog\Processor\TagProcessor::__invoke + */ + public function testProcessorTagModification() + { + $tags = array(1, 2, 3); + $processor = new TagProcessor($tags); + + $record = $processor($this->getRecord()); + $this->assertEquals($tags, $record['extra']['tags']); + + $processor->setTags(array('a', 'b')); + $record = $processor($this->getRecord()); + $this->assertEquals(array('a', 'b'), $record['extra']['tags']); + + $processor->addTags(array('a', 'c', 'foo' => 'bar')); + $record = $processor($this->getRecord()); + $this->assertEquals(array('a', 'b', 'a', 'c', 'foo' => 'bar'), $record['extra']['tags']); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php old mode 100755 new mode 100644 index 7ced62c..befad95 --- a/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php @@ -24,4 +24,9 @@ public function testProcessor() $record = $processor($this->getRecord()); $this->assertArrayHasKey('uid', $record['extra']); } + public function testGetUid() + { + $processor = new UidProcessor(10); + $this->assertEquals(10, strlen($processor->getUid())); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php b/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/Monolog/RegistryTest.php b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php old mode 100755 new mode 100644 index 29925f8..15fdfbd --- a/vendor/monolog/monolog/tests/Monolog/RegistryTest.php +++ b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php @@ -11,7 +11,6 @@ namespace Monolog; - class RegistryTest extends \PHPUnit_Framework_TestCase { protected function setUp() @@ -60,4 +59,95 @@ public function hasLoggerProvider() ), ); } + + /** + * @covers Monolog\Registry::clear + */ + public function testClearClears() + { + Registry::addLogger(new Logger('test1'), 'log'); + Registry::clear(); + + $this->setExpectedException('\InvalidArgumentException'); + Registry::getInstance('log'); + } + + /** + * @dataProvider removedLoggerProvider + * @covers Monolog\Registry::addLogger + * @covers Monolog\Registry::removeLogger + */ + public function testRemovesLogger($loggerToAdd, $remove) + { + Registry::addLogger($loggerToAdd); + Registry::removeLogger($remove); + + $this->setExpectedException('\InvalidArgumentException'); + Registry::getInstance($loggerToAdd->getName()); + } + + public function removedLoggerProvider() + { + $logger1 = new Logger('test1'); + + return array( + array($logger1, $logger1), + array($logger1, 'test1'), + ); + } + + /** + * @covers Monolog\Registry::addLogger + * @covers Monolog\Registry::getInstance + * @covers Monolog\Registry::__callStatic + */ + public function testGetsSameLogger() + { + $logger1 = new Logger('test1'); + $logger2 = new Logger('test2'); + + Registry::addLogger($logger1, 'test1'); + Registry::addLogger($logger2); + + $this->assertSame($logger1, Registry::getInstance('test1')); + $this->assertSame($logger2, Registry::test2()); + } + + /** + * @expectedException \InvalidArgumentException + * @covers Monolog\Registry::getInstance + */ + public function testFailsOnNonExistantLogger() + { + Registry::getInstance('test1'); + } + + /** + * @covers Monolog\Registry::addLogger + */ + public function testReplacesLogger() + { + $log1 = new Logger('test1'); + $log2 = new Logger('test2'); + + Registry::addLogger($log1, 'log'); + + Registry::addLogger($log2, 'log', true); + + $this->assertSame($log2, Registry::getInstance('log')); + } + + /** + * @expectedException \InvalidArgumentException + * @covers Monolog\Registry::addLogger + */ + public function testFailsOnUnspecifiedReplacement() + { + $log1 = new Logger('test1'); + $log2 = new Logger('test2'); + + Registry::addLogger($log1, 'log'); + + Registry::addLogger($log2, 'log'); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/TestCase.php b/vendor/monolog/monolog/tests/Monolog/TestCase.php old mode 100755 new mode 100644 diff --git a/vendor/monolog/monolog/tests/bootstrap.php b/vendor/monolog/monolog/tests/bootstrap.php deleted file mode 100755 index b78740e..0000000 --- a/vendor/monolog/monolog/tests/bootstrap.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -$loader = require __DIR__ . "/../vendor/autoload.php"; -$loader->addPsr4('Monolog\\', __DIR__.'/Monolog'); - -date_default_timezone_set('UTC'); diff --git a/vendor/pimple/pimple/.gitignore b/vendor/pimple/pimple/.gitignore old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/.travis.yml b/vendor/pimple/pimple/.travis.yml old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/CHANGELOG b/vendor/pimple/pimple/CHANGELOG old mode 100755 new mode 100644 index 776a915..cc67997 --- a/vendor/pimple/pimple/CHANGELOG +++ b/vendor/pimple/pimple/CHANGELOG @@ -1,3 +1,13 @@ +* 3.0.2 (2015-09-11) + + * refactored the C extension + * minor non-significant changes + +* 3.0.1 (2015-07-30) + + * simplified some code + * fixed a segfault in the C extension + * 3.0.0 (2014-07-24) * removed the Pimple class alias (use Pimple\Container instead) diff --git a/vendor/pimple/pimple/LICENSE b/vendor/pimple/pimple/LICENSE old mode 100755 new mode 100644 index 86b4721..d7949e2 --- a/vendor/pimple/pimple/LICENSE +++ b/vendor/pimple/pimple/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2009-2014 Fabien Potencier +Copyright (c) 2009-2015 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/pimple/pimple/README.rst b/vendor/pimple/pimple/README.rst old mode 100755 new mode 100644 index c345b6a..93fb35a --- a/vendor/pimple/pimple/README.rst +++ b/vendor/pimple/pimple/README.rst @@ -23,7 +23,8 @@ Alternatively, Pimple is also available as a PHP C extension: .. code-block:: bash - $ cd ext/pimple + $ git clone https://github.com/silexphp/Pimple + $ cd Pimple/ext/pimple $ phpize $ ./configure $ make @@ -151,7 +152,7 @@ run on your service just after it is created: $storage->...(); return $storage; - }; + }); The first argument is the name of the service to extend, the second a function that gets access to the object instance and the container. @@ -197,4 +198,4 @@ raw access to this function, you can use the ``raw()`` method: $sessionFunction = $container->raw('session'); -.. _Pimple 1.x documentation: https://github.com/fabpot/Pimple/tree/1.1 +.. _Pimple 1.x documentation: https://github.com/silexphp/Pimple/tree/1.1 diff --git a/vendor/pimple/pimple/composer.json b/vendor/pimple/pimple/composer.json old mode 100755 new mode 100644 index 3474eb8..a5268f1 --- a/vendor/pimple/pimple/composer.json +++ b/vendor/pimple/pimple/composer.json @@ -1,7 +1,7 @@ { "name": "pimple/pimple", "type": "library", - "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", + "description": "Pimple, a simple Dependency Injection Container", "keywords": ["dependency injection", "container"], "homepage": "http://pimple.sensiolabs.org", "license": "MIT", diff --git a/vendor/pimple/pimple/ext/pimple/.gitignore b/vendor/pimple/pimple/ext/pimple/.gitignore old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/README.md b/vendor/pimple/pimple/ext/pimple/README.md old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/config.m4 b/vendor/pimple/pimple/ext/pimple/config.m4 old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/config.w32 b/vendor/pimple/pimple/ext/pimple/config.w32 old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/php_pimple.h b/vendor/pimple/pimple/ext/pimple/php_pimple.h old mode 100755 new mode 100644 index 359f713..49431f0 --- a/vendor/pimple/pimple/ext/pimple/php_pimple.h +++ b/vendor/pimple/pimple/ext/pimple/php_pimple.h @@ -41,16 +41,15 @@ extern zend_module_entry pimple_module_entry; #include "TSRM.h" #endif -#define PIMPLE_VERSION "3.0.0" +#define PIMPLE_VERSION "3.0.2" #define PIMPLE_NS "Pimple" #define PIMPLE_DEFAULT_ZVAL_CACHE_NUM 5 #define PIMPLE_DEFAULT_ZVAL_VALUES_NUM 10 +zend_module_entry *get_module(void); + PHP_MINIT_FUNCTION(pimple); -PHP_MSHUTDOWN_FUNCTION(pimple); -PHP_RINIT_FUNCTION(pimple); -PHP_RSHUTDOWN_FUNCTION(pimple); PHP_MINFO_FUNCTION(pimple); PHP_METHOD(Pimple, __construct); @@ -65,18 +64,18 @@ PHP_METHOD(Pimple, offsetUnset); PHP_METHOD(Pimple, offsetGet); PHP_METHOD(Pimple, offsetExists); -PHP_METHOD(PimpleClosure, __invoke); +PHP_METHOD(PimpleClosure, invoker); typedef struct _pimple_bucket_value { zval *value; /* Must be the first element */ zval *raw; - zend_fcall_info_cache *fcc; zend_object_handle handle_num; enum { PIMPLE_IS_PARAM = 0, PIMPLE_IS_SERVICE = 2 } type; zend_bool initialized; + zend_fcall_info_cache fcc; } pimple_bucket_value; typedef struct _pimple_object { @@ -97,7 +96,6 @@ static const char sensiolabs_logo[] = "fcc->object_ptr; \ + fci.object_ptr = retval->fcc.object_ptr; \ fci.function_name = retval->value; \ fci.no_separation = 1; \ fci.retval_ptr_ptr = &retval_ptr_ptr; \ \ - zend_call_function(&fci, retval->fcc TSRMLS_CC); \ + zend_call_function(&fci, &retval->fcc TSRMLS_CC); \ efree(fci.params); \ if (EG(exception)) { \ return EG(uninitialized_zval_ptr); \ @@ -136,10 +138,6 @@ ZEND_ARG_OBJ_INFO(0, provider, Pimple\\ServiceProviderInterface, 0) ZEND_ARG_ARRAY_INFO(0, values, 1) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_pimpleclosure___invoke, 0, 0, 1) -ZEND_ARG_INFO(0, callarg) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_serviceprovider_register, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, pimple, Pimple\\Container, 0) ZEND_END_ARG_INFO() @@ -160,11 +158,6 @@ static const zend_function_entry pimple_ce_functions[] = { PHP_FE_END }; -static const zend_function_entry pimple_closure_ce_functions[] = { - PHP_ME(PimpleClosure, __invoke, arginfo_pimpleclosure___invoke, ZEND_ACC_PRIVATE) - PHP_FE_END -}; - static const zend_function_entry pimple_serviceprovider_iface_ce_functions[] = { PHP_ABSTRACT_ME(ServiceProviderInterface, register, arginfo_serviceprovider_register) PHP_FE_END @@ -193,10 +186,6 @@ static void pimple_free_object_storage(pimple_object *obj TSRMLS_DC) static void pimple_free_bucket(pimple_bucket_value *bucket) { - if (bucket->fcc) { - efree(bucket->fcc); - bucket->fcc = NULL; - } if (bucket->raw) { zval_ptr_dtor(&bucket->raw); } @@ -224,6 +213,15 @@ static zend_function *pimple_closure_get_constructor(zval *obj TSRMLS_DC) return NULL; } +static int pimple_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, union _zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC) +{ + *zobj_ptr = obj; + *ce_ptr = Z_OBJCE_P(obj); + *fptr_ptr = (zend_function *)&pimple_closure_invoker_function; + + return SUCCESS; +} + static zend_object_value pimple_object_create(zend_class_entry *ce TSRMLS_DC) { zend_object_value retval; @@ -252,7 +250,6 @@ static void pimple_object_write_dimension(zval *object, zval *offset, zval *valu pimple_bucket_value pimple_value = {0}, *found_value = NULL; ulong hash; - pimple_init_bucket(&pimple_value); pimple_zval_to_pimpleval(value, &pimple_value TSRMLS_CC); if (!offset) {/* $p[] = 'foo' when not overloaded */ @@ -451,24 +448,18 @@ static int pimple_zval_is_valid_callback(zval *_zval, pimple_bucket_value *_pimp return FAILURE; } - if (_pimple_bucket_value->fcc->called_scope) { + if (_pimple_bucket_value->fcc.called_scope) { return SUCCESS; } - if (Z_OBJ_HANDLER_P(_zval, get_closure) && Z_OBJ_HANDLER_P(_zval, get_closure)(_zval, &_pimple_bucket_value->fcc->calling_scope, &_pimple_bucket_value->fcc->function_handler, &_pimple_bucket_value->fcc->object_ptr TSRMLS_CC) == SUCCESS) { - _pimple_bucket_value->fcc->called_scope = _pimple_bucket_value->fcc->calling_scope; + if (Z_OBJ_HANDLER_P(_zval, get_closure) && Z_OBJ_HANDLER_P(_zval, get_closure)(_zval, &_pimple_bucket_value->fcc.calling_scope, &_pimple_bucket_value->fcc.function_handler, &_pimple_bucket_value->fcc.object_ptr TSRMLS_CC) == SUCCESS) { + _pimple_bucket_value->fcc.called_scope = _pimple_bucket_value->fcc.calling_scope; return SUCCESS; } else { return FAILURE; } } -static void pimple_init_bucket(pimple_bucket_value *bucket) -{ - memset(bucket, 0, sizeof(pimple_bucket_value)); - bucket->fcc = ecalloc(1, sizeof(zend_fcall_info_cache)); -} - static int pimple_zval_to_pimpleval(zval *_zval, pimple_bucket_value *_pimple_bucket_value TSRMLS_DC) { _pimple_bucket_value->value = _zval; @@ -501,8 +492,6 @@ PHP_METHOD(Pimple, protect) return; } - pimple_init_bucket(&bucket); - if (pimple_zval_is_valid_callback(protected, &bucket TSRMLS_CC) == FAILURE) { pimple_free_bucket(&bucket); zend_throw_exception(spl_ce_InvalidArgumentException, "Callable is not a Closure or invokable object.", 0 TSRMLS_CC); @@ -513,6 +502,7 @@ PHP_METHOD(Pimple, protect) pobj = (pimple_object *)zend_object_store_get_object(getThis() TSRMLS_CC); if (zend_hash_index_update(&pobj->protected, bucket.handle_num, (void *)&bucket, sizeof(pimple_bucket_value), NULL) == SUCCESS) { + Z_ADDREF_P(protected); RETURN_ZVAL(protected, 1 , 0); } else { pimple_free_bucket(&bucket); @@ -611,8 +601,6 @@ PHP_METHOD(Pimple, extend) zend_error(E_WARNING, "Unsupported offset type"); } - pimple_init_bucket(&bucket); - if (pimple_zval_is_valid_callback(callable, &bucket TSRMLS_CC) == FAILURE) { pimple_free_bucket(&bucket); zend_throw_exception(spl_ce_InvalidArgumentException, "Extension service definition is not a Closure or invokable object.", 0 TSRMLS_CC); @@ -630,7 +618,6 @@ PHP_METHOD(Pimple, extend) Z_ADDREF_P(value->value); if (zend_hash_index_exists(&pobj->factories, value->handle_num)) { - pimple_init_bucket(&bucket); pimple_zval_to_pimpleval(pimple_closure_obj, &bucket TSRMLS_CC); zend_hash_index_del(&pobj->factories, value->handle_num); zend_hash_index_update(&pobj->factories, bucket.handle_num, (void *)&bucket, sizeof(pimple_bucket_value), NULL); @@ -687,8 +674,6 @@ PHP_METHOD(Pimple, factory) return; } - pimple_init_bucket(&bucket); - if (pimple_zval_is_valid_callback(factory, &bucket TSRMLS_CC) == FAILURE) { pimple_free_bucket(&bucket); zend_throw_exception(spl_ce_InvalidArgumentException, "Service definition is not a Closure or invokable object.", 0 TSRMLS_CC); @@ -768,6 +753,8 @@ PHP_METHOD(Pimple, register) return; } + RETVAL_ZVAL(getThis(), 1, 0); + zend_call_method_with_1_params(&provider, Z_OBJCE_P(provider), NULL, "register", &retval, getThis()); if (retval) { @@ -785,13 +772,11 @@ PHP_METHOD(Pimple, register) pimple_object_write_dimension(getThis(), &key, *data TSRMLS_CC); zend_hash_move_forward_ex(array, &pos); } - - RETVAL_ZVAL(getThis(), 1, 0); } PHP_METHOD(Pimple, __construct) { - zval *values = NULL, **pData = NULL, offset = {0}; + zval *values = NULL, **pData = NULL, offset; HashPosition pos; char *str_index = NULL; zend_uint str_length; @@ -805,6 +790,7 @@ PHP_METHOD(Pimple, __construct) while (zend_hash_has_more_elements_ex(Z_ARRVAL_P(values), &pos) == SUCCESS) { zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&pData, &pos); zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &str_index, &str_length, &num_index, 0, &pos); + INIT_ZVAL(offset); if (zend_hash_get_current_key_type_ex(Z_ARRVAL_P(values), &pos) == HASH_KEY_IS_LONG) { ZVAL_LONG(&offset, num_index); } else { @@ -823,7 +809,7 @@ PHP_METHOD(Pimple, __construct) }; */ -PHP_METHOD(PimpleClosure, __invoke) +PHP_METHOD(PimpleClosure, invoker) { pimple_closure_object *pcobj = NULL; zval *arg = NULL, *retval = NULL, *newretval = NULL; @@ -865,6 +851,7 @@ PHP_METHOD(PimpleClosure, __invoke) efree(fci.params); zval_ptr_dtor(&retval); + RETVAL_ZVAL(newretval, 1 ,1); } @@ -872,7 +859,7 @@ PHP_MINIT_FUNCTION(pimple) { zend_class_entry tmp_pimple_ce, tmp_pimple_closure_ce, tmp_pimple_serviceprovider_iface_ce; INIT_NS_CLASS_ENTRY(tmp_pimple_ce, PIMPLE_NS, "Container", pimple_ce_functions); - INIT_NS_CLASS_ENTRY(tmp_pimple_closure_ce, PIMPLE_NS, "ContainerClosure", pimple_closure_ce_functions); + INIT_NS_CLASS_ENTRY(tmp_pimple_closure_ce, PIMPLE_NS, "ContainerClosure", NULL); INIT_NS_CLASS_ENTRY(tmp_pimple_serviceprovider_iface_ce, PIMPLE_NS, "ServiceProviderInterface", pimple_serviceprovider_iface_ce_functions); tmp_pimple_ce.create_object = pimple_object_create; @@ -886,24 +873,19 @@ PHP_MINIT_FUNCTION(pimple) pimple_serviceprovider_ce = zend_register_internal_interface(&tmp_pimple_serviceprovider_iface_ce TSRMLS_CC); - pimple_closure_object_handlers = std_object_handlers; - pimple_object_handlers = std_object_handlers; - - return SUCCESS; -} - -PHP_MSHUTDOWN_FUNCTION(pimple) -{ - return SUCCESS; -} + memcpy(&pimple_closure_object_handlers, zend_get_std_object_handlers(), sizeof(*zend_get_std_object_handlers())); + pimple_object_handlers = std_object_handlers; + pimple_closure_object_handlers.get_closure = pimple_closure_get_closure; -PHP_RINIT_FUNCTION(pimple) -{ - return SUCCESS; -} + pimple_closure_invoker_function.function_name = "Pimple closure internal invoker"; + pimple_closure_invoker_function.fn_flags |= ZEND_ACC_CLOSURE; + pimple_closure_invoker_function.handler = ZEND_MN(PimpleClosure_invoker); + pimple_closure_invoker_function.num_args = 1; + pimple_closure_invoker_function.required_num_args = 1; + pimple_closure_invoker_function.scope = pimple_closure_ce; + pimple_closure_invoker_function.type = ZEND_INTERNAL_FUNCTION; + pimple_closure_invoker_function.module = &pimple_module_entry; -PHP_RSHUTDOWN_FUNCTION(pimple) -{ return SUCCESS; } @@ -927,9 +909,9 @@ zend_module_entry pimple_module_entry = { "pimple", NULL, PHP_MINIT(pimple), - PHP_MSHUTDOWN(pimple), - PHP_RINIT(pimple), - PHP_RSHUTDOWN(pimple), + NULL, + NULL, + NULL, PHP_MINFO(pimple), PIMPLE_VERSION, STANDARD_MODULE_PROPERTIES diff --git a/vendor/pimple/pimple/ext/pimple/pimple_compat.h b/vendor/pimple/pimple/ext/pimple/pimple_compat.h old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/001.phpt b/vendor/pimple/pimple/ext/pimple/tests/001.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/002.phpt b/vendor/pimple/pimple/ext/pimple/tests/002.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/003.phpt b/vendor/pimple/pimple/ext/pimple/tests/003.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/004.phpt b/vendor/pimple/pimple/ext/pimple/tests/004.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/005.phpt b/vendor/pimple/pimple/ext/pimple/tests/005.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/006.phpt b/vendor/pimple/pimple/ext/pimple/tests/006.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/007.phpt b/vendor/pimple/pimple/ext/pimple/tests/007.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/008.phpt b/vendor/pimple/pimple/ext/pimple/tests/008.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/009.phpt b/vendor/pimple/pimple/ext/pimple/tests/009.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/010.phpt b/vendor/pimple/pimple/ext/pimple/tests/010.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/011.phpt b/vendor/pimple/pimple/ext/pimple/tests/011.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/012.phpt b/vendor/pimple/pimple/ext/pimple/tests/012.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/013.phpt b/vendor/pimple/pimple/ext/pimple/tests/013.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/014.phpt b/vendor/pimple/pimple/ext/pimple/tests/014.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/015.phpt b/vendor/pimple/pimple/ext/pimple/tests/015.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/016.phpt b/vendor/pimple/pimple/ext/pimple/tests/016.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/017.phpt b/vendor/pimple/pimple/ext/pimple/tests/017.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/017_1.phpt b/vendor/pimple/pimple/ext/pimple/tests/017_1.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/018.phpt b/vendor/pimple/pimple/ext/pimple/tests/018.phpt old mode 100755 new mode 100644 diff --git a/vendor/pimple/pimple/ext/pimple/tests/019.phpt b/vendor/pimple/pimple/ext/pimple/tests/019.phpt new file mode 100644 index 0000000..28a9aec --- /dev/null +++ b/vendor/pimple/pimple/ext/pimple/tests/019.phpt @@ -0,0 +1,18 @@ +--TEST-- +Test register() returns static and is a fluent interface +--SKIPIF-- + +--FILE-- +register(new Foo)); +--EXPECTF-- +bool(true) diff --git a/vendor/pimple/pimple/ext/pimple/tests/bench.phpb b/vendor/pimple/pimple/ext/pimple/tests/bench.phpb old mode 100755 new mode 100644 index 8ddd6e3..8f983e6 --- a/vendor/pimple/pimple/ext/pimple/tests/bench.phpb +++ b/vendor/pimple/pimple/ext/pimple/tests/bench.phpb @@ -1,7 +1,7 @@ register(new Fixtures\PimpleServiceProvider(), array( - 'anotherParameter' => 'anotherValue' + 'anotherParameter' => 'anotherValue', )); $this->assertEquals('value', $pimple['param']); diff --git a/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php b/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php old mode 100755 new mode 100644 index 30ca391..918f620 --- a/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php +++ b/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php @@ -99,7 +99,7 @@ public function testIsset() public function testConstructorInjection() { - $params = array("param" => "value"); + $params = array('param' => 'value'); $pimple = new Container($params); $this->assertSame($params['param'], $pimple['param']); @@ -184,6 +184,12 @@ public function testRawHonorsNullValues() $this->assertNull($pimple->raw('foo')); } + public function testFluentRegister() + { + $pimple = new Container(); + $this->assertSame($pimple, $pimple->register($this->getMock('Pimple\ServiceProviderInterface'))); + } + /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage Identifier "foo" is not defined. @@ -328,18 +334,18 @@ public function testExtendFailsForInvalidServiceDefinitions($service) } /** - * Provider for invalid service definitions + * Provider for invalid service definitions. */ public function badServiceDefinitionProvider() { return array( array(123), - array(new Fixtures\NonInvokable()) + array(new Fixtures\NonInvokable()), ); } /** - * Provider for service definitions + * Provider for service definitions. */ public function serviceDefinitionProvider() { @@ -350,7 +356,7 @@ public function serviceDefinitionProvider() return $service; }), - array(new Fixtures\Invokable()) + array(new Fixtures\Invokable()), ); } @@ -369,7 +375,7 @@ public function testDefiningNewServiceAfterFreeze() } /** - * @expectedException RuntimeException + * @expectedException \RuntimeException * @expectedExceptionMessage Cannot override frozen service "foo". */ public function testOverridingServiceAfterFreeze() diff --git a/vendor/psr/log/Psr/Log/LoggerTrait.php b/vendor/psr/log/Psr/Log/LoggerTrait.php index 0c50bca..47d6bff 100755 --- a/vendor/psr/log/Psr/Log/LoggerTrait.php +++ b/vendor/psr/log/Psr/Log/LoggerTrait.php @@ -4,7 +4,7 @@ /** * This is a simple Logger trait that classes unable to extend AbstractLogger - * (because they extend another user, etc) can include. + * (because they extend another database, etc) can include. * * It simply delegates all log-level-specific methods to the `log` method to * reduce boilerplate code that a simple Logger that does the same thing with diff --git a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php index 6720278..c6c9045 100755 --- a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +++ b/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php @@ -5,9 +5,9 @@ use Psr\Log\LogLevel; /** - * Provides a base test user for ensuring compliance with the LoggerInterface + * Provides a base test database for ensuring compliance with the LoggerInterface * - * Implementors can extend the user and implement abstract methods to run this as part of their test suite + * Implementors can extend the database and implement abstract methods to run this as part of their test suite */ abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase { @@ -36,8 +36,8 @@ public function testImplements() public function testLogsAtAllLevels($level, $message) { $logger = $this->getLogger(); - $logger->{$level}($message, array('user' => 'Bob')); - $logger->log($level, $message, array('user' => 'Bob')); + $logger->{$level}($message, array('database' => 'Bob')); + $logger->log($level, $message, array('database' => 'Bob')); $expected = array( $level.' message of level '.$level.' with context: Bob', @@ -49,14 +49,14 @@ public function testLogsAtAllLevels($level, $message) public function provideLevelsAndMessages() { return array( - LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), - LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), - LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), - LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), - LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), - LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), - LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), - LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'), + LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {database}'), + LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {database}'), + LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {database}'), + LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {database}'), + LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {database}'), + LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {database}'), + LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {database}'), + LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {database}'), ); } @@ -72,7 +72,7 @@ public function testThrowsOnInvalidLevel() public function testContextReplacement() { $logger = $this->getLogger(); - $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); + $logger->info('{Message {nothing} {database} {foo.bar} a}', array('database' => 'Bob', 'foo.bar' => 'Bar')); $expected = array('info {Message {nothing} Bob Bar a}'); $this->assertEquals($expected, $this->getLogs()); diff --git a/vendor/swiftmailer/swiftmailer/.gitattributes b/vendor/swiftmailer/swiftmailer/.gitattributes new file mode 100644 index 0000000..33b8efd --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/.gitattributes @@ -0,0 +1,9 @@ +*.crt -crlf +*.key -crlf +*.srl -crlf +*.pub -crlf +*.priv -crlf +*.txt -crlf + +# ignore /notes in the git-generated distributed .zip archive +/notes export-ignore diff --git a/vendor/swiftmailer/swiftmailer/.travis.yml b/vendor/swiftmailer/swiftmailer/.travis.yml new file mode 100644 index 0000000..cadee01 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/.travis.yml @@ -0,0 +1,25 @@ +language: php + +php: + - 5.3 + - 5.4 + - 5.5 + - 5.6 + - hhvm-nightly + +before_script: + - cp tests/acceptance.conf.php.default tests/acceptance.conf.php + - cp tests/smoke.conf.php.default tests/smoke.conf.php + - composer self-update + - composer update --no-interaction --prefer-source + - gem install mailcatcher + - mailcatcher --smtp-port 4456 + +script: + - phpunit --verbose + +matrix: + allow_failures: + - php: 5.6 + - php: hhvm-nightly + fast_finish: true diff --git a/vendor/swiftmailer/swiftmailer/CHANGES b/vendor/swiftmailer/swiftmailer/CHANGES new file mode 100644 index 0000000..7330acd --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/CHANGES @@ -0,0 +1,206 @@ +Changelog +========= + +5.4.1 (2015-06-06) +------------------ + + * made Swiftmailer exceptions confirm to PHP base exception constructor signature + * fixed MAIL FROM & RCPT TO headers to be RFC compliant + +5.4.0 (2015-03-14) +------------------ + + * added the possibility to add extra certs to PKCS#7 signature + * fix base64 encoding with streams + * added a new RESULT_SPOOLED status for SpoolTransport + * fixed getBody() on attachments when called more than once + * removed dots from generated filenames in filespool + +5.3.1 (2014-12-05) +------------------ + + * fixed cloning of messages with attachments + +5.3.0 (2014-10-04) +------------------ + + * fixed cloning when using signers + * reverted removal of Swift_Encoding + * drop support for PHP 5.2.x + +5.2.2 (2014-09-20) +------------------ + + * fixed Japanese support + * fixed the memory spool when the message changes when in the pool + * added support for cloning messages + * fixed PHP warning in the redirect plugin + * changed the way to and cc-ed email are sent to only use one transaction + +5.2.1 (2014-06-13) +------------------ + + * SECURITY FIX: fixed CLI escaping when using sendmail as a transport + + Prior to 5.2.1, the sendmail transport (Swift_Transport_SendmailTransport) + was vulnerable to an arbitrary shell execution if the "From" header came + from a non-trusted source and no "Return-Path" is configured. + + * fixed parameter in DKIMSigner + * fixed compatibility with PHP < 5.4 + +5.2.0 (2014-05-08) +------------------ + + * fixed Swift_ByteStream_FileByteStream::read() to match to the specification + * fixed from-charset and to-charset arguments in mbstring_convert_encoding() usages + * fixed infinite loop in StreamBuffer + * fixed NullTransport to return the number of ignored emails instead of 0 + * Use phpunit and mockery for unit testing (realityking) + +5.1.0 (2014-03-18) +------------------ + + * fixed data writing to stream when sending large messages + * added support for libopendkim (https://github.com/xdecock/php-opendkim) + * merged SignedMessage and Message + * added Gmail XOAuth2 authentication + * updated the list of known mime types + * added NTLM authentication + +5.0.3 (2013-12-03) +------------------ + + * fixed double-dot bug + * fixed DKIM signer + +5.0.2 (2013-08-30) +------------------ + + * handled correct exception type while reading IoBuffer output + +5.0.1 (2013-06-17) +------------------ + + * changed the spool to only start the transport when a mail has to be sent + * fixed compatibility with PHP 5.2 + * fixed LICENSE file + +5.0.0 (2013-04-30) +------------------ + + * changed the license from LGPL to MIT + +4.3.1 (2013-04-11) +------------------ + + * removed usage of the native QP encoder when the charset is not UTF-8 + * fixed usage of uniqid to avoid collisions + * made a performance improvement when tokenizing large headers + * fixed usage of the PHP native QP encoder on PHP 5.4.7+ + +4.3.0 (2013-01-08) +------------------ + + * made the temporary directory configurable via the TMPDIR env variable + * added S/MIME signer and encryption support + +4.2.2 (2012-10-25) +------------------ + + * added the possibility to throttle messages per second in ThrottlerPlugin (mostly for Amazon SES) + * switched mime.qpcontentencoder to automatically use the PHP native encoder on PHP 5.4.7+ + * allowed specifying a whitelist with regular expressions in RedirectingPlugin + +4.2.1 (2012-07-13) +------------------ + + * changed the coding standards to PSR-1/2 + * fixed issue with autoloading + * added NativeQpContentEncoder to enhance performance (for PHP 5.3+) + +4.2.0 (2012-06-29) +------------------ + + * added documentation about how to use the Japanese support introduced in 4.1.8 + * added a way to override the default configuration in a lazy way + * changed the PEAR init script to lazy-load the initialization + * fixed a bug when calling Swift_Preferences before anything else (regression introduced in 4.1.8) + +4.1.8 (2012-06-17) +------------------ + + * added Japanese iso-2022-jp support + * changed the init script to lazy-load the initialization + * fixed docblocks (@id) which caused some problems with libraries parsing the dobclocks + * fixed Swift_Mime_Headers_IdentificationHeader::setId() when passed an array of ids + * fixed encoding of email addresses in headers + * added replacements setter to the Decorator plugin + +4.1.7 (2012-04-26) +------------------ + + * fixed QpEncoder safeMapShareId property + +4.1.6 (2012-03-23) +------------------ + + * reduced the size of serialized Messages + +4.1.5 (2012-01-04) +------------------ + + * enforced Swift_Spool::queueMessage() to return a Boolean + * made an optimization to the memory spool: start the transport only when required + * prevented stream_socket_client() from generating an error and throw a Swift_TransportException instead + * fixed a PHP warning when calling to mail() when safe_mode is off + * many doc tweaks + +4.1.4 (2011-12-16) +------------------ + + * added a memory spool (Swift_MemorySpool) + * fixed too many opened files when sending emails with attachments + +4.1.3 (2011-10-27) +------------------ + + * added STARTTLS support + * added missing @return tags on fluent methods + * added a MessageLogger plugin that logs all sent messages + * added composer.json + +4.1.2 (2011-09-13) +------------------ + + * fixed wrong detection of magic_quotes_runtime + * fixed fatal errors when no To or Subject header has been set + * fixed charset on parameter header continuations + * added documentation about how to install Swiftmailer from the PEAR channel + * fixed various typos and markup problem in the documentation + * fixed warning when cache directory does not exist + * fixed "slashes are escaped" bug + * changed require_once() to require() in autoload + +4.1.1 (2011-07-04) +------------------ + + * added missing file in PEAR package + +4.1.0 (2011-06-30) +------------------ + + * documentation has been converted to ReST + +4.1.0 RC1 (2011-06-17) +---------------------- + +New features: + + * changed the Decorator Plugin to allow replacements in all headers + * added Swift_Mime_Grammar and Swift_Validate to validate an email address + * modified the autoloader to lazy-initialize Swiftmailer + * removed Swift_Mailer::batchSend() + * added NullTransport + * added new plugins: RedirectingPlugin and ImpersonatePlugin + * added a way to send messages asynchronously (Spool) diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE b/vendor/swiftmailer/swiftmailer/LICENSE old mode 100755 new mode 100644 similarity index 96% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE rename to vendor/swiftmailer/swiftmailer/LICENSE index 43028bc..674bb2a --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE +++ b/vendor/swiftmailer/swiftmailer/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2015 Fabien Potencier +Copyright (c) 2013 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/swiftmailer/swiftmailer/README b/vendor/swiftmailer/swiftmailer/README new file mode 100644 index 0000000..eb5f8bc --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/README @@ -0,0 +1,16 @@ +Swift Mailer +------------ + +Swift Mailer is a component based mailing solution for PHP 5. +It is released under the MIT license. + +Homepage: http://swiftmailer.org +Documentation: http://swiftmailer.org/docs +Mailing List: http://groups.google.com/group/swiftmailer +Bugs: https://github.com/swiftmailer/swiftmailer/issues +Repository: https://github.com/swiftmailer/swiftmailer + +Swift Mailer is highly object-oriented by design and lends itself +to use in complex web application with a great deal of flexibility. + +For full details on usage, see the documentation. diff --git a/vendor/swiftmailer/swiftmailer/VERSION b/vendor/swiftmailer/swiftmailer/VERSION new file mode 100644 index 0000000..e61a6df --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/VERSION @@ -0,0 +1 @@ +Swift-5.4.1 diff --git a/vendor/swiftmailer/swiftmailer/composer.json b/vendor/swiftmailer/swiftmailer/composer.json new file mode 100644 index 0000000..a7b5e44 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/composer.json @@ -0,0 +1,31 @@ +{ + "name": "swiftmailer/swiftmailer", + "type": "library", + "description": "Swiftmailer, free feature-rich PHP mailer", + "keywords": ["mail","mailer","email"], + "homepage": "http://swiftmailer.org", + "license": "MIT", + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1,<0.9.4" + }, + "autoload": { + "files": ["lib/swift_required.php"] + }, + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/doc/headers.rst b/vendor/swiftmailer/swiftmailer/doc/headers.rst new file mode 100644 index 0000000..6aec23f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/headers.rst @@ -0,0 +1,742 @@ +Message Headers +=============== + +Sometimes you'll want to add your own headers to a message or modify/remove +headers that are already present. You work with the message's HeaderSet to do +this. + +Header Basics +------------- + +All MIME entities in Swift Mailer -- including the message itself -- +store their headers in a single object called a HeaderSet. This HeaderSet is +retrieved with the ``getHeaders()`` method. + +As mentioned in the previous chapter, everything that forms a part of a message +in Swift Mailer is a MIME entity that is represented by an instance of +``Swift_Mime_MimeEntity``. This includes -- most notably -- the message object +itself, attachments, MIME parts and embedded images. Each of these MIME entities +consists of a body and a set of headers that describe the body. + +For all of the "standard" headers in these MIME entities, such as the +``Content-Type``, there are named methods for working with them, such as +``setContentType()`` and ``getContentType()``. This is because headers are a +moderately complex area of the library. Each header has a slightly different +required structure that it must meet in order to comply with the standards that +govern email (and that are checked by spam blockers etc). + +You fetch the HeaderSet from a MIME entity like so: + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + // Fetch the HeaderSet from a Message object + $headers = $message->getHeaders(); + + $attachment = Swift_Attachment::fromPath('document.pdf'); + + // Fetch the HeaderSet from an attachment object + $headers = $attachment->getHeaders(); + +The job of the HeaderSet is to contain and manage instances of Header objects. +Depending upon the MIME entity the HeaderSet came from, the contents of the +HeaderSet will be different, since an attachment for example has a different +set of headers to those in a message. + +You can find out what the HeaderSet contains with a quick loop, dumping out +the names of the headers: + +.. code-block:: php + + foreach ($headers->getAll() as $header) { + printf("%s
\n", $header->getFieldName()); + } + + /* + Content-Transfer-Encoding + Content-Type + MIME-Version + Date + Message-ID + From + Subject + To + */ + +You can also dump out the rendered HeaderSet by calling its ``toString()`` +method: + +.. code-block:: php + + echo $headers->toString(); + + /* + Message-ID: <1234869991.499a9ee7f1d5e@swift.generated> + Date: Tue, 17 Feb 2009 22:26:31 +1100 + Subject: Awesome subject! + From: sender@example.org + To: recipient@example.org + MIME-Version: 1.0 + Content-Type: text/plain; charset=utf-8 + Content-Transfer-Encoding: quoted-printable + */ + +Where the complexity comes in is when you want to modify an existing header. +This complexity comes from the fact that each header can be of a slightly +different type (such as a Date header, or a header that contains email +addresses, or a header that has key-value parameters on it!). Each header in the +HeaderSet is an instance of ``Swift_Mime_Header``. They all have common +functionality, but knowing exactly what type of header you're working with will +allow you a little more control. + +You can determine the type of header by comparing the return value of its +``getFieldType()`` method with the constants ``TYPE_TEXT``, +``TYPE_PARAMETERIZED``, ``TYPE_DATE``, ``TYPE_MAILBOX``, ``TYPE_ID`` and +``TYPE_PATH`` which are defined in ``Swift_Mime_Header``. + + +.. code-block:: php + + foreach ($headers->getAll() as $header) { + switch ($header->getFieldType()) { + case Swift_Mime_Header::TYPE_TEXT: $type = 'text'; + break; + case Swift_Mime_Header::TYPE_PARAMETERIZED: $type = 'parameterized'; + break; + case Swift_Mime_Header::TYPE_MAILBOX: $type = 'mailbox'; + break; + case Swift_Mime_Header::TYPE_DATE: $type = 'date'; + break; + case Swift_Mime_Header::TYPE_ID: $type = 'ID'; + break; + case Swift_Mime_Header::TYPE_PATH: $type = 'path'; + break; + } + printf("%s: is a %s header
\n", $header->getFieldName(), $type); + } + + /* + Content-Transfer-Encoding: is a text header + Content-Type: is a parameterized header + MIME-Version: is a text header + Date: is a date header + Message-ID: is a ID header + From: is a mailbox header + Subject: is a text header + To: is a mailbox header + */ + +Headers can be removed from the set, modified within the set, or added to the +set. + +The following sections show you how to work with the HeaderSet and explain the +details of each implementation of ``Swift_Mime_Header`` that may +exist within the HeaderSet. + +Header Types +------------ + +Because all headers are modeled on different data (dates, addresses, text!) +there are different types of Header in Swift Mailer. Swift Mailer attempts to +categorize all possible MIME headers into more general groups, defined by a +small number of classes. + +Text Headers +~~~~~~~~~~~~ + +Text headers are the simplest type of Header. They contain textual information +with no special information included within it -- for example the Subject +header in a message. + +There's nothing particularly interesting about a text header, though it is +probably the one you'd opt to use if you need to add a custom header to a +message. It represents text just like you'd think it does. If the text +contains characters that are not permitted in a message header (such as new +lines, or non-ascii characters) then the header takes care of encoding the +text so that it can be used. + +No header -- including text headers -- in Swift Mailer is vulnerable to +header-injection attacks. Swift Mailer breaks any attempt at header injection by +encoding the dangerous data into a non-dangerous form. + +It's easy to add a new text header to a HeaderSet. You do this by calling the +HeaderSet's ``addTextHeader()`` method. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $headers = $message->getHeaders(); + + $headers->addTextHeader('Your-Header-Name', 'the header value'); + +Changing the value of an existing text header is done by calling it's +``setValue()`` method. + +.. code-block:: php + + $subject = $message->getHeaders()->get('Subject'); + + $subject->setValue('new subject'); + +When output via ``toString()``, a text header produces something like the +following: + +.. code-block:: php + + $subject = $message->getHeaders()->get('Subject'); + + $subject->setValue('amazing subject line'); + + echo $subject->toString(); + + /* + + Subject: amazing subject line + + */ + +If the header contains any characters that are outside of the US-ASCII range +however, they will be encoded. This is nothing to be concerned about since +mail clients will decode them back. + +.. code-block:: php + + $subject = $message->getHeaders()->get('Subject'); + + $subject->setValue('contains – dash'); + + echo $subject->toString(); + + /* + + Subject: contains =?utf-8?Q?=E2=80=93?= dash + + */ + +Parameterized Headers +~~~~~~~~~~~~~~~~~~~~~ + +Parameterized headers are text headers that contain key-value parameters +following the textual content. The Content-Type header of a message is a +parameterized header since it contains charset information after the content +type. + +The parameterized header type is a special type of text header. It extends the +text header by allowing additional information to follow it. All of the methods +from text headers are available in addition to the methods described here. + +Adding a parameterized header to a HeaderSet is done by using the +``addParameterizedHeader()`` method which takes a text value like +``addTextHeader()`` but it also accepts an associative array of +key-value parameters. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $headers = $message->getHeaders(); + + $headers->addParameterizedHeader( + 'Header-Name', 'header value', + array('foo' => 'bar') + ); + +To change the text value of the header, call it's ``setValue()`` method just as +you do with text headers. + +To change the parameters in the header, call the header's ``setParameters()`` +method or the ``setParameter()`` method (note the pluralization). + +.. code-block:: php + + $type = $message->getHeaders()->get('Content-Type'); + + // setParameters() takes an associative array + $type->setParameters(array( + 'name' => 'file.txt', + 'charset' => 'iso-8859-1' + )); + + // setParameter() takes two args for $key and $value + $type->setParameter('charset', 'iso-8859-1'); + +When output via ``toString()``, a parameterized header produces something like +the following: + +.. code-block:: php + + $type = $message->getHeaders()->get('Content-Type'); + + $type->setValue('text/html'); + $type->setParameter('charset', 'utf-8'); + + echo $type->toString(); + + /* + + Content-Type: text/html; charset=utf-8 + + */ + +If the header contains any characters that are outside of the US-ASCII range +however, they will be encoded, just like they are for text headers. This is +nothing to be concerned about since mail clients will decode them back. +Likewise, if the parameters contain any non-ascii characters they will be +encoded so that they can be transmitted safely. + +.. code-block:: php + + $attachment = Swift_Attachment::newInstance(); + + $disp = $attachment->getHeaders()->get('Content-Disposition'); + + $disp->setValue('attachment'); + $disp->setParameter('filename', 'report–may.pdf'); + + echo $disp->toString(); + + /* + + Content-Disposition: attachment; filename*=utf-8''report%E2%80%93may.pdf + + */ + +Date Headers +~~~~~~~~~~~~ + +Date headers contains an RFC 2822 formatted date (i.e. what PHP's ``date('r')`` +returns). They are used anywhere a date or time is needed to be presented as a +message header. + +The data on which a date header is modeled is simply a UNIX timestamp such as +that returned by ``time()`` or ``strtotime()``. The timestamp is used to create +a correctly structured RFC 2822 formatted date such as +``Tue, 17 Feb 2009 22:26:31 +1100``. + +The obvious place this header type is used is in the ``Date:`` header of the +message itself. + +It's easy to add a new date header to a HeaderSet. You do this by calling +the HeaderSet's ``addDateHeader()`` method. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $headers = $message->getHeaders(); + + $headers->addDateHeader('Your-Header-Name', strtotime('3 days ago')); + +Changing the value of an existing date header is done by calling it's +``setTimestamp()`` method. + +.. code-block:: php + + $date = $message->getHeaders()->get('Date'); + + $date->setTimestamp(time()); + +When output via ``toString()``, a date header produces something like the +following: + +.. code-block:: php + + $date = $message->getHeaders()->get('Date'); + + echo $date->toString(); + + /* + + Date: Wed, 18 Feb 2009 13:35:02 +1100 + + */ + +Mailbox (e-mail address) Headers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Mailbox headers contain one or more email addresses, possibly with +personalized names attached to them. The data on which they are modeled is +represented by an associative array of email addresses and names. + +Mailbox headers are probably the most complex header type to understand in +Swift Mailer because they accept their input as an array which can take various +forms, as described in the previous chapter. + +All of the headers that contain e-mail addresses in a message -- with the +exception of ``Return-Path:`` which has a stricter syntax -- use this header +type. That is, ``To:``, ``From:`` etc. + +You add a new mailbox header to a HeaderSet by calling the HeaderSet's +``addMailboxHeader()`` method. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $headers = $message->getHeaders(); + + $headers->addMailboxHeader('Your-Header-Name', array( + 'person1@example.org' => 'Person Name One', + 'person2@example.org', + 'person3@example.org', + 'person4@example.org' => 'Another named person' + )); + +Changing the value of an existing mailbox header is done by calling it's +``setNameAddresses()`` method. + +.. code-block:: php + + $to = $message->getHeaders()->get('To'); + + $to->setNameAddresses(array( + 'joe@example.org' => 'Joe Bloggs', + 'john@example.org' => 'John Doe', + 'no-name@example.org' + )); + +If you don't wish to concern yourself with the complicated accepted input +formats accepted by ``setNameAddresses()`` as described in the previous chapter +and you only want to set one or more addresses (not names) then you can just +use the ``setAddresses()`` method instead. + +.. code-block:: php + + $to = $message->getHeaders()->get('To'); + + $to->setAddresses(array( + 'joe@example.org', + 'john@example.org', + 'no-name@example.org' + )); + +.. note:: + + Both methods will accept the above input format in practice. + +If all you want to do is set a single address in the header, you can use a +string as the input parameter to ``setAddresses()`` and/or +``setNameAddresses()``. + +.. code-block:: php + + $to = $message->getHeaders()->get('To'); + + $to->setAddresses('joe-bloggs@example.org'); + +When output via ``toString()``, a mailbox header produces something like the +following: + +.. code-block:: php + + $to = $message->getHeaders()->get('To'); + + $to->setNameAddresses(array( + 'person1@example.org' => 'Name of Person', + 'person2@example.org', + 'person3@example.org' => 'Another Person' + )); + + echo $to->toString(); + + /* + + To: Name of Person , person2@example.org, Another Person + + + */ + +ID Headers +~~~~~~~~~~ + +ID headers contain identifiers for the entity (or the message). The most +notable ID header is the Message-ID header on the message itself. + +An ID that exists inside an ID header looks more-or-less less like an email +address. For example, ``<1234955437.499becad62ec2@example.org>``. +The part to the left of the @ sign is usually unique, based on the current time +and some random factor. The part on the right is usually a domain name. + +Any ID passed to the header's ``setId()`` method absolutely MUST conform to +this structure, otherwise you'll get an Exception thrown at you by Swift Mailer +(a ``Swift_RfcComplianceException``). This is to ensure that the generated +email complies with relevant RFC documents and therefore is less likely to be +blocked as spam. + +It's easy to add a new ID header to a HeaderSet. You do this by calling +the HeaderSet's ``addIdHeader()`` method. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $headers = $message->getHeaders(); + + $headers->addIdHeader('Your-Header-Name', '123456.unqiue@example.org'); + +Changing the value of an existing date header is done by calling its +``setId()`` method. + +.. code-block:: php + + $msgId = $message->getHeaders()->get('Message-ID'); + + $msgId->setId(time() . '.' . uniqid('thing') . '@example.org'); + +When output via ``toString()``, an ID header produces something like the +following: + +.. code-block:: php + + $msgId = $message->getHeaders()->get('Message-ID'); + + echo $msgId->toString(); + + /* + + Message-ID: <1234955437.499becad62ec2@example.org> + + */ + +Path Headers +~~~~~~~~~~~~ + +Path headers are like very-restricted mailbox headers. They contain a single +email address with no associated name. The Return-Path header of a message is +a path header. + +You add a new path header to a HeaderSet by calling the HeaderSet's +``addPathHeader()`` method. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $headers = $message->getHeaders(); + + $headers->addPathHeader('Your-Header-Name', 'person@example.org'); + + +Changing the value of an existing path header is done by calling its +``setAddress()`` method. + +.. code-block:: php + + $return = $message->getHeaders()->get('Return-Path'); + + $return->setAddress('my-address@example.org'); + +When output via ``toString()``, a path header produces something like the +following: + +.. code-block:: php + + $return = $message->getHeaders()->get('Return-Path'); + + $return->setAddress('person@example.org'); + + echo $return->toString(); + + /* + + Return-Path: + + */ + +Header Operations +----------------- + +Working with the headers in a message involves knowing how to use the methods +on the HeaderSet and on the individual Headers within the HeaderSet. + +Adding new Headers +~~~~~~~~~~~~~~~~~~ + +New headers can be added to the HeaderSet by using one of the provided +``add..Header()`` methods. + +To add a header to a MIME entity (such as the message): + +Get the HeaderSet from the entity by via its ``getHeaders()`` method. + +* Add the header to the HeaderSet by calling one of the ``add..Header()`` + methods. + +The added header will appear in the message when it is sent. + +.. code-block:: php + + // Adding a custom header to a message + $message = Swift_Message::newInstance(); + $headers = $message->getHeaders(); + $headers->addTextHeader('X-Mine', 'something here'); + + // Adding a custom header to an attachment + $attachment = Swift_Attachment::fromPath('/path/to/doc.pdf'); + $attachment->getHeaders()->addDateHeader('X-Created-Time', time()); + +Retrieving Headers +~~~~~~~~~~~~~~~~~~ + +Headers are retrieved through the HeaderSet's ``get()`` and ``getAll()`` +methods. + +To get a header, or several headers from a MIME entity: + +* Get the HeaderSet from the entity by via its ``getHeaders()`` method. + +* Get the header(s) from the HeaderSet by calling either ``get()`` or + ``getAll()``. + +When using ``get()`` a single header is returned that matches the name (case +insensitive) that is passed to it. When using ``getAll()`` with a header name, +an array of headers with that name are returned. Calling ``getAll()`` with no +arguments returns an array of all headers present in the entity. + +.. note:: + + It's valid for some headers to appear more than once in a message (e.g. + the Received header). For this reason ``getAll()`` exists to fetch all + headers with a specified name. In addition, ``get()`` accepts an optional + numerical index, starting from zero to specify which header you want more + specifically. + +.. note:: + + If you want to modify the contents of the header and you don't know for + sure what type of header it is then you may need to check the type by + calling its ``getFieldType()`` method. + + .. code-block:: php + + $headers = $message->getHeaders(); + + // Get the To: header + $toHeader = $headers->get('To'); + + // Get all headers named "X-Foo" + $fooHeaders = $headers->getAll('X-Foo'); + + // Get the second header named "X-Foo" + $foo = $headers->get('X-Foo', 1); + + // Get all headers that are present + $all = $headers->getAll(); + +Check if a Header Exists +~~~~~~~~~~~~~~~~~~~~~~~~ + +You can check if a named header is present in a HeaderSet by calling its +``has()`` method. + +To check if a header exists: + +* Get the HeaderSet from the entity by via its ``getHeaders()`` method. + +* Call the HeaderSet's ``has()`` method specifying the header you're looking + for. + +If the header exists, ``true`` will be returned or ``false`` if not. + +.. note:: + + It's valid for some headers to appear more than once in a message (e.g. + the Received header). For this reason ``has()`` accepts an optional + numerical index, starting from zero to specify which header you want to + check more specifically. + + .. code-block:: php + + $headers = $message->getHeaders(); + + // Check if the To: header exists + if ($headers->has('To')) { + echo 'To: exists'; + } + + // Check if an X-Foo header exists twice (i.e. check for the 2nd one) + if ($headers->has('X-Foo', 1)) { + echo 'Second X-Foo header exists'; + } + +Removing Headers +~~~~~~~~~~~~~~~~ + +Removing a Header from the HeaderSet is done by calling the HeaderSet's +``remove()`` or ``removeAll()`` methods. + +To remove an existing header: + +* Get the HeaderSet from the entity by via its ``getHeaders()`` method. + +* Call the HeaderSet's ``remove()`` or ``removeAll()`` methods specifying the + header you want to remove. + +When calling ``remove()`` a single header will be removed. When calling +``removeAll()`` all headers with the given name will be removed. If no headers +exist with the given name, no errors will occur. + +.. note:: + + It's valid for some headers to appear more than once in a message (e.g. + the Received header). For this reason ``remove()`` accepts an optional + numerical index, starting from zero to specify which header you want to + check more specifically. For the same reason, ``removeAll()`` exists to + remove all headers that have the given name. + + .. code-block:: php + + $headers = $message->getHeaders(); + + // Remove the Subject: header + $headers->remove('Subject'); + + // Remove all X-Foo headers + $headers->removeAll('X-Foo'); + + // Remove only the second X-Foo header + $headers->remove('X-Foo', 1); + +Modifying a Header's Content +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To change a Header's content you should know what type of header it is and then +call it's appropriate setter method. All headers also have a +``setFieldBodyModel()`` method that accepts a mixed parameter and delegates to +the correct setter. + +To modify an existing header: + +* Get the HeaderSet from the entity by via its ``getHeaders()`` method. + +* Get the Header by using the HeaderSet's ``get()``. + +* Call the Header's appropriate setter method or call the header's + ``setFieldBodyModel()`` method. + +The header will be updated inside the HeaderSet and the changes will be seen +when the message is sent. + +.. code-block:: php + + $headers = $message->getHeaders(); + + // Change the Subject: header + $subj = $headers->get('Subject'); + $subj->setValue('new subject here'); + + // Change the To: header + $to = $headers->get('To'); + $to->setNameAddresses(array( + 'person@example.org' => 'Person', + 'thing@example.org' + )); + + // Using the setFieldBodyModel() just delegates to the correct method + // So here to calls setNameAddresses() + $to->setFieldBodyModel(array( + 'person@example.org' => 'Person', + 'thing@example.org' + )); diff --git a/vendor/swiftmailer/swiftmailer/doc/help-resources.rst b/vendor/swiftmailer/swiftmailer/doc/help-resources.rst new file mode 100644 index 0000000..4208935 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/help-resources.rst @@ -0,0 +1,44 @@ +Getting Help +============ + +There are a number of ways you can get help when using Swift Mailer, depending +upon the nature of your problem. For bug reports and feature requests create a +new ticket in GitHub. For general advice ask on the Google Group +(swiftmailer). + +Submitting Bugs & Feature Requests +---------------------------------- + +Bugs and feature requests should be posted on GitHub. + +If you post a bug or request a feature in the forum, or on the Google Group +you will most likely be asked to create a ticket in `GitHub`_ since it is +simply not feasible to manage such requests from a number of a different +sources. + +When you go to GitHub you will be asked to create a username and password +before you can create a ticket. This is free and takes very little time. + +When you create your ticket, do not assign it to any milestones. A developer +will assess your ticket and re-assign it as needed. + +If your ticket is reporting a bug present in the current version, which was +not present in the previous version please include the tag "regression" in +your ticket. + +GitHub will update you when work is performed on your ticket. + +Ask on the Google Group +----------------------- + +You can seek advice at Google Groups, within the "swiftmailer" `group`_. + +You can post messages to this group if you want help, or there's something you +wish to discuss with the developers and with other users. + +This is probably the fastest way to get help since it is primarily email-based +for most users, though bug reports should not be posted here since they may +not be resolved. + +.. _`GitHub`: https://github.com/swiftmailer/swiftmailer/issues +.. _`group`: http://groups.google.com/group/swiftmailer diff --git a/vendor/swiftmailer/swiftmailer/doc/including-the-files.rst b/vendor/swiftmailer/swiftmailer/doc/including-the-files.rst new file mode 100644 index 0000000..978dca2 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/including-the-files.rst @@ -0,0 +1,46 @@ +Including Swift Mailer (Autoloading) +==================================== + +If you are using Composer, Swift Mailer will be automatically autoloaded. + +If not, you can use the built-in autoloader by requiring the +``swift_required.php`` file:: + + require_once '/path/to/swift-mailer/lib/swift_required.php'; + + /* rest of code goes here */ + +If you want to override the default Swift Mailer configuration, call the +``init()`` method on the ``Swift`` class and pass it a valid PHP callable (a +PHP function name, a PHP 5.3 anonymous function, ...):: + + require_once '/path/to/swift-mailer/lib/swift_required.php'; + + function swiftmailer_configurator() { + // configure Swift Mailer + + Swift_DependencyContainer::getInstance()->... + Swift_Preferences::getInstance()->... + } + + Swift::init('swiftmailer_configurator'); + + /* rest of code goes here */ + +The advantage of using the ``init()`` method is that your code will be +executed only if you use Swift Mailer in your script. + +.. note:: + + While Swift Mailer's autoloader is designed to play nicely with other + autoloaders, sometimes you may have a need to avoid using Swift Mailer's + autoloader and use your own instead. Include the ``swift_init.php`` + instead of the ``swift_required.php`` if you need to do this. The very + minimum include is the ``swift_init.php`` file since Swift Mailer will not + work without the dependency injection this file sets up: + + .. code-block:: php + + require_once '/path/to/swift-mailer/lib/swift_init.php'; + + /* rest of code goes here */ diff --git a/vendor/swiftmailer/swiftmailer/doc/index.rst b/vendor/swiftmailer/swiftmailer/doc/index.rst new file mode 100644 index 0000000..a1a0a92 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/index.rst @@ -0,0 +1,16 @@ +Swiftmailer +=========== + +.. toctree:: + :maxdepth: 2 + + introduction + overview + installing + help-resources + including-the-files + messages + headers + sending + plugins + japanese diff --git a/vendor/swiftmailer/swiftmailer/doc/installing.rst b/vendor/swiftmailer/swiftmailer/doc/installing.rst new file mode 100644 index 0000000..557211d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/installing.rst @@ -0,0 +1,89 @@ +Installing the Library +====================== + +Installing with Composer +------------------------ + +The recommended way to install Swiftmailer is via Composer: + +.. code-block:: bash + + $ php composer.phar require swiftmailer/swiftmailer @stable + +Installing from Git +------------------- + +It's possible to download and install Swift Mailer directly from github.com if +you want to keep up-to-date with ease. + +Swift Mailer's source code is kept in a git repository at github.com so you +can get the source directly from the repository. + +.. note:: + + You do not need to have git installed to use Swift Mailer from GitHub. If + you don't have git installed, go to `GitHub`_ and click the "Download" + button. + +Cloning the Repository +~~~~~~~~~~~~~~~~~~~~~~ + +The repository can be cloned from git://github.com/swiftmailer/swiftmailer.git +using the ``git clone`` command. + +You will need to have ``git`` installed before you can use the +``git clone`` command. + +To clone the repository: + +* Open your favorite terminal environment (command line). + +* Move to the directory you want to clone to. + +* Run the command ``git clone git://github.com/swiftmailer/swiftmailer.git + swiftmailer``. + +The source code will be downloaded into a directory called "swiftmailer". + +The example shows the process on a UNIX-like system such as Linux, BSD or Mac +OS X. + +.. code-block:: bash + + $ cd source_code/ + $ git clone git://github.com/swiftmailer/swiftmailer.git swiftmailer + Initialized empty Git repository in /Users/chris/source_code/swiftmailer/.git/ + remote: Counting objects: 6815, done. + remote: Compressing objects: 100% (2761/2761), done. + remote: Total 6815 (delta 3641), reused 6326 (delta 3286) + Receiving objects: 100% (6815/6815), 4.35 MiB | 162 KiB/s, done. + Resolving deltas: 100% (3641/3641), done. + Checking out files: 100% (1847/1847), done. + $ cd swiftmailer/ + $ ls + CHANGES LICENSE ... + $ + +Troubleshooting +--------------- + +Swift Mailer does not work when used with function overloading as implemented +by ``mbstring`` (``mbstring.func_overload`` set to ``2``). A workaround is to +temporarily change the internal encoding to ``ASCII`` when sending an email: + +.. code-block:: php + + if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) + { + $mbEncoding = mb_internal_encoding(); + mb_internal_encoding('ASCII'); + } + + // Create your message and send it with Swift Mailer + + if (isset($mbEncoding)) + { + mb_internal_encoding($mbEncoding); + } + +.. _`GitHub`: http://github.com/swiftmailer/swiftmailer diff --git a/vendor/swiftmailer/swiftmailer/doc/introduction.rst b/vendor/swiftmailer/swiftmailer/doc/introduction.rst new file mode 100644 index 0000000..a85336b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/introduction.rst @@ -0,0 +1,135 @@ +Introduction +============ + +Swift Mailer is a component-based library for sending e-mails from PHP +applications. + +Organization of this Book +------------------------- + +This book has been written so that those who need information quickly are able +to find what they need, and those who wish to learn more advanced topics can +read deeper into each chapter. + +The book begins with an overview of Swift Mailer, discussing what's included +in the package and preparing you for the remainder of the book. + +It is possible to read this user guide just like any other book (from +beginning to end). Each chapter begins with a discussion of the contents it +contains, followed by a short code sample designed to give you a head start. +As you get further into a chapter you will learn more about Swift Mailer's +capabilities, but often you will be able to head directly to the topic you +wish to learn about. + +Throughout this book you will be presented with code samples, which most +people should find ample to implement Swift Mailer appropriately in their own +projects. We will also use diagrams where appropriate, and where we believe +readers may find it helpful we will discuss some related theory, including +reference to certain documents you are able to find online. + +Code Samples +------------ + +Code samples presented in this book will be displayed on a different colored +background in a monospaced font. Samples are not to be taken as copy & paste +code snippets. + +Code examples are used through the book to clarify what is written in text. +They will sometimes be usable as-is, but they should always be taken as +outline/pseudo code only. + +A code sample will look like this:: + + class AClass + { + ... + } + + // A Comment + $obj = new AClass($arg1, $arg2, ... ); + + /* A note about another way of doing something + $obj = AClass::newInstance($arg1, $arg2, ... ); + + */ + +The presence of 3 dots ``...`` in a code sample indicates that we have left +out a chunk of the code for brevity, they are not actually part of the code. + +We will often place multi-line comments ``/* ... */`` in the code so that we +can show alternative ways of achieving the same result. + +You should read the code examples given and try to understand them. They are +kept concise so that you are not overwhelmed with information. + +History of Swift Mailer +----------------------- + +Swift Mailer began back in 2005 as a one-class project for sending mail over +SMTP. It has since grown into the flexible component-based library that is in +development today. + +Chris Corbyn first posted Swift Mailer on a web forum asking for comments from +other developers. It was never intended as a fully supported open source +project, but members of the forum began to adopt it and make use of it. + +Very quickly feature requests were coming for the ability to add attachments +and use SMTP authentication, along with a number of other "obvious" missing +features. Considering the only alternative was PHPMailer it seemed like a good +time to bring some fresh tools to the table. Chris began working towards a +more component based, PHP5-like approach unlike the existing single-class, +legacy PHP4 approach taken by PHPMailer. + +Members of the forum offered a lot of advice and critique on the code as he +worked through this project and released versions 2 and 3 of the library in +2005 and 2006, which by then had been broken down into smaller classes +offering more flexibility and supporting plugins. To this day the Swift Mailer +team still receive a lot of feature requests from users both on the forum and +in by email. + +Until 2008 Chris was the sole developer of Swift Mailer, but entering 2009 he +gained the support of two experienced developers well-known to him: Paul +Annesley and Christopher Thompson. This has been an extremely welcome change. + +As of September 2009, Chris handed over the maintenance of Swift Mailer to +Fabien Potencier. + +Now 2009 and in its fourth major version Swift Mailer is more object-oriented +and flexible than ever, both from a usability standpoint and from a +development standpoint. + +By no means is Swift Mailer ready to call "finished". There are still many +features that can be added to the library along with the constant refactoring +that happens behind the scenes. + +It's a Library! +--------------- + +Swift Mailer is not an application - it's a library. + +To most experienced developers this is probably an obvious point to make, but +it's certainly worth mentioning. Many people often contact us having gotten +the completely wrong end of the stick in terms of what Swift Mailer is +actually for. + +It's not an application. It does not have a graphical user interface. It +cannot be opened in your web browser directly. + +It's a library (or a framework if you like). It provides a whole lot of +classes that do some very complicated things, so that you don't have to. You +"use" Swift Mailer within an application so that your application can have the +ability to send emails. + +The component-based structure of the library means that you are free to +implement it in a number of different ways and that you can pick and choose +what you want to use. + +An application on the other hand (such as a blog or a forum) is already "put +together" in a particular way, (usually) provides a graphical user interface +and most likely doesn't offer a great deal of integration with your own +application. + +Embrace the structure of the library and use the components it offers to your +advantage. Learning what the components do, rather than blindly copying and +pasting existing code will put you in a great position to build a powerful +application! diff --git a/vendor/swiftmailer/swiftmailer/doc/japanese.rst b/vendor/swiftmailer/swiftmailer/doc/japanese.rst new file mode 100644 index 0000000..34afa7b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/japanese.rst @@ -0,0 +1,22 @@ +Using Swift Mailer for Japanese Emails +====================================== + +To send emails in Japanese, you need to tweak the default configuration. + +After requiring the Swift Mailer autoloader (by including the +``swift_required.php`` file), call the ``Swift::init()`` method with the +following code:: + + require_once '/path/to/swift-mailer/lib/swift_required.php'; + + Swift::init(function () { + Swift_DependencyContainer::getInstance() + ->register('mime.qpheaderencoder') + ->asAliasOf('mime.base64headerencoder'); + + Swift_Preferences::getInstance()->setCharset('iso-2022-jp'); + }); + + /* rest of code goes here */ + +That's all! diff --git a/vendor/swiftmailer/swiftmailer/doc/messages.rst b/vendor/swiftmailer/swiftmailer/doc/messages.rst new file mode 100644 index 0000000..7a19253 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/messages.rst @@ -0,0 +1,1057 @@ +Creating Messages +================= + +Creating messages in Swift Mailer is done by making use of the various MIME +entities provided with the library. Complex messages can be quickly created +with very little effort. + +Quick Reference for Creating a Message +--------------------------------------- + +You can think of creating a Message as being similar to the steps you perform +when you click the Compose button in your mail client. You give it a subject, +specify some recipients, add any attachments and write your message. + +To create a Message: + +* Call the ``newInstance()`` method of ``Swift_Message``. + +* Set your sender address (``From:``) with ``setFrom()`` or ``setSender()``. + +* Set a subject line with ``setSubject()``. + +* Set recipients with ``setTo()``, ``setCc()`` and/or ``setBcc()``. + +* Set a body with ``setBody()``. + +* Add attachments with ``attach()``. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the message + $message = Swift_Message::newInstance() + + // Give the message a subject + ->setSubject('Your subject') + + // Set the From address with an associative array + ->setFrom(array('john@doe.com' => 'John Doe')) + + // Set the To addresses with an associative array + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + + // Give it a body + ->setBody('Here is the message itself') + + // And optionally an alternative body + ->addPart('Here is the message itself', 'text/html') + + // Optionally add any attachments + ->attach(Swift_Attachment::fromPath('my-document.pdf')) + ; + +Message Basics +-------------- + +A message is a container for anything you want to send to somebody else. There +are several basic aspects of a message that you should know. + +An e-mail message is made up of several relatively simple entities that are +combined in different ways to achieve different results. All of these entities +have the same fundamental outline but serve a different purpose. The Message +itself can be defined as a MIME entity, an Attachment is a MIME entity, all +MIME parts are MIME entities -- and so on! + +The basic units of each MIME entity -- be it the Message itself, or an +Attachment -- are its Headers and its body: + +.. code-block:: text + + Header-Name: A header value + Other-Header: Another value + + The body content itself + +The Headers of a MIME entity, and its body must conform to some strict +standards defined by various RFC documents. Swift Mailer ensures that these +specifications are followed by using various types of object, including +Encoders and different Header types to generate the entity. + +The Structure of a Message +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Of all of the MIME entities, a message -- ``Swift_Message`` +is the largest and most complex. It has many properties that can be updated +and it can contain other MIME entities -- attachments for example -- +nested inside it. + +A Message has a lot of different Headers which are there to present +information about the message to the recipients' mail client. Most of these +headers will be familiar to the majority of users, but we'll list the basic +ones. Although it's possible to work directly with the Headers of a Message +(or other MIME entity), the standard Headers have accessor methods provided to +abstract away the complex details for you. For example, although the Date on a +message is written with a strict format, you only need to pass a UNIX +timestamp to ``setDate()``. + ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| Header | Description | Accessors | ++===============================+====================================================================================================================================+=============================================+ +| ``Message-ID`` | Identifies this message with a unique ID, usually containing the domain name and time generated | ``getId()`` / ``setId()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Return-Path`` | Specifies where bounces should go (Swift Mailer reads this for other uses) | ``getReturnPath()`` / ``setReturnPath()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``From`` | Specifies the address of the person who the message is from. This can be multiple addresses if multiple people wrote the message. | ``getFrom()`` / ``setFrom()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Sender`` | Specifies the address of the person who physically sent the message (higher precedence than ``From:``) | ``getSender()`` / ``setSender()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``To`` | Specifies the addresses of the intended recipients | ``getTo()`` / ``setTo()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Cc`` | Specifies the addresses of recipients who will be copied in on the message | ``getCc()`` / ``setCc()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Bcc`` | Specifies the addresses of recipients who the message will be blind-copied to. Other recipients will not be aware of these copies. | ``getBcc()`` / ``setBcc()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Reply-To`` | Specifies the address where replies are sent to | ``getReplyTo()`` / ``setReplyTo()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Subject`` | Specifies the subject line that is displayed in the recipients' mail client | ``getSubject()`` / ``setSubject()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Date`` | Specifies the date at which the message was sent | ``getDate()`` / ``setDate()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Content-Type`` | Specifies the format of the message (usually text/plain or text/html) | ``getContentType()`` / ``setContentType()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Content-Transfer-Encoding`` | Specifies the encoding scheme in the message | ``getEncoder()`` / ``setEncoder()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ + +Working with a Message Object +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Although there are a lot of available methods on a message object, you only +need to make use of a small subset of them. Usually you'll use +``setSubject()``, ``setTo()`` and +``setFrom()`` before setting the body of your message with +``setBody()``. + +Calling methods is simple. You just call them like functions, but using the +object operator "``->``" to do so. If you've created +a message object and called it ``$message`` then you'd set a +subject on it like so: + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + $message = Swift_Message::newInstance(); + $message->setSubject('My subject'); + +All MIME entities (including a message) have a ``toString()`` +method that you can call if you want to take a look at what is going to be +sent. For example, if you ``echo +$message->toString();`` you would see something like this: + +.. code-block:: bash + + Message-ID: <1230173678.4952f5eeb1432@swift.generated> + Date: Thu, 25 Dec 2008 13:54:38 +1100 + Subject: Example subject + From: Chris Corbyn + To: Receiver Name + MIME-Version: 1.0 + Content-Type: text/plain; charset=utf-8 + Content-Transfer-Encoding: quoted-printable + + Here is the message + +We'll take a closer look at the methods you use to create your message in the +following sections. + +Adding Content to Your Message +------------------------------ + +Rich content can be added to messages in Swift Mailer with relative ease by +calling methods such as ``setSubject()``, ``setBody()``, ``addPart()`` and +``attach()``. + +Setting the Subject Line +~~~~~~~~~~~~~~~~~~~~~~~~ + +The subject line, displayed in the recipients' mail client can be set with the +``setSubject()`` method, or as a parameter to ``Swift_Message::newInstance()``. + +To set the subject of your Message: + +* Call the ``setSubject()`` method of the Message, or specify it at the time + you create the message. + + .. code-block:: php + + // Pass it as a parameter when you create the message + $message = Swift_Message::newInstance('My amazing subject'); + + // Or set it after like this + $message->setSubject('My amazing subject'); + +Setting the Body Content +~~~~~~~~~~~~~~~~~~~~~~~~ + +The body of the message -- seen when the user opens the message -- +is specified by calling the ``setBody()`` method. If an alternative body is to +be included ``addPart()`` can be used. + +The body of a message is the main part that is read by the user. Often people +want to send a message in HTML format (``text/html``), other +times people want to send in plain text (``text/plain``), or +sometimes people want to send both versions and allow the recipient to choose +how they view the message. + +As a rule of thumb, if you're going to send a HTML email, always include a +plain-text equivalent of the same content so that users who prefer to read +plain text can do so. + +To set the body of your Message: + +* Call the ``setBody()`` method of the Message, or specify it at the time you + create the message. + +* Add any alternative bodies with ``addPart()``. + +If the recipient's mail client offers preferences for displaying text vs. HTML +then the mail client will present that part to the user where available. In +other cases the mail client will display the "best" part it can - usually HTML +if you've included HTML. + +.. code-block:: php + + // Pass it as a parameter when you create the message + $message = Swift_Message::newInstance('Subject here', 'My amazing body'); + + // Or set it after like this + $message->setBody('My amazing body', 'text/html'); + + // Add alternative parts with addPart() + $message->addPart('My amazing body in plain text', 'text/plain'); + +Attaching Files +--------------- + +Attachments are downloadable parts of a message and can be added by calling +the ``attach()`` method on the message. You can add attachments that exist on +disk, or you can create attachments on-the-fly. + +Attachments are actually an interesting area of Swift Mailer and something +that could put a lot of power at your fingertips if you grasp the concept +behind the way a message is held together. + +Although we refer to files sent over e-mails as "attachments" -- because +they're attached to the message -- lots of other parts of the message are +actually "attached" even if we don't refer to these parts as attachments. + +File attachments are created by the ``Swift_Attachment`` class +and then attached to the message via the ``attach()`` method on +it. For all of the "every day" MIME types such as all image formats, word +documents, PDFs and spreadsheets you don't need to explicitly set the +content-type of the attachment, though it would do no harm to do so. For less +common formats you should set the content-type -- which we'll cover in a +moment. + +Attaching Existing Files +~~~~~~~~~~~~~~~~~~~~~~~~ + +Files that already exist, either on disk or at a URL can be attached to a +message with just one line of code, using ``Swift_Attachment::fromPath()``. + +You can attach files that exist locally, or if your PHP installation has +``allow_url_fopen`` turned on you can attach files from other +websites. + +To attach an existing file: + +* Create an attachment with ``Swift_Attachment::fromPath()``. + +* Add the attachment to the message with ``attach()``. + +The attachment will be presented to the recipient as a downloadable file with +the same filename as the one you attached. + +.. code-block:: php + + // Create the attachment + // * Note that you can technically leave the content-type parameter out + $attachment = Swift_Attachment::fromPath('/path/to/image.jpg', 'image/jpeg'); + + // Attach it to the message + $message->attach($attachment); + + + // The two statements above could be written in one line instead + $message->attach(Swift_Attachment::fromPath('/path/to/image.jpg')); + + + // You can attach files from a URL if allow_url_fopen is on in php.ini + $message->attach(Swift_Attachment::fromPath('http://site.tld/logo.png')); + +Setting the Filename +~~~~~~~~~~~~~~~~~~~~ + +Usually you don't need to explicitly set the filename of an attachment because +the name of the attached file will be used by default, but if you want to set +the filename you use the ``setFilename()`` method of the Attachment. + +To change the filename of an attachment: + +* Call its ``setFilename()`` method. + +The attachment will be attached in the normal way, but meta-data sent inside +the email will rename the file to something else. + +.. code-block:: php + + // Create the attachment and call its setFilename() method + $attachment = Swift_Attachment::fromPath('/path/to/image.jpg') + ->setFilename('cool.jpg'); + + + // Because there's a fluid interface, you can do this in one statement + $message->attach( + Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('cool.jpg') + ); + +Attaching Dynamic Content +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Files that are generated at runtime, such as PDF documents or images created +via GD can be attached directly to a message without writing them out to disk. +Use the standard ``Swift_Attachment::newInstance()`` method. + +To attach dynamically created content: + +* Create your content as you normally would. + +* Create an attachment with ``Swift_Attachment::newInstance()``, specifying + the source data of your content along with a name and the content-type. + +* Add the attachment to the message with ``attach()``. + +The attachment will be presented to the recipient as a downloadable file +with the filename and content-type you specify. + +.. note:: + + If you would usually write the file to disk anyway you should just attach + it with ``Swift_Attachment::fromPath()`` since this will use less memory: + + .. code-block:: php + + // Create your file contents in the normal way, but don't write them to disk + $data = create_my_pdf_data(); + + // Create the attachment with your data + $attachment = Swift_Attachment::newInstance($data, 'my-file.pdf', 'application/pdf'); + + // Attach it to the message + $message->attach($attachment); + + + // You can alternatively use method chaining to build the attachment + $attachment = Swift_Attachment::newInstance() + ->setFilename('my-file.pdf') + ->setContentType('application/pdf') + ->setBody($data) + ; + +Changing the Disposition +~~~~~~~~~~~~~~~~~~~~~~~~ + +Attachments just appear as files that can be saved to the Desktop if desired. +You can make attachment appear inline where possible by using the +``setDisposition()`` method of an attachment. + +To make an attachment appear inline: + +* Call its ``setDisposition()`` method. + +The attachment will be displayed within the email viewing window if the mail +client knows how to display it. + +.. note:: + + If you try to create an inline attachment for a non-displayable file type + such as a ZIP file, the mail client should just present the attachment as + normal: + + .. code-block:: php + + // Create the attachment and call its setDisposition() method + $attachment = Swift_Attachment::fromPath('/path/to/image.jpg') + ->setDisposition('inline'); + + + // Because there's a fluid interface, you can do this in one statement + $message->attach( + Swift_Attachment::fromPath('/path/to/image.jpg')->setDisposition('inline') + ); + +Embedding Inline Media Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Often people want to include an image or other content inline with a HTML +message. It's easy to do this with HTML linking to remote resources, but this +approach is usually blocked by mail clients. Swift Mailer allows you to embed +your media directly into the message. + +Mail clients usually block downloads from remote resources because this +technique was often abused as a mean of tracking who opened an email. If +you're sending a HTML email and you want to include an image in the message +another approach you can take is to embed the image directly. + +Swift Mailer makes embedding files into messages extremely streamlined. You +embed a file by calling the ``embed()`` method of the message, +which returns a value you can use in a ``src`` or +``href`` attribute in your HTML. + +Just like with attachments, it's possible to embed dynamically generated +content without having an existing file available. + +The embedded files are sent in the email as a special type of attachment that +has a unique ID used to reference them within your HTML attributes. On mail +clients that do not support embedded files they may appear as attachments. + +Although this is commonly done for images, in theory it will work for any +displayable (or playable) media type. Support for other media types (such as +video) is dependent on the mail client however. + +Embedding Existing Files +........................ + +Files that already exist, either on disk or at a URL can be embedded in a +message with just one line of code, using ``Swift_EmbeddedFile::fromPath()``. + +You can embed files that exist locally, or if your PHP installation has +``allow_url_fopen`` turned on you can embed files from other websites. + +To embed an existing file: + +* Create a message object with ``Swift_Message::newInstance()``. + +* Set the body as HTML, and embed a file at the correct point in the message with ``embed()``. + +The file will be displayed with the message inline with the HTML wherever its ID +is used as a ``src`` attribute. + +.. note:: + + ``Swift_Image`` and ``Swift_EmbeddedFile`` are just aliases of one + another. ``Swift_Image`` exists for semantic purposes. + +.. note:: + + You can embed files in two stages if you prefer. Just capture the return + value of ``embed()`` in a variable and use that as the ``src`` attribute. + + .. code-block:: php + + // Create the message + $message = Swift_Message::newInstance('My subject'); + + // Set the body + $message->setBody( + '' . + ' ' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + + // You can embed files from a URL if allow_url_fopen is on in php.ini + $message->setBody( + '' . + ' ' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' + ); + + + // If placing the embed() code inline becomes cumbersome + // it's easy to do this in two steps + $cid = $message->embed(Swift_Image::fromPath('image.png')); + + $message->setBody( + '' . + ' ' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + +Embedding Dynamic Content +......................... + +Images that are generated at runtime, such as images created via GD can be +embedded directly to a message without writing them out to disk. Use the +standard ``Swift_Image::newInstance()`` method. + +To embed dynamically created content: + +* Create a message object with ``Swift_Message::newInstance()``. + +* Set the body as HTML, and embed a file at the correct point in the message + with ``embed()``. You will need to specify a filename and a content-type. + +The file will be displayed with the message inline with the HTML wherever its ID +is used as a ``src`` attribute. + +.. note:: + + ``Swift_Image`` and ``Swift_EmbeddedFile`` are just aliases of one + another. ``Swift_Image`` exists for semantic purposes. + +.. note:: + + You can embed files in two stages if you prefer. Just capture the return + value of ``embed()`` in a variable and use that as the ``src`` attribute. + + .. code-block:: php + + // Create your file contents in the normal way, but don't write them to disk + $img_data = create_my_image_data(); + + // Create the message + $message = Swift_Message::newInstance('My subject'); + + // Set the body + $message->setBody( + '' . + ' ' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + + + // If placing the embed() code inline becomes cumbersome + // it's easy to do this in two steps + $cid = $message->embed(Swift_Image::newInstance($img_data, 'image.jpg', 'image/jpeg')); + + $message->setBody( + '' . + ' ' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + +Adding Recipients to Your Message +--------------------------------- + +Recipients are specified within the message itself via ``setTo()``, ``setCc()`` +and ``setBcc()``. Swift Mailer reads these recipients from the message when it +gets sent so that it knows where to send the message to. + +Message recipients are one of three types: + +* ``To:`` recipients -- the primary recipients (required) + +* ``Cc:`` recipients -- receive a copy of the message (optional) + +* ``Bcc:`` recipients -- hidden from other recipients (optional) + +Each type can contain one, or several addresses. It's possible to list only +the addresses of the recipients, or you can personalize the address by +providing the real name of the recipient. + +Make sure to add only valid email addresses as recipients. If you try to add an +invalid email address with ``setTo()``, ``setCc()`` or ``setBcc()``, Swift +Mailer will throw a ``Swift_RfcComplianceException``. + +If you add recipients automatically based on a data source that may contain +invalid email addresses, you can prevent possible exceptions by validating the +addresses using ``Swift_Validate::email($email)`` and only adding addresses +that validate. Another way would be to wrap your ``setTo()``, ``setCc()`` and +``setBcc()`` calls in a try-catch block and handle the +``Swift_RfcComplianceException`` in the catch block. + +.. sidebar:: Syntax for Addresses + + If you only wish to refer to a single email address (for example your + ``From:`` address) then you can just use a string. + + .. code-block:: php + + $message->setFrom('some@address.tld'); + + If you want to include a name then you must use an associative array. + + .. code-block:: php + + $message->setFrom(array('some@address.tld' => 'The Name')); + + If you want to include multiple addresses then you must use an array. + + .. code-block:: php + + $message->setTo(array('some@address.tld', 'other@address.tld')); + + You can mix personalized (addresses with a name) and non-personalized + addresses in the same list by mixing the use of associative and + non-associative array syntax. + + .. code-block:: php + + $message->setTo(array( + 'recipient-with-name@example.org' => 'Recipient Name One', + 'no-name@example.org', // Note that this is not a key-value pair + 'named-recipient@example.org' => 'Recipient Name Two' + )); + +Setting ``To:`` Recipients +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``To:`` recipients are required in a message and are set with the +``setTo()`` or ``addTo()`` methods of the message. + +To set ``To:`` recipients, create the message object using either +``new Swift_Message( ... )`` or ``Swift_Message::newInstance( ... )``, +then call the ``setTo()`` method with a complete array of addresses, or use the +``addTo()`` method to iteratively add recipients. + +The ``setTo()`` method accepts input in various formats as described earlier in +this chapter. The ``addTo()`` method takes either one or two parameters. The +first being the email address and the second optional parameter being the name +of the recipient. + +``To:`` recipients are visible in the message headers and will be +seen by the other recipients. + +.. note:: + + Multiple calls to ``setTo()`` will not add new recipients -- each + call overrides the previous calls. If you want to iteratively add + recipients, use the ``addTo()`` method. + + .. code-block:: php + + // Using setTo() to set all recipients in one go + $message->setTo(array( + 'person1@example.org', + 'person2@otherdomain.org' => 'Person 2 Name', + 'person3@example.org', + 'person4@example.org', + 'person5@example.org' => 'Person 5 Name' + )); + + // Using addTo() to add recipients iteratively + $message->addTo('person1@example.org'); + $message->addTo('person2@example.org', 'Person 2 Name'); + +Setting ``Cc:`` Recipients +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Cc:`` recipients are set with the ``setCc()`` or ``addCc()`` methods of the +message. + +To set ``Cc:`` recipients, create the message object using either +``new Swift_Message( ... )`` or ``Swift_Message::newInstance( ... )``, then call +the ``setCc()`` method with a complete array of addresses, or use the +``addCc()`` method to iteratively add recipients. + +The ``setCc()`` method accepts input in various formats as described earlier in +this chapter. The ``addCc()`` method takes either one or two parameters. The +first being the email address and the second optional parameter being the name +of the recipient. + +``Cc:`` recipients are visible in the message headers and will be +seen by the other recipients. + +.. note:: + + Multiple calls to ``setCc()`` will not add new recipients -- each + call overrides the previous calls. If you want to iteratively add Cc: + recipients, use the ``addCc()`` method. + + .. code-block:: php + + // Using setCc() to set all recipients in one go + $message->setCc(array( + 'person1@example.org', + 'person2@otherdomain.org' => 'Person 2 Name', + 'person3@example.org', + 'person4@example.org', + 'person5@example.org' => 'Person 5 Name' + )); + + // Using addCc() to add recipients iteratively + $message->addCc('person1@example.org'); + $message->addCc('person2@example.org', 'Person 2 Name'); + +Setting ``Bcc:`` Recipients +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Bcc:`` recipients receive a copy of the message without anybody else knowing +it, and are set with the ``setBcc()`` or ``addBcc()`` methods of the message. + +To set ``Bcc:`` recipients, create the message object using either ``new +Swift_Message( ... )`` or ``Swift_Message::newInstance( ... )``, then call the +``setBcc()`` method with a complete array of addresses, or use +the ``addBcc()`` method to iteratively add recipients. + +The ``setBcc()`` method accepts input in various formats as described earlier in +this chapter. The ``addBcc()`` method takes either one or two parameters. The +first being the email address and the second optional parameter being the name +of the recipient. + +Only the individual ``Bcc:`` recipient will see their address in the message +headers. Other recipients (including other ``Bcc:`` recipients) will not see the +address. + +.. note:: + + Multiple calls to ``setBcc()`` will not add new recipients -- each + call overrides the previous calls. If you want to iteratively add Bcc: + recipients, use the ``addBcc()`` method. + + .. code-block:: php + + // Using setBcc() to set all recipients in one go + $message->setBcc(array( + 'person1@example.org', + 'person2@otherdomain.org' => 'Person 2 Name', + 'person3@example.org', + 'person4@example.org', + 'person5@example.org' => 'Person 5 Name' + )); + + // Using addBcc() to add recipients iteratively + $message->addBcc('person1@example.org'); + $message->addBcc('person2@example.org', 'Person 2 Name'); + +Specifying Sender Details +------------------------- + +An email must include information about who sent it. Usually this is managed +by the ``From:`` address, however there are other options. + +The sender information is contained in three possible places: + +* ``From:`` -- the address(es) of who wrote the message (required) + +* ``Sender:`` -- the address of the single person who sent the message + (optional) + +* ``Return-Path:`` -- the address where bounces should go to (optional) + +You must always include a ``From:`` address by using ``setFrom()`` on the +message. Swift Mailer will use this as the default ``Return-Path:`` unless +otherwise specified. + +The ``Sender:`` address exists because the person who actually sent the email +may not be the person who wrote the email. It has a higher precedence than the +``From:`` address and will be used as the ``Return-Path:`` unless otherwise +specified. + +Setting the ``From:`` Address +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A ``From:`` address is required and is set with the ``setFrom()`` method of the +message. ``From:`` addresses specify who actually wrote the email, and usually who sent it. + +What most people probably don't realise is that you can have more than one +``From:`` address if more than one person wrote the email -- for example if an +email was put together by a committee. + +To set the ``From:`` address(es): + +* Call the ``setFrom()`` method on the Message. + +The ``From:`` address(es) are visible in the message headers and +will be seen by the recipients. + +.. note:: + + If you set multiple ``From:`` addresses then you absolutely must set a + ``Sender:`` address to indicate who physically sent the message. + + .. code-block:: php + + // Set a single From: address + $message->setFrom('your@address.tld'); + + // Set a From: address including a name + $message->setFrom(array('your@address.tld' => 'Your Name')); + + // Set multiple From: addresses if multiple people wrote the email + $message->setFrom(array( + 'person1@example.org' => 'Sender One', + 'person2@example.org' => 'Sender Two' + )); + +Setting the ``Sender:`` Address +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A ``Sender:`` address specifies who sent the message and is set with the +``setSender()`` method of the message. + +To set the ``Sender:`` address: + +* Call the ``setSender()`` method on the Message. + +The ``Sender:`` address is visible in the message headers and will be seen by +the recipients. + +This address will be used as the ``Return-Path:`` unless otherwise specified. + +.. note:: + + If you set multiple ``From:`` addresses then you absolutely must set a + ``Sender:`` address to indicate who physically sent the message. + +You must not set more than one sender address on a message because it's not +possible for more than one person to send a single message. + +.. code-block:: php + + $message->setSender('your@address.tld'); + +Setting the ``Return-Path:`` (Bounce) Address +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``Return-Path:`` address specifies where bounce notifications should +be sent and is set with the ``setReturnPath()`` method of the message. + +You can only have one ``Return-Path:`` and it must not include +a personal name. + +To set the ``Return-Path:`` address: + +* Call the ``setReturnPath()`` method on the Message. + +Bounce notifications will be sent to this address. + +.. code-block:: php + + $message->setReturnPath('bounces@address.tld'); + + +Signed/Encrypted Message +------------------------ + +To increase the integrity/security of a message it is possible to sign and/or +encrypt an message using one or multiple signers. + +S/MIME +~~~~~~ + +S/MIME can sign and/or encrypt a message using the OpenSSL extension. + +When signing a message, the signer creates a signature of the entire content of the message (including attachments). + +The certificate and private key must be PEM encoded, and can be either created using for example OpenSSL or +obtained at an official Certificate Authority (CA). + +**The recipient must have the CA certificate in the list of trusted issuers in order to verify the signature.** + +**Make sure the certificate supports emailProtection.** + +When using OpenSSL this can done by the including the *-addtrust emailProtection* parameter when creating the certificate. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $smimeSigner = Swift_Signers_SMimeSigner::newInstance(); + $smimeSigner->setSignCertificate('/path/to/certificate.pem', '/path/to/private-key.pem'); + $message->attachSigner($smimeSigner); + +When the private key is secured using a passphrase use the following instead. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $smimeSigner = Swift_Signers_SMimeSigner::newInstance(); + $smimeSigner->setSignCertificate('/path/to/certificate.pem', array('/path/to/private-key.pem', 'passphrase')); + $message->attachSigner($smimeSigner); + +By default the signature is added as attachment, +making the message still readable for mailing agents not supporting signed messages. + +Storing the message as binary is also possible but not recommended. + +.. code-block:: php + + $smimeSigner->setSignCertificate('/path/to/certificate.pem', '/path/to/private-key.pem', PKCS7_BINARY); + +When encrypting the message (also known as enveloping), the entire message (including attachments) +is encrypted using a certificate, and the recipient can then decrypt the message using corresponding private key. + +Encrypting ensures nobody can read the contents of the message without the private key. + +Normally the recipient provides a certificate for encrypting and keeping the decryption key private. + +Using both signing and encrypting is also possible. + +.. code-block:: php + + $message = Swift_Message::newInstance(); + + $smimeSigner = Swift_Signers_SMimeSigner::newInstance(); + $smimeSigner->setSignCertificate('/path/to/sign-certificate.pem', '/path/to/private-key.pem'); + $smimeSigner->setEncryptCertificate('/path/to/encrypt-certificate.pem'); + $message->attachSigner($smimeSigner); + +The used encryption cipher can be set as the second parameter of setEncryptCertificate() + +See http://php.net/manual/openssl.ciphers for a list of supported ciphers. + +By default the message is first signed and then encrypted, this can be changed by adding. + +.. code-block:: php + + $smimeSigner->setSignThenEncrypt(false); + +**Changing this is not recommended as most mail agents don't support this none-standard way.** + +Only when having trouble with sign then encrypt method, this should be changed. + +Requesting a Read Receipt +------------------------- + +It is possible to request a read-receipt to be sent to an address when the +email is opened. To request a read receipt set the address with +``setReadReceiptTo()``. + +To request a read receipt: + +* Set the address you want the receipt to be sent to with the + ``setReadReceiptTo()`` method on the Message. + +When the email is opened, if the mail client supports it a notification will be sent to this address. + +.. note:: + + Read receipts won't work for the majority of recipients since many mail + clients auto-disable them. Those clients that will send a read receipt + will make the user aware that one has been requested. + + .. code-block:: php + + $message->setReadReceiptTo('your@address.tld'); + +Setting the Character Set +------------------------- + +The character set of the message (and it's MIME parts) is set with the +``setCharset()`` method. You can also change the global default of UTF-8 by +working with the ``Swift_Preferences`` class. + +Swift Mailer will default to the UTF-8 character set unless otherwise +overridden. UTF-8 will work in most instances since it includes all of the +standard US keyboard characters in addition to most international characters. + +It is absolutely vital however that you know what character set your message +(or it's MIME parts) are written in otherwise your message may be received +completely garbled. + +There are two places in Swift Mailer where you can change the character set: + +* In the ``Swift_Preferences`` class + +* On each individual message and/or MIME part + +To set the character set of your Message: + +* Change the global UTF-8 setting by calling + ``Swift_Preferences::setCharset()``; or + +* Call the ``setCharset()`` method on the message or the MIME part. + + .. code-block:: php + + // Approach 1: Change the global setting (suggested) + Swift_Preferences::getInstance()->setCharset('iso-8859-2'); + + // Approach 2: Call the setCharset() method of the message + $message = Swift_Message::newInstance() + ->setCharset('iso-8859-2'); + + // Approach 3: Specify the charset when setting the body + $message->setBody('My body', 'text/html', 'iso-8859-2'); + + // Approach 4: Specify the charset for each part added + $message->addPart('My part', 'text/plain', 'iso-8859-2'); + +Setting the Line Length +----------------------- + +The length of lines in a message can be changed by using the ``setMaxLineLength()`` method on the message. It should be kept to less than +1000 characters. + +Swift Mailer defaults to using 78 characters per line in a message. This is +done for historical reasons and so that the message can be easily viewed in +plain-text terminals. + +To change the maximum length of lines in your Message: + +* Call the ``setMaxLineLength()`` method on the Message. + +Lines that are longer than the line length specified will be wrapped between +words. + +.. note:: + + You should never set a maximum length longer than 1000 characters + according to RFC 2822. Doing so could have unspecified side-effects such + as truncating parts of your message when it is transported between SMTP + servers. + + .. code-block:: php + + $message->setMaxLineLength(1000); + +Setting the Message Priority +---------------------------- + +You can change the priority of the message with ``setPriority()``. Setting the +priority will not change the way your email is sent -- it is purely an +indicative setting for the recipient. + +The priority of a message is an indication to the recipient what significance +it has. Swift Mailer allows you to set the priority by calling the ``setPriority`` method. This method takes an integer value between 1 and 5: + +* Highest +* High +* Normal +* Low +* Lowest + +To set the message priority: + +* Set the priority as an integer between 1 and 5 with the ``setPriority()`` + method on the Message. + +.. code-block:: php + + // Indicate "High" priority + $message->setPriority(2); diff --git a/vendor/swiftmailer/swiftmailer/doc/overview.rst b/vendor/swiftmailer/swiftmailer/doc/overview.rst new file mode 100644 index 0000000..c912617 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/overview.rst @@ -0,0 +1,161 @@ +Library Overview +================ + +Most features (and more) of your every day mail client software are provided +by Swift Mailer, using object-oriented PHP code as the interface. + +In this chapter we will take a short tour of the various components, which put +together form the Swift Mailer library as a whole. You will learn key +terminology used throughout the rest of this book and you will gain a little +understanding of the classes you will work with as you integrate Swift Mailer +into your application. + +This chapter is intended to prepare you for the information contained in the +subsequent chapters of this book. You may choose to skip this chapter if you +are fairly technically minded, though it is likely to save you some time in +the long run if you at least read between the lines here. + +System Requirements +------------------- + +The basic requirements to operate Swift Mailer are extremely minimal and +easily achieved. Historically, Swift Mailer has supported both PHP 4 and PHP 5 +by following a parallel development workflow. Now in it's fourth major +version, and Swift Mailer operates on servers running PHP 5.2 or higher. + +The library aims to work with as many PHP 5 projects as possible: + +* PHP 5.2 or higher, with the SPL extension (standard) + +* Limited network access to connect to remote SMTP servers + +* 8 MB or more memory limit (Swift Mailer uses around 2 MB) + +Component Breakdown +------------------- + +Swift Mailer is made up of many classes. Each of these classes can be grouped +into a general "component" group which describes the task it is designed to +perform. + +We'll take a brief look at the components which form Swift Mailer in this +section of the book. + +The Mailer +~~~~~~~~~~ + +The mailer class, ``Swift_Mailer`` is the central class in the library where +all of the other components meet one another. ``Swift_Mailer`` acts as a sort +of message dispatcher, communicating with the underlying Transport to deliver +your Message to all intended recipients. + +If you were to dig around in the source code for Swift Mailer you'd notice +that ``Swift_Mailer`` itself is pretty bare. It delegates to other objects for +most tasks and in theory, if you knew the internals of Swift Mailer well you +could by-pass this class entirely. We wouldn't advise doing such a thing +however -- there are reasons this class exists: + +* for consistency, regardless of the Transport used + +* to provide abstraction from the internals in the event internal API changes + are made + +* to provide convenience wrappers around aspects of the internal API + +An instance of ``Swift_Mailer`` is created by the developer before sending any +Messages. + +Transports +~~~~~~~~~~ + +Transports are the classes in Swift Mailer that are responsible for +communicating with a service in order to deliver a Message. There are several +types of Transport in Swift Mailer, all of which implement the Swift_Transport +interface and offer underlying start(), stop() and send() methods. + +Typically you will not need to know how a Transport works under-the-surface, +you will only need to know how to create an instance of one, and which one to +use for your environment. + ++---------------------------------+---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ +| Class | Features | Pros/cons | ++=================================+=============================================================================================+===============================================================================================================================================+ +| ``Swift_SmtpTransport`` | Sends messages over SMTP; Supports Authentication; Supports Encryption | Very portable; Pleasingly predictable results; Provides good feedback | ++---------------------------------+---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ +| ``Swift_SendmailTransport`` | Communicates with a locally installed ``sendmail`` executable (Linux/UNIX) | Quick time-to-run; Provides less-accurate feedback than SMTP; Requires ``sendmail`` installation | ++---------------------------------+---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ +| ``Swift_MailTransport`` | Uses PHP's built-in ``mail()`` function | Very portable; Potentially unpredictable results; Provides extremely weak feedback | ++---------------------------------+---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ +| ``Swift_LoadBalancedTransport`` | Cycles through a collection of the other Transports to manage load-reduction | Provides graceful fallback if one Transport fails (e.g. an SMTP server is down); Keeps the load on remote services down by spreading the work | ++---------------------------------+---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ +| ``Swift_FailoverTransport`` | Works in conjunction with a collection of the other Transports to provide high-availability | Provides graceful fallback if one Transport fails (e.g. an SMTP server is down) | ++---------------------------------+---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ + +MIME Entities +~~~~~~~~~~~~~ + +Everything that forms part of a Message is called a MIME Entity. All MIME +entities in Swift Mailer share a common set of features. There are various +types of MIME entity that serve different purposes such as Attachments and +MIME parts. + +An e-mail message is made up of several relatively simple entities that are +combined in different ways to achieve different results. All of these entities +have the same fundamental outline but serve a different purpose. The Message +itself can be defined as a MIME entity, an Attachment is a MIME entity, all +MIME parts are MIME entities -- and so on! + +The basic units of each MIME entity -- be it the Message itself, or an +Attachment -- are its Headers and its body: + +.. code-block:: text + + Other-Header: Another value + + The body content itself + +The Headers of a MIME entity, and its body must conform to some strict +standards defined by various RFC documents. Swift Mailer ensures that these +specifications are followed by using various types of object, including +Encoders and different Header types to generate the entity. + +Each MIME component implements the base ``Swift_Mime_MimeEntity`` interface, +which offers methods for retrieving Headers, adding new Headers, changing the +Encoder, updating the body and so on! + +All MIME entities have one Header in common -- the Content-Type Header, +updated with the entity's ``setContentType()`` method. + +Encoders +~~~~~~~~ + +Encoders are used to transform the content of Messages generated in Swift +Mailer into a format that is safe to send across the internet and that +conforms to RFC specifications. + +Generally speaking you will not need to interact with the Encoders in Swift +Mailer -- the correct settings will be handled by the library itself. +However they are probably worth a brief mention in the event that you do want +to play with them. + +Both the Headers and the body of all MIME entities (including the Message +itself) use Encoders to ensure the data they contain can be sent over the +internet without becoming corrupted or misinterpreted. + +There are two types of Encoder: Base64 and Quoted-Printable. + +Plugins +~~~~~~~ + +Plugins exist to extend, or modify the behaviour of Swift Mailer. They respond +to Events that are fired within the Transports during sending. + +There are a number of Plugins provided as part of the base Swift Mailer +package and they all follow a common interface to respond to Events fired +within the library. Interfaces are provided to "listen" to each type of Event +fired and to act as desired when a listened-to Event occurs. + +Although several plugins are provided with Swift Mailer out-of-the-box, the +Events system has been specifically designed to make it easy for experienced +object-oriented developers to write their own plugins in order to achieve +goals that may not be possible with the base library. diff --git a/vendor/swiftmailer/swiftmailer/doc/plugins.rst b/vendor/swiftmailer/swiftmailer/doc/plugins.rst new file mode 100644 index 0000000..16ae335 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/plugins.rst @@ -0,0 +1,385 @@ +Plugins +======= + +Plugins are provided with Swift Mailer and can be used to extend the behavior +of the library in situations where using simple class inheritance would be more complex. + +AntiFlood Plugin +---------------- + +Many SMTP servers have limits on the number of messages that may be sent +during any single SMTP connection. The AntiFlood plugin provides a way to stay +within this limit while still managing a large number of emails. + +A typical limit for a single connection is 100 emails. If the server you +connect to imposes such a limit, it expects you to disconnect after that +number of emails has been sent. You could manage this manually within a loop, +but the AntiFlood plugin provides the necessary wrapper code so that you don't +need to worry about this logic. + +Regardless of limits imposed by the server, it's usually a good idea to be +conservative with the resources of the SMTP server. Sending will become +sluggish if the server is being over-used so using the AntiFlood plugin will +not be a bad idea even if no limits exist. + +The AntiFlood plugin's logic is basically to disconnect and the immediately +re-connect with the SMTP server every X number of emails sent, where X is a +number you specify to the plugin. + +You can also specify a time period in seconds that Swift Mailer should pause +for between the disconnect/re-connect process. It's a good idea to pause for a +short time (say 30 seconds every 100 emails) simply to give the SMTP server a +chance to process its queue and recover some resources. + +Using the AntiFlood Plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The AntiFlood Plugin -- like all plugins -- is added with the Mailer class's +``registerPlugin()`` method. It takes two constructor parameters: the number of +emails to pause after, and optionally the number of seconds to pause for. + +To use the AntiFlood plugin: + +* Create an instance of the Mailer using any Transport you choose. + +* Create an instance of the ``Swift_Plugins_AntiFloodPlugin`` class, passing + in one or two constructor parameters. + +* Register the plugin using the Mailer's ``registerPlugin()`` method. + +* Continue using Swift Mailer to send messages as normal. + +When Swift Mailer sends messages it will count the number of messages that +have been sent since the last re-connect. Once the number hits your specified +threshold it will disconnect and re-connect, optionally pausing for a +specified amount of time. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Mailer using any Transport + $mailer = Swift_Mailer::newInstance( + Swift_SmtpTransport::newInstance('smtp.example.org', 25) + ); + + // Use AntiFlood to re-connect after 100 emails + $mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100)); + + // And specify a time in seconds to pause for (30 secs) + $mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100, 30)); + + // Continue sending as normal + for ($lotsOfRecipients as $recipient) { + ... + + $mailer->send( ... ); + } + +Throttler Plugin +---------------- + +If your SMTP server has restrictions in place to limit the rate at which you +send emails, then your code will need to be aware of this rate-limiting. The +Throttler plugin makes Swift Mailer run at a rate-limited speed. + +Many shared hosts don't open their SMTP servers as a free-for-all. Usually +they have policies in place (probably to discourage spammers) that only allow +you to send a fixed number of emails per-hour/day. + +The Throttler plugin supports two modes of rate-limiting and with each, you +will need to do that math to figure out the values you want. The plugin can +limit based on the number of emails per minute, or the number of +bytes-transferred per-minute. + +Using the Throttler Plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Throttler Plugin -- like all plugins -- is added with the Mailer class' +``registerPlugin()`` method. It has two required constructor parameters that +tell it how to do its rate-limiting. + +To use the Throttler plugin: + +* Create an instance of the Mailer using any Transport you choose. + +* Create an instance of the ``Swift_Plugins_ThrottlerPlugin`` class, passing + the number of emails, or bytes you wish to limit by, along with the mode + you're using. + +* Register the plugin using the Mailer's ``registerPlugin()`` method. + +* Continue using Swift Mailer to send messages as normal. + +When Swift Mailer sends messages it will keep track of the rate at which sending +messages is occurring. If it realises that sending is happening too fast, it +will cause your program to ``sleep()`` for enough time to average out the rate. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Mailer using any Transport + $mailer = Swift_Mailer::newInstance( + Swift_SmtpTransport::newInstance('smtp.example.org', 25) + ); + + // Rate limit to 100 emails per-minute + $mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin( + 100, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE + )); + + // Rate limit to 10MB per-minute + $mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin( + 1024 * 1024 * 10, Swift_Plugins_ThrottlerPlugin::BYTES_PER_MINUTE + )); + + // Continue sending as normal + for ($lotsOfRecipients as $recipient) { + ... + + $mailer->send( ... ); + } + +Logger Plugin +------------- + +The Logger plugins helps with debugging during the process of sending. It can +help to identify why an SMTP server is rejecting addresses, or any other +hard-to-find problems that may arise. + +The Logger plugin comes in two parts. There's the plugin itself, along with +one of a number of possible Loggers that you may choose to use. For example, +the logger may output messages directly in realtime, or it may capture +messages in an array. + +One other notable feature is the way in which the Logger plugin changes +Exception messages. If Exceptions are being thrown but the error message does +not provide conclusive information as to the source of the problem (such as an +ambiguous SMTP error) the Logger plugin includes the entire SMTP transcript in +the error message so that debugging becomes a simpler task. + +There are a few available Loggers included with Swift Mailer, but writing your +own implementation is incredibly simple and is achieved by creating a short +class that implements the ``Swift_Plugins_Logger`` interface. + +* ``Swift_Plugins_Loggers_ArrayLogger``: Keeps a collection of log messages + inside an array. The array content can be cleared or dumped out to the + screen. + +* ``Swift_Plugins_Loggers_EchoLogger``: Prints output to the screen in + realtime. Handy for very rudimentary debug output. + +Using the Logger Plugin +~~~~~~~~~~~~~~~~~~~~~~~ + +The Logger Plugin -- like all plugins -- is added with the Mailer class' +``registerPlugin()`` method. It accepts an instance of ``Swift_Plugins_Logger`` +in its constructor. + +To use the Logger plugin: + +* Create an instance of the Mailer using any Transport you choose. + +* Create an instance of the a Logger implementation of + ``Swift_Plugins_Logger``. + +* Create an instance of the ``Swift_Plugins_LoggerPlugin`` class, passing the + created Logger instance to its constructor. + +* Register the plugin using the Mailer's ``registerPlugin()`` method. + +* Continue using Swift Mailer to send messages as normal. + +* Dump the contents of the log with the logger's ``dump()`` method. + +When Swift Mailer sends messages it will keep a log of all the interactions +with the underlying Transport being used. Depending upon the Logger that has +been used the behaviour will differ, but all implementations offer a way to +get the contents of the log. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Mailer using any Transport + $mailer = Swift_Mailer::newInstance( + Swift_SmtpTransport::newInstance('smtp.example.org', 25) + ); + + // To use the ArrayLogger + $logger = new Swift_Plugins_Loggers_ArrayLogger(); + $mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger)); + + // Or to use the Echo Logger + $logger = new Swift_Plugins_Loggers_EchoLogger(); + $mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger)); + + // Continue sending as normal + for ($lotsOfRecipients as $recipient) { + ... + + $mailer->send( ... ); + } + + // Dump the log contents + // NOTE: The EchoLogger dumps in realtime so dump() does nothing for it + echo $logger->dump(); + +Decorator Plugin +---------------- + +Often there's a need to send the same message to multiple recipients, but with +tiny variations such as the recipient's name being used inside the message +body. The Decorator plugin aims to provide a solution for allowing these small +differences. + +The decorator plugin works by intercepting the sending process of Swift +Mailer, reading the email address in the To: field and then looking up a set +of replacements for a template. + +While the use of this plugin is simple, it is probably the most commonly +misunderstood plugin due to the way in which it works. The typical mistake +users make is to try registering the plugin multiple times (once for each +recipient) -- inside a loop for example. This is incorrect. + +The Decorator plugin should be registered just once, but containing the list +of all recipients prior to sending. It will use this list of recipients to +find the required replacements during sending. + +Using the Decorator Plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To use the Decorator plugin, simply create an associative array of replacements +based on email addresses and then use the mailer's ``registerPlugin()`` method +to add the plugin. + +First create an associative array of replacements based on the email addresses +you'll be sending the message to. + +.. note:: + + The replacements array becomes a 2-dimensional array whose keys are the + email addresses and whose values are an associative array of replacements + for that email address. The curly braces used in this example can be any + type of syntax you choose, provided they match the placeholders in your + email template. + + .. code-block:: php + + $replacements = array(); + foreach ($users as $user) { + $replacements[$user['email']] = array( + '{username}'=>$user['username'], + '{password}'=>$user['password'] + ); + } + +Now create an instance of the Decorator plugin using this array of replacements +and then register it with the Mailer. Do this only once! + +.. code-block:: php + + $decorator = new Swift_Plugins_DecoratorPlugin($replacements); + + $mailer->registerPlugin($decorator); + +When you create your message, replace elements in the body (and/or the subject +line) with your placeholders. + +.. code-block:: php + + $message = Swift_Message::newInstance() + ->setSubject('Important notice for {username}') + ->setBody( + "Hello {username}, we have reset your password to {password}\n" . + "Please log in and change it at your earliest convenience." + ) + ; + + foreach ($users as $user) { + $message->addTo($user['email']); + } + +When you send this message to each of your recipients listed in your +``$replacements`` array they will receive a message customized for just +themselves. For example, the message used above when received may appear like +this to one user: + +.. code-block:: text + + Subject: Important notice for smilingsunshine2009 + + Hello smilingsunshine2009, we have reset your password to rainyDays + Please log in and change it at your earliest convenience. + +While another use may receive the message as: + +.. code-block:: text + + Subject: Important notice for billy-bo-bob + + Hello billy-bo-bob, we have reset your password to dancingOctopus + Please log in and change it at your earliest convenience. + +While the decorator plugin provides a means to solve this problem, there are +various ways you could tackle this problem without the need for a plugin. +We're trying to come up with a better way ourselves and while we have several +(obvious) ideas we don't quite have the perfect solution to go ahead and +implement it. Watch this space. + +Providing Your Own Replacements Lookup for the Decorator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Filling an array with replacements may not be the best solution for providing +replacement information to the decorator. If you have a more elegant algorithm +that performs replacement lookups on-the-fly you may provide your own +implementation. + +Providing your own replacements lookup implementation for the Decorator is +simply a matter of passing an instance of ``Swift_Plugins_Decorator_Replacements`` to the decorator plugin's constructor, +rather than passing in an array. + +The Replacements interface is very simple to implement since it has just one +method: ``getReplacementsFor($address)``. + +Imagine you want to look up replacements from a database on-the-fly, you might +provide an implementation that does this. You need to create a small class. + +.. code-block:: php + + class DbReplacements implements Swift_Plugins_Decorator_Replacements { + public function getReplacementsFor($address) { + $sql = sprintf( + "SELECT * FROM user WHERE email = '%s'", + mysql_real_escape_string($address) + ); + + $result = mysql_query($sql); + + if ($row = mysql_fetch_assoc($result)) { + return array( + '{username}'=>$row['username'], + '{password}'=>$row['password'] + ); + } + } + } + +Now all you need to do is pass an instance of your class into the Decorator +plugin's constructor instead of passing an array. + +.. code-block:: php + + $decorator = new Swift_Plugins_DecoratorPlugin(new DbReplacements()); + + $mailer->registerPlugin($decorator); + +For each message sent, the plugin will call your class' ``getReplacementsFor()`` +method to find the array of replacements it needs. + +.. note:: + + If your lookup algorithm is case sensitive, you should transform the + ``$address`` argument as appropriate -- for example by passing it + through ``strtolower()``. diff --git a/vendor/swiftmailer/swiftmailer/doc/sending.rst b/vendor/swiftmailer/swiftmailer/doc/sending.rst new file mode 100644 index 0000000..4460845 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/doc/sending.rst @@ -0,0 +1,607 @@ +Sending Messages +================ + +Quick Reference for Sending a Message +------------------------------------- + +Sending a message is very straightforward. You create a Transport, use it to +create the Mailer, then you use the Mailer to send the message. + +To send a Message: + +* Create a Transport from one of the provided Transports -- + ``Swift_SmtpTransport``, ``Swift_SendmailTransport``, ``Swift_MailTransport`` + or one of the aggregate Transports. + +* Create an instance of the ``Swift_Mailer`` class, using the Transport as + it's constructor parameter. + +* Create a Message. + +* Send the message via the ``send()`` method on the Mailer object. + +.. caution:: + + The ``Swift_SmtpTransport`` and ``Swift_SendmailTransport`` transports use + ``proc_*`` PHP functions, which might not be available on your PHP + installation. You can easily check if that's the case by running the + following PHP script: ``setUsername('your username') + ->setPassword('your password') + ; + + /* + You could alternatively use a different transport such as Sendmail or Mail: + + // Sendmail + $transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs'); + + // Mail + $transport = Swift_MailTransport::newInstance(); + */ + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + + // Create a message + $message = Swift_Message::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself') + ; + + // Send the message + $result = $mailer->send($message); + +Transport Types +~~~~~~~~~~~~~~~ + +A Transport is the component which actually does the sending. You need to +provide a Transport object to the Mailer class and there are several possible +options. + +Typically you will not need to know how a Transport works under-the-surface, +you will only need to know how to create an instance of one, and which one to +use for your environment. + +The SMTP Transport +.................. + +The SMTP Transport sends messages over the (standardized) Simple Message +Transfer Protocol. It can deal with encryption and authentication. + +The SMTP Transport, ``Swift_SmtpTransport`` is without doubt the most commonly +used Transport because it will work on 99% of web servers (I just made that +number up, but you get the idea). All the server needs is the ability to +connect to a remote (or even local) SMTP server on the correct port number +(usually 25). + +SMTP servers often require users to authenticate with a username and password +before any mail can be sent to other domains. This is easily achieved using +Swift Mailer with the SMTP Transport. + +SMTP is a protocol -- in other words it's a "way" of communicating a job +to be done (i.e. sending a message). The SMTP protocol is the fundamental +basis on which messages are delivered all over the internet 7 days a week, 365 +days a year. For this reason it's the most "direct" method of sending messages +you can use and it's the one that will give you the most power and feedback +(such as delivery failures) when using Swift Mailer. + +Because SMTP is generally run as a remote service (i.e. you connect to it over +the network/internet) it's extremely portable from server-to-server. You can +easily store the SMTP server address and port number in a configuration file +within your application and adjust the settings accordingly if the code is +moved or if the SMTP server is changed. + +Some SMTP servers -- Google for example -- use encryption for security reasons. +Swift Mailer supports using both SSL and TLS encryption settings. + +Using the SMTP Transport +^^^^^^^^^^^^^^^^^^^^^^^^ + +The SMTP Transport is easy to use. Most configuration options can be set with +the constructor. + +To use the SMTP Transport you need to know which SMTP server your code needs +to connect to. Ask your web host if you're not sure. Lots of people ask me who +to connect to -- I really can't answer that since it's a setting that's +extremely specific to your hosting environment. + +To use the SMTP Transport: + +* Call ``Swift_SmtpTransport::newInstance()`` with the SMTP server name and + optionally with a port number (defaults to 25). + +* Use the returned object to create the Mailer. + +A connection to the SMTP server will be established upon the first call to +``send()``. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport + $transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25); + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + + /* + It's also possible to use multiple method calls + + $transport = Swift_SmtpTransport::newInstance() + ->setHost('smtp.example.org') + ->setPort(25) + ; + */ + +Encrypted SMTP +^^^^^^^^^^^^^^ + +You can use SSL or TLS encryption with the SMTP Transport by specifying it as +a parameter or with a method call. + +To use encryption with the SMTP Transport: + +* Pass the encryption setting as a third parameter to + ``Swift_SmtpTransport::newInstance()``; or + +* Call the ``setEncryption()`` method on the Transport. + +A connection to the SMTP server will be established upon the first call to +``send()``. The connection will be initiated with the correct encryption +settings. + +.. note:: + + For SSL or TLS encryption to work your PHP installation must have + appropriate OpenSSL transports wrappers. You can check if "tls" and/or + "ssl" are present in your PHP installation by using the PHP function + ``stream_get_transports()`` + + .. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport + $transport = Swift_SmtpTransport::newInstance('smtp.example.org', 587, 'ssl'); + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + + /* + It's also possible to use multiple method calls + + $transport = Swift_SmtpTransport::newInstance() + ->setHost('smtp.example.org') + ->setPort(587) + ->setEncryption('ssl') + ; + */ + +SMTP with a Username and Password +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Some servers require authentication. You can provide a username and password +with ``setUsername()`` and ``setPassword()`` methods. + +To use a username and password with the SMTP Transport: + +* Create the Transport with ``Swift_SmtpTransport::newInstance()``. + +* Call the ``setUsername()`` and ``setPassword()`` methods on the Transport. + +Your username and password will be used to authenticate upon first connect +when ``send()`` are first used on the Mailer. + +If authentication fails, an Exception of type ``Swift_TransportException`` will +be thrown. + +.. note:: + + If you need to know early whether or not authentication has failed and an + Exception is going to be thrown, call the ``start()`` method on the + created Transport. + + .. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport the call setUsername() and setPassword() + $transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25) + ->setUsername('username') + ->setPassword('password') + ; + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + +The Sendmail Transport +...................... + +The Sendmail Transport sends messages by communicating with a locally +installed MTA -- such as ``sendmail``. + +The Sendmail Transport, ``Swift_SendmailTransport`` does not directly connect to +any remote services. It is designed for Linux servers that have ``sendmail`` +installed. The Transport starts a local ``sendmail`` process and sends messages +to it. Usually the ``sendmail`` process will respond quickly as it spools your +messages to disk before sending them. + +The Transport is named the Sendmail Transport for historical reasons +(``sendmail`` was the "standard" UNIX tool for sending e-mail for years). It +will send messages using other transfer agents such as Exim or Postfix despite +its name, provided they have the relevant sendmail wrappers so that they can be +started with the correct command-line flags. + +It's a common misconception that because the Sendmail Transport returns a +result very quickly it must therefore deliver messages to recipients quickly +-- this is not true. It's not slow by any means, but it's certainly not +faster than SMTP when it comes to getting messages to the intended recipients. +This is because sendmail itself sends the messages over SMTP once they have +been quickly spooled to disk. + +The Sendmail Transport has the potential to be just as smart of the SMTP +Transport when it comes to notifying Swift Mailer about which recipients were +rejected, but in reality the majority of locally installed ``sendmail`` +instances are not configured well enough to provide any useful feedback. As such +Swift Mailer may report successful deliveries where they did in fact fail before +they even left your server. + +You can run the Sendmail Transport in two different modes specified by command +line flags: + +* "``-bs``" runs in SMTP mode so theoretically it will act like the SMTP + Transport + +* "``-t``" runs in piped mode with no feedback, but theoretically faster, + though not advised + +You can think of the Sendmail Transport as a sort of asynchronous SMTP Transport +-- though if you have problems with delivery failures you should try using the +SMTP Transport instead. Swift Mailer isn't doing the work here, it's simply +passing the work to somebody else (i.e. ``sendmail``). + +Using the Sendmail Transport +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To use the Sendmail Transport you simply need to call +``Swift_SendmailTransport::newInstance()`` with the command as a parameter. + +To use the Sendmail Transport you need to know where ``sendmail`` or another MTA +exists on the server. Swift Mailer uses a default value of +``/usr/sbin/sendmail``, which should work on most systems. + +You specify the entire command as a parameter (i.e. including the command line +flags). Swift Mailer supports operational modes of "``-bs``" (default) and +"``-t``". + +.. note:: + + If you run sendmail in "``-t``" mode you will get no feedback as to whether + or not sending has succeeded. Use "``-bs``" unless you have a reason not to. + +To use the Sendmail Transport: + +* Call ``Swift_SendmailTransport::newInstance()`` with the command, including + the correct command line flags. The default is to use ``/usr/sbin/sendmail + -bs`` if this is not specified. + +* Use the returned object to create the Mailer. + +A sendmail process will be started upon the first call to ``send()``. If the +process cannot be started successfully an Exception of type +``Swift_TransportException`` will be thrown. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport + $transport = Swift_SendmailTransport::newInstance('/usr/sbin/exim -bs'); + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + +The Mail Transport +.................. + +The Mail Transport sends messages by delegating to PHP's internal +``mail()`` function. + +In my experience -- and others' -- the ``mail()`` function is not particularly +predictable, or helpful. + +Quite notably, the ``mail()`` function behaves entirely differently between +Linux and Windows servers. On linux it uses ``sendmail``, but on Windows it uses +SMTP. + +In order for the ``mail()`` function to even work at all ``php.ini`` needs to be +configured correctly, specifying the location of sendmail or of an SMTP server. + +The problem with ``mail()`` is that it "tries" to simplify things to the point +that it actually makes things more complex due to poor interface design. The +developers of Swift Mailer have gone to a lot of effort to make the Mail +Transport work with a reasonable degree of consistency. + +Serious drawbacks when using this Transport are: + +* Unpredictable message headers + +* Lack of feedback regarding delivery failures + +* Lack of support for several plugins that require real-time delivery feedback + +It's a last resort, and we say that with a passion! + +Using the Mail Transport +^^^^^^^^^^^^^^^^^^^^^^^^ + +To use the Mail Transport you simply need to call +``Swift_MailTransport::newInstance()``. It's unlikely you'll need to configure +the Transport. + +To use the Mail Transport: + +* Call ``Swift_MailTransport::newInstance()``. + +* Use the returned object to create the Mailer. + +Messages will be sent using the ``mail()`` function. + +.. note:: + + The ``mail()`` function can take a ``$additional_parameters`` parameter. + Swift Mailer sets this to "``-f%s``" by default, where the "``%s``" is + substituted with the address of the sender (via a ``sprintf()``) at send + time. You may override this default by passing an argument to + ``newInstance()``. + + .. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport + $transport = Swift_MailTransport::newInstance(); + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + +Available Methods for Sending Messages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Mailer class offers two methods for sending Messages -- ``send()``. +Each behaves in a slightly different way. + +When a message is sent in Swift Mailer, the Mailer class communicates with +whichever Transport class you have chosen to use. + +Each recipient in the message should either be accepted or rejected by the +Transport. For example, if the domain name on the email address is not +reachable the SMTP Transport may reject the address because it cannot process +it. Whichever method you use -- ``send()`` -- Swift Mailer will return +an integer indicating the number of accepted recipients. + +.. note:: + + It's possible to find out which recipients were rejected -- we'll cover that + later in this chapter. + +Using the ``send()`` Method +........................... + +The ``send()`` method of the ``Swift_Mailer`` class sends a message using +exactly the same logic as your Desktop mail client would use. Just pass it a +Message and get a result. + +To send a Message with ``send()``: + +* Create a Transport from one of the provided Transports -- + ``Swift_SmtpTransport``, ``Swift_SendmailTransport``, + ``Swift_MailTransport`` or one of the aggregate Transports. + +* Create an instance of the ``Swift_Mailer`` class, using the Transport as + it's constructor parameter. + +* Create a Message. + +* Send the message via the ``send()`` method on the Mailer object. + +The message will be sent just like it would be sent if you used your mail +client. An integer is returned which includes the number of successful +recipients. If none of the recipients could be sent to then zero will be +returned, which equates to a boolean ``false``. If you set two +``To:`` recipients and three ``Bcc:`` recipients in the message and all of the +recipients are delivered to successfully then the value 5 will be returned. + +.. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport + $transport = Swift_SmtpTransport::newInstance('localhost', 25); + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + + // Create a message + $message = Swift_Message::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself') + ; + + // Send the message + $numSent = $mailer->send($message); + + printf("Sent %d messages\n", $numSent); + + /* Note that often that only the boolean equivalent of the + return value is of concern (zero indicates FALSE) + + if ($mailer->send($message)) + { + echo "Sent\n"; + } + else + { + echo "Failed\n"; + } + + */ + +Sending Emails in Batch +....................... + +If you want to send a separate message to each recipient so that only their +own address shows up in the ``To:`` field, follow the following recipe: + +* Create a Transport from one of the provided Transports -- + ``Swift_SmtpTransport``, ``Swift_SendmailTransport``, + ``Swift_MailTransport`` or one of the aggregate Transports. + +* Create an instance of the ``Swift_Mailer`` class, using the Transport as + it's constructor parameter. + +* Create a Message. + +* Iterate over the recipients and send message via the ``send()`` method on + the Mailer object. + +Each recipient of the messages receives a different copy with only their own +email address on the ``To:`` field. + +Make sure to add only valid email addresses as recipients. If you try to add an +invalid email address with ``setTo()``, ``setCc()`` or ``setBcc()``, Swift +Mailer will throw a ``Swift_RfcComplianceException``. + +If you add recipients automatically based on a data source that may contain +invalid email addresses, you can prevent possible exceptions by validating the +addresses using ``Swift_Validate::email($email)`` and only adding addresses +that validate. Another way would be to wrap your ``setTo()``, ``setCc()`` and +``setBcc()`` calls in a try-catch block and handle the +``Swift_RfcComplianceException`` in the catch block. + +Handling invalid addresses properly is especially important when sending emails +in large batches since a single invalid address might cause an unhandled +exception and stop the execution or your script early. + +.. note:: + + In the following example, two emails are sent. One to each of + ``receiver@domain.org`` and ``other@domain.org``. These recipients will + not be aware of each other. + + .. code-block:: php + + require_once 'lib/swift_required.php'; + + // Create the Transport + $transport = Swift_SmtpTransport::newInstance('localhost', 25); + + // Create the Mailer using your created Transport + $mailer = Swift_Mailer::newInstance($transport); + + // Create a message + $message = Swift_Message::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setBody('Here is the message itself') + ; + + // Send the message + $failedRecipients = array(); + $numSent = 0; + $to = array('receiver@domain.org', 'other@domain.org' => 'A name'); + + foreach ($to as $address => $name) + { + if (is_int($address)) { + $message->setTo($name); + } else { + $message->setTo(array($address => $name)); + } + + $numSent += $mailer->send($message, $failedRecipients); + } + + printf("Sent %d messages\n", $numSent); + +Finding out Rejected Addresses +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It's possible to get a list of addresses that were rejected by the Transport +by using a by-reference parameter to ``send()``. + +As Swift Mailer attempts to send the message to each address given to it, if a +recipient is rejected it will be added to the array. You can pass an existing +array, otherwise one will be created by-reference. + +Collecting the list of recipients that were rejected can be useful in +circumstances where you need to "prune" a mailing list for example when some +addresses cannot be delivered to. + +Getting Failures By-reference +............................. + +Collecting delivery failures by-reference with the ``send()`` method is as +simple as passing a variable name to the method call. + +To get failed recipients by-reference: + +* Pass a by-reference variable name to the ``send()`` method of the Mailer + class. + +If the Transport rejects any of the recipients, the culprit addresses will be +added to the array provided by-reference. + +.. note:: + + If the variable name does not yet exist, it will be initialized as an + empty array and then failures will be added to that array. If the variable + already exists it will be type-cast to an array and failures will be added + to it. + + .. code-block:: php + + $mailer = Swift_Mailer::newInstance( ... ); + + $message = Swift_Message::newInstance( ... ) + ->setFrom( ... ) + ->setTo(array( + 'receiver@bad-domain.org' => 'Receiver Name', + 'other@domain.org' => 'A name', + 'other-receiver@bad-domain.org' => 'Other Name' + )) + ->setBody( ... ) + ; + + // Pass a variable name to the send() method + if (!$mailer->send($message, $failures)) + { + echo "Failures:"; + print_r($failures); + } + + /* + Failures: + Array ( + 0 => receiver@bad-domain.org, + 1 => other-receiver@bad-domain.org + ) + */ diff --git a/vendor/swiftmailer/swiftmailer/doc/uml/Encoders.graffle b/vendor/swiftmailer/swiftmailer/doc/uml/Encoders.graffle new file mode 100644 index 0000000000000000000000000000000000000000..f895752b70947592db74b6a3b8a6bd135a9fd150 GIT binary patch literal 3503 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 literal 0 HcmV?d00001 diff --git a/vendor/swiftmailer/swiftmailer/doc/uml/Mime.graffle b/vendor/swiftmailer/swiftmailer/doc/uml/Mime.graffle new file mode 100644 index 0000000000000000000000000000000000000000..e1e33cbf16ea45d29ad48eb9b2f37959292881b2 GIT binary patch literal 5575 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 VzxW)xOdDSB{SO2kTt$6+0RTlqtKk3u literal 0 HcmV?d00001 diff --git a/vendor/swiftmailer/swiftmailer/doc/uml/Transports.graffle b/vendor/swiftmailer/swiftmailer/doc/uml/Transports.graffle new file mode 100644 index 0000000000000000000000000000000000000000..5670e2b65ada6e01406334a4b462f58e8f48f4fd GIT binary patch literal 3061 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 D6q4x9 literal 0 HcmV?d00001 diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php new file mode 100644 index 0000000..72419b3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php @@ -0,0 +1,80 @@ +createDependenciesFor('mime.attachment') + ); + + $this->setBody($data); + $this->setFilename($filename); + if ($contentType) { + $this->setContentType($contentType); + } + } + + /** + * Create a new Attachment. + * + * @param string|Swift_OutputByteStream $data + * @param string $filename + * @param string $contentType + * + * @return Swift_Mime_Attachment + */ + public static function newInstance($data = null, $filename = null, $contentType = null) + { + return new self($data, $filename, $contentType); + } + + /** + * Create a new Attachment from a filesystem path. + * + * @param string $path + * @param string $contentType optional + * + * @return Swift_Mime_Attachment + */ + public static function fromPath($path, $contentType = null) + { + return self::newInstance()->setFile( + new Swift_ByteStream_FileByteStream($path), + $contentType + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php new file mode 100644 index 0000000..c397c8b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php @@ -0,0 +1,179 @@ +_filters[$key] = $filter; + } + + /** + * Remove an already present StreamFilter based on its $key. + * + * @param string $key + */ + public function removeFilter($key) + { + unset($this->_filters[$key]); + } + + /** + * Writes $bytes to the end of the stream. + * + * @param string $bytes + * + * @throws Swift_IoException + * + * @return int + */ + public function write($bytes) + { + $this->_writeBuffer .= $bytes; + foreach ($this->_filters as $filter) { + if ($filter->shouldBuffer($this->_writeBuffer)) { + return; + } + } + $this->_doWrite($this->_writeBuffer); + + return ++$this->_sequence; + } + + /** + * For any bytes that are currently buffered inside the stream, force them + * off the buffer. + * + * @throws Swift_IoException + */ + public function commit() + { + $this->_doWrite($this->_writeBuffer); + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + * + * @param Swift_InputByteStream $is + */ + public function bind(Swift_InputByteStream $is) + { + $this->_mirrors[] = $is; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + * + * @param Swift_InputByteStream $is + */ + public function unbind(Swift_InputByteStream $is) + { + foreach ($this->_mirrors as $k => $stream) { + if ($is === $stream) { + if ($this->_writeBuffer !== '') { + $stream->write($this->_writeBuffer); + } + unset($this->_mirrors[$k]); + } + } + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + * + * @throws Swift_IoException + */ + public function flushBuffers() + { + if ($this->_writeBuffer !== '') { + $this->_doWrite($this->_writeBuffer); + } + $this->_flush(); + + foreach ($this->_mirrors as $stream) { + $stream->flushBuffers(); + } + } + + /** Run $bytes through all filters */ + private function _filter($bytes) + { + foreach ($this->_filters as $filter) { + $bytes = $filter->filter($bytes); + } + + return $bytes; + } + + /** Just write the bytes to the stream */ + private function _doWrite($bytes) + { + $this->_commit($this->_filter($bytes)); + + foreach ($this->_mirrors as $stream) { + $stream->write($bytes); + } + + $this->_writeBuffer = ''; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php new file mode 100644 index 0000000..561cda8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php @@ -0,0 +1,184 @@ +_array = $stack; + $this->_arraySize = count($stack); + } elseif (is_string($stack)) { + $this->write($stack); + } else { + $this->_array = array(); + } + } + + /** + * Reads $length bytes from the stream into a string and moves the pointer + * through the stream by $length. + * + * If less bytes exist than are requested the + * remaining bytes are given instead. If no bytes are remaining at all, boolean + * false is returned. + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->_offset == $this->_arraySize) { + return false; + } + + // Don't use array slice + $end = $length + $this->_offset; + $end = $this->_arraySize < $end + ? $this->_arraySize + : $end; + $ret = ''; + for (; $this->_offset < $end; ++$this->_offset) { + $ret .= $this->_array[$this->_offset]; + } + + return $ret; + } + + /** + * Writes $bytes to the end of the stream. + * + * @param string $bytes + */ + public function write($bytes) + { + $to_add = str_split($bytes); + foreach ($to_add as $value) { + $this->_array[] = $value; + } + $this->_arraySize = count($this->_array); + + foreach ($this->_mirrors as $stream) { + $stream->write($bytes); + } + } + + /** + * Not used. + */ + public function commit() + { + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + * + * @param Swift_InputByteStream $is + */ + public function bind(Swift_InputByteStream $is) + { + $this->_mirrors[] = $is; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + * + * @param Swift_InputByteStream $is + */ + public function unbind(Swift_InputByteStream $is) + { + foreach ($this->_mirrors as $k => $stream) { + if ($is === $stream) { + unset($this->_mirrors[$k]); + } + } + } + + /** + * Move the internal read pointer to $byteOffset in the stream. + * + * @param int $byteOffset + * + * @return bool + */ + public function setReadPointer($byteOffset) + { + if ($byteOffset > $this->_arraySize) { + $byteOffset = $this->_arraySize; + } elseif ($byteOffset < 0) { + $byteOffset = 0; + } + + $this->_offset = $byteOffset; + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + */ + public function flushBuffers() + { + $this->_offset = 0; + $this->_array = array(); + $this->_arraySize = 0; + + foreach ($this->_mirrors as $stream) { + $stream->flushBuffers(); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php new file mode 100644 index 0000000..4061043 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php @@ -0,0 +1,229 @@ +_path = $path; + $this->_mode = $writable ? 'w+b' : 'rb'; + + if (function_exists('get_magic_quotes_runtime') && @get_magic_quotes_runtime() == 1) { + $this->_quotes = true; + } + } + + /** + * Get the complete path to the file. + * + * @return string + */ + public function getPath() + { + return $this->_path; + } + + /** + * Reads $length bytes from the stream into a string and moves the pointer + * through the stream by $length. + * + * If less bytes exist than are requested the + * remaining bytes are given instead. If no bytes are remaining at all, boolean + * false is returned. + * + * @param int $length + * + * @throws Swift_IoException + * + * @return string|bool + */ + public function read($length) + { + $fp = $this->_getReadHandle(); + if (!feof($fp)) { + if ($this->_quotes) { + ini_set('magic_quotes_runtime', 0); + } + $bytes = fread($fp, $length); + if ($this->_quotes) { + ini_set('magic_quotes_runtime', 1); + } + $this->_offset = ftell($fp); + + // If we read one byte after reaching the end of the file + // feof() will return false and an empty string is returned + if ($bytes === '' && feof($fp)) { + $this->_resetReadHandle(); + + return false; + } + + return $bytes; + } + + $this->_resetReadHandle(); + + return false; + } + + /** + * Move the internal read pointer to $byteOffset in the stream. + * + * @param int $byteOffset + * + * @return bool + */ + public function setReadPointer($byteOffset) + { + if (isset($this->_reader)) { + $this->_seekReadStreamToPosition($byteOffset); + } + $this->_offset = $byteOffset; + } + + /** Just write the bytes to the file */ + protected function _commit($bytes) + { + fwrite($this->_getWriteHandle(), $bytes); + $this->_resetReadHandle(); + } + + /** Not used */ + protected function _flush() + { + } + + /** Get the resource for reading */ + private function _getReadHandle() + { + if (!isset($this->_reader)) { + if (!$this->_reader = fopen($this->_path, 'rb')) { + throw new Swift_IoException( + 'Unable to open file for reading ['.$this->_path.']' + ); + } + if ($this->_offset != 0) { + $this->_getReadStreamSeekableStatus(); + $this->_seekReadStreamToPosition($this->_offset); + } + } + + return $this->_reader; + } + + /** Get the resource for writing */ + private function _getWriteHandle() + { + if (!isset($this->_writer)) { + if (!$this->_writer = fopen($this->_path, $this->_mode)) { + throw new Swift_IoException( + 'Unable to open file for writing ['.$this->_path.']' + ); + } + } + + return $this->_writer; + } + + /** Force a reload of the resource for reading */ + private function _resetReadHandle() + { + if (isset($this->_reader)) { + fclose($this->_reader); + $this->_reader = null; + } + } + + /** Check if ReadOnly Stream is seekable */ + private function _getReadStreamSeekableStatus() + { + $metas = stream_get_meta_data($this->_reader); + $this->_seekable = $metas['seekable']; + } + + /** Streams in a readOnly stream ensuring copy if needed */ + private function _seekReadStreamToPosition($offset) + { + if ($this->_seekable === null) { + $this->_getReadStreamSeekableStatus(); + } + if ($this->_seekable === false) { + $currentPos = ftell($this->_reader); + if ($currentPos < $offset) { + $toDiscard = $offset - $currentPos; + fread($this->_reader, $toDiscard); + + return; + } + $this->_copyReadStream(); + } + fseek($this->_reader, $offset, SEEK_SET); + } + + /** Copy a readOnly Stream to ensure seekability */ + private function _copyReadStream() + { + if ($tmpFile = fopen('php://temp/maxmemory:4096', 'w+b')) { + /* We have opened a php:// Stream Should work without problem */ + } elseif (function_exists('sys_get_temp_dir') && is_writable(sys_get_temp_dir()) && ($tmpFile = tmpfile())) { + /* We have opened a tmpfile */ + } else { + throw new Swift_IoException('Unable to copy the file to make it seekable, sys_temp_dir is not writable, php://memory not available'); + } + $currentPos = ftell($this->_reader); + fclose($this->_reader); + $source = fopen($this->_path, 'rb'); + if (!$source) { + throw new Swift_IoException('Unable to open file for copying ['.$this->_path.']'); + } + fseek($tmpFile, 0, SEEK_SET); + while (!feof($source)) { + fwrite($tmpFile, fread($source, 4096)); + } + fseek($tmpFile, $currentPos, SEEK_SET); + fclose($source); + $this->_reader = $tmpFile; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php new file mode 100644 index 0000000..1c9a80c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php @@ -0,0 +1,42 @@ +getPath())) === false) { + throw new Swift_IoException('Failed to get temporary file content.'); + } + + return $content; + } + + public function __destruct() + { + if (file_exists($this->getPath())) { + @unlink($this->getPath()); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php new file mode 100644 index 0000000..3d5e854 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php @@ -0,0 +1,67 @@ + + */ +interface Swift_CharacterReader +{ + const MAP_TYPE_INVALID = 0x01; + const MAP_TYPE_FIXED_LEN = 0x02; + const MAP_TYPE_POSITIONS = 0x03; + + /** + * Returns the complete character map. + * + * @param string $string + * @param int $startOffset + * @param array $currentMap + * @param mixed $ignoredChars + * + * @return int + */ + public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars); + + /** + * Returns the mapType, see constants. + * + * @return int + */ + public function getMapType(); + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param integer[] $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size); + + /** + * Returns the number of bytes which should be read to start each character. + * + * For fixed width character sets this should be the number of octets-per-character. + * For multibyte character sets this will probably be 1. + * + * @return int + */ + public function getInitialByteSize(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php new file mode 100644 index 0000000..c1029b9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php @@ -0,0 +1,97 @@ + + */ +class Swift_CharacterReader_GenericFixedWidthReader implements Swift_CharacterReader +{ + /** + * The number of bytes in a single character. + * + * @var int + */ + private $_width; + + /** + * Creates a new GenericFixedWidthReader using $width bytes per character. + * + * @param int $width + */ + public function __construct($width) + { + $this->_width = $width; + } + + /** + * Returns the complete character map. + * + * @param string $string + * @param int $startOffset + * @param array $currentMap + * @param mixed $ignoredChars + * + * @return int + */ + public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars) + { + $strlen = strlen($string); + // % and / are CPU intensive, so, maybe find a better way + $ignored = $strlen % $this->_width; + $ignoredChars = substr($string, -$ignored); + $currentMap = $this->_width; + + return ($strlen - $ignored) / $this->_width; + } + + /** + * Returns the mapType. + * + * @return int + */ + public function getMapType() + { + return self::MAP_TYPE_FIXED_LEN; + } + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param string $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size) + { + $needed = $this->_width - $size; + + return ($needed > -1) ? $needed : -1; + } + + /** + * Returns the number of bytes which should be read to start each character. + * + * @return int + */ + public function getInitialByteSize() + { + return $this->_width; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php new file mode 100644 index 0000000..ddc34ca --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php @@ -0,0 +1,84 @@ + "\x07F") { + // Invalid char + $currentMap[$i + $startOffset] = $string[$i]; + } + } + + return $strlen; + } + + /** + * Returns mapType. + * + * @return int mapType + */ + public function getMapType() + { + return self::MAP_TYPE_INVALID; + } + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param string $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size) + { + $byte = reset($bytes); + if (1 == count($bytes) && $byte >= 0x00 && $byte <= 0x7F) { + return 0; + } else { + return -1; + } + } + + /** + * Returns the number of bytes which should be read to start each character. + * + * @return int + */ + public function getInitialByteSize() + { + return 1; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php new file mode 100644 index 0000000..d5fa9c9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php @@ -0,0 +1,179 @@ + + */ +class Swift_CharacterReader_Utf8Reader implements Swift_CharacterReader +{ + /** Pre-computed for optimization */ + private static $length_map = array( + // N=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x0N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x1N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x2N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x3N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x4N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x5N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x6N + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0x7N + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0x8N + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0x9N + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0xAN + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0xBN + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // 0xCN + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // 0xDN + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, // 0xEN + 4,4,4,4,4,4,4,4,5,5,5,5,6,6,0,0, // 0xFN + ); + + private static $s_length_map = array( + "\x00" => 1, "\x01" => 1, "\x02" => 1, "\x03" => 1, "\x04" => 1, "\x05" => 1, "\x06" => 1, "\x07" => 1, + "\x08" => 1, "\x09" => 1, "\x0a" => 1, "\x0b" => 1, "\x0c" => 1, "\x0d" => 1, "\x0e" => 1, "\x0f" => 1, + "\x10" => 1, "\x11" => 1, "\x12" => 1, "\x13" => 1, "\x14" => 1, "\x15" => 1, "\x16" => 1, "\x17" => 1, + "\x18" => 1, "\x19" => 1, "\x1a" => 1, "\x1b" => 1, "\x1c" => 1, "\x1d" => 1, "\x1e" => 1, "\x1f" => 1, + "\x20" => 1, "\x21" => 1, "\x22" => 1, "\x23" => 1, "\x24" => 1, "\x25" => 1, "\x26" => 1, "\x27" => 1, + "\x28" => 1, "\x29" => 1, "\x2a" => 1, "\x2b" => 1, "\x2c" => 1, "\x2d" => 1, "\x2e" => 1, "\x2f" => 1, + "\x30" => 1, "\x31" => 1, "\x32" => 1, "\x33" => 1, "\x34" => 1, "\x35" => 1, "\x36" => 1, "\x37" => 1, + "\x38" => 1, "\x39" => 1, "\x3a" => 1, "\x3b" => 1, "\x3c" => 1, "\x3d" => 1, "\x3e" => 1, "\x3f" => 1, + "\x40" => 1, "\x41" => 1, "\x42" => 1, "\x43" => 1, "\x44" => 1, "\x45" => 1, "\x46" => 1, "\x47" => 1, + "\x48" => 1, "\x49" => 1, "\x4a" => 1, "\x4b" => 1, "\x4c" => 1, "\x4d" => 1, "\x4e" => 1, "\x4f" => 1, + "\x50" => 1, "\x51" => 1, "\x52" => 1, "\x53" => 1, "\x54" => 1, "\x55" => 1, "\x56" => 1, "\x57" => 1, + "\x58" => 1, "\x59" => 1, "\x5a" => 1, "\x5b" => 1, "\x5c" => 1, "\x5d" => 1, "\x5e" => 1, "\x5f" => 1, + "\x60" => 1, "\x61" => 1, "\x62" => 1, "\x63" => 1, "\x64" => 1, "\x65" => 1, "\x66" => 1, "\x67" => 1, + "\x68" => 1, "\x69" => 1, "\x6a" => 1, "\x6b" => 1, "\x6c" => 1, "\x6d" => 1, "\x6e" => 1, "\x6f" => 1, + "\x70" => 1, "\x71" => 1, "\x72" => 1, "\x73" => 1, "\x74" => 1, "\x75" => 1, "\x76" => 1, "\x77" => 1, + "\x78" => 1, "\x79" => 1, "\x7a" => 1, "\x7b" => 1, "\x7c" => 1, "\x7d" => 1, "\x7e" => 1, "\x7f" => 1, + "\x80" => 0, "\x81" => 0, "\x82" => 0, "\x83" => 0, "\x84" => 0, "\x85" => 0, "\x86" => 0, "\x87" => 0, + "\x88" => 0, "\x89" => 0, "\x8a" => 0, "\x8b" => 0, "\x8c" => 0, "\x8d" => 0, "\x8e" => 0, "\x8f" => 0, + "\x90" => 0, "\x91" => 0, "\x92" => 0, "\x93" => 0, "\x94" => 0, "\x95" => 0, "\x96" => 0, "\x97" => 0, + "\x98" => 0, "\x99" => 0, "\x9a" => 0, "\x9b" => 0, "\x9c" => 0, "\x9d" => 0, "\x9e" => 0, "\x9f" => 0, + "\xa0" => 0, "\xa1" => 0, "\xa2" => 0, "\xa3" => 0, "\xa4" => 0, "\xa5" => 0, "\xa6" => 0, "\xa7" => 0, + "\xa8" => 0, "\xa9" => 0, "\xaa" => 0, "\xab" => 0, "\xac" => 0, "\xad" => 0, "\xae" => 0, "\xaf" => 0, + "\xb0" => 0, "\xb1" => 0, "\xb2" => 0, "\xb3" => 0, "\xb4" => 0, "\xb5" => 0, "\xb6" => 0, "\xb7" => 0, + "\xb8" => 0, "\xb9" => 0, "\xba" => 0, "\xbb" => 0, "\xbc" => 0, "\xbd" => 0, "\xbe" => 0, "\xbf" => 0, + "\xc0" => 2, "\xc1" => 2, "\xc2" => 2, "\xc3" => 2, "\xc4" => 2, "\xc5" => 2, "\xc6" => 2, "\xc7" => 2, + "\xc8" => 2, "\xc9" => 2, "\xca" => 2, "\xcb" => 2, "\xcc" => 2, "\xcd" => 2, "\xce" => 2, "\xcf" => 2, + "\xd0" => 2, "\xd1" => 2, "\xd2" => 2, "\xd3" => 2, "\xd4" => 2, "\xd5" => 2, "\xd6" => 2, "\xd7" => 2, + "\xd8" => 2, "\xd9" => 2, "\xda" => 2, "\xdb" => 2, "\xdc" => 2, "\xdd" => 2, "\xde" => 2, "\xdf" => 2, + "\xe0" => 3, "\xe1" => 3, "\xe2" => 3, "\xe3" => 3, "\xe4" => 3, "\xe5" => 3, "\xe6" => 3, "\xe7" => 3, + "\xe8" => 3, "\xe9" => 3, "\xea" => 3, "\xeb" => 3, "\xec" => 3, "\xed" => 3, "\xee" => 3, "\xef" => 3, + "\xf0" => 4, "\xf1" => 4, "\xf2" => 4, "\xf3" => 4, "\xf4" => 4, "\xf5" => 4, "\xf6" => 4, "\xf7" => 4, + "\xf8" => 5, "\xf9" => 5, "\xfa" => 5, "\xfb" => 5, "\xfc" => 6, "\xfd" => 6, "\xfe" => 0, "\xff" => 0, + ); + + /** + * Returns the complete character map. + * + * @param string $string + * @param int $startOffset + * @param array $currentMap + * @param mixed $ignoredChars + * + * @return int + */ + public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars) + { + if (!isset($currentMap['i']) || !isset($currentMap['p'])) { + $currentMap['p'] = $currentMap['i'] = array(); + } + + $strlen = strlen($string); + $charPos = count($currentMap['p']); + $foundChars = 0; + $invalid = false; + for ($i = 0; $i < $strlen; ++$i) { + $char = $string[$i]; + $size = self::$s_length_map[$char]; + if ($size == 0) { + /* char is invalid, we must wait for a resync */ + $invalid = true; + continue; + } else { + if ($invalid == true) { + /* We mark the chars as invalid and start a new char */ + $currentMap['p'][$charPos + $foundChars] = $startOffset + $i; + $currentMap['i'][$charPos + $foundChars] = true; + ++$foundChars; + $invalid = false; + } + if (($i + $size) > $strlen) { + $ignoredChars = substr($string, $i); + break; + } + for ($j = 1; $j < $size; ++$j) { + $char = $string[$i + $j]; + if ($char > "\x7F" && $char < "\xC0") { + // Valid - continue parsing + } else { + /* char is invalid, we must wait for a resync */ + $invalid = true; + continue 2; + } + } + /* Ok we got a complete char here */ + $currentMap['p'][$charPos + $foundChars] = $startOffset + $i + $size; + $i += $j - 1; + ++$foundChars; + } + } + + return $foundChars; + } + + /** + * Returns mapType. + * + * @return int mapType + */ + public function getMapType() + { + return self::MAP_TYPE_POSITIONS; + } + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param string $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size) + { + if ($size < 1) { + return -1; + } + $needed = self::$length_map[$bytes[0]] - $size; + + return ($needed > -1) + ? $needed + : -1 + ; + } + + /** + * Returns the number of bytes which should be read to start each character. + * + * @return int + */ + public function getInitialByteSize() + { + return 1; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php new file mode 100644 index 0000000..15b6c69 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php @@ -0,0 +1,26 @@ +init(); + } + + public function __wakeup() + { + $this->init(); + } + + public function init() + { + if (count(self::$_map) > 0) { + return; + } + + $prefix = 'Swift_CharacterReader_'; + + $singleByte = array( + 'class' => $prefix.'GenericFixedWidthReader', + 'constructor' => array(1), + ); + + $doubleByte = array( + 'class' => $prefix.'GenericFixedWidthReader', + 'constructor' => array(2), + ); + + $fourBytes = array( + 'class' => $prefix.'GenericFixedWidthReader', + 'constructor' => array(4), + ); + + // Utf-8 + self::$_map['utf-?8'] = array( + 'class' => $prefix.'Utf8Reader', + 'constructor' => array(), + ); + + //7-8 bit charsets + self::$_map['(us-)?ascii'] = $singleByte; + self::$_map['(iso|iec)-?8859-?[0-9]+'] = $singleByte; + self::$_map['windows-?125[0-9]'] = $singleByte; + self::$_map['cp-?[0-9]+'] = $singleByte; + self::$_map['ansi'] = $singleByte; + self::$_map['macintosh'] = $singleByte; + self::$_map['koi-?7'] = $singleByte; + self::$_map['koi-?8-?.+'] = $singleByte; + self::$_map['mik'] = $singleByte; + self::$_map['(cork|t1)'] = $singleByte; + self::$_map['v?iscii'] = $singleByte; + + //16 bits + self::$_map['(ucs-?2|utf-?16)'] = $doubleByte; + + //32 bits + self::$_map['(ucs-?4|utf-?32)'] = $fourBytes; + + // Fallback + self::$_map['.*'] = $singleByte; + } + + /** + * Returns a CharacterReader suitable for the charset applied. + * + * @param string $charset + * + * @return Swift_CharacterReader + */ + public function getReaderFor($charset) + { + $charset = trim(strtolower($charset)); + foreach (self::$_map as $pattern => $spec) { + $re = '/^'.$pattern.'$/D'; + if (preg_match($re, $charset)) { + if (!array_key_exists($pattern, self::$_loaded)) { + $reflector = new ReflectionClass($spec['class']); + if ($reflector->getConstructor()) { + $reader = $reflector->newInstanceArgs($spec['constructor']); + } else { + $reader = $reflector->newInstance(); + } + self::$_loaded[$pattern] = $reader; + } + + return self::$_loaded[$pattern]; + } + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php new file mode 100644 index 0000000..717924f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php @@ -0,0 +1,89 @@ +setCharacterReaderFactory($factory); + $this->setCharacterSet($charset); + } + + /** + * Set the character set used in this CharacterStream. + * + * @param string $charset + */ + public function setCharacterSet($charset) + { + $this->_charset = $charset; + $this->_charReader = null; + } + + /** + * Set the CharacterReaderFactory for multi charset support. + * + * @param Swift_CharacterReaderFactory $factory + */ + public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) + { + $this->_charReaderFactory = $factory; + } + + /** + * Overwrite this character stream using the byte sequence in the byte stream. + * + * @param Swift_OutputByteStream $os output stream to read from + */ + public function importByteStream(Swift_OutputByteStream $os) + { + if (!isset($this->_charReader)) { + $this->_charReader = $this->_charReaderFactory + ->getReaderFor($this->_charset); + } + + $startLength = $this->_charReader->getInitialByteSize(); + while (false !== $bytes = $os->read($startLength)) { + $c = array(); + for ($i = 0, $len = strlen($bytes); $i < $len; ++$i) { + $c[] = self::$_byteMap[$bytes[$i]]; + } + $size = count($c); + $need = $this->_charReader + ->validateByteSequence($c, $size); + if ($need > 0 && + false !== $bytes = $os->read($need)) { + for ($i = 0, $len = strlen($bytes); $i < $len; ++$i) { + $c[] = self::$_byteMap[$bytes[$i]]; + } + } + $this->_array[] = $c; + ++$this->_array_size; + } + } + + /** + * Import a string a bytes into this CharacterStream, overwriting any existing + * data in the stream. + * + * @param string $string + */ + public function importString($string) + { + $this->flushContents(); + $this->write($string); + } + + /** + * Read $length characters from the stream and move the internal pointer + * $length further into the stream. + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->_offset == $this->_array_size) { + return false; + } + + // Don't use array slice + $arrays = array(); + $end = $length + $this->_offset; + for ($i = $this->_offset; $i < $end; ++$i) { + if (!isset($this->_array[$i])) { + break; + } + $arrays[] = $this->_array[$i]; + } + $this->_offset += $i - $this->_offset; // Limit function calls + $chars = false; + foreach ($arrays as $array) { + $chars .= implode('', array_map('chr', $array)); + } + + return $chars; + } + + /** + * Read $length characters from the stream and return a 1-dimensional array + * containing there octet values. + * + * @param int $length + * + * @return integer[] + */ + public function readBytes($length) + { + if ($this->_offset == $this->_array_size) { + return false; + } + $arrays = array(); + $end = $length + $this->_offset; + for ($i = $this->_offset; $i < $end; ++$i) { + if (!isset($this->_array[$i])) { + break; + } + $arrays[] = $this->_array[$i]; + } + $this->_offset += ($i - $this->_offset); // Limit function calls + + return call_user_func_array('array_merge', $arrays); + } + + /** + * Write $chars to the end of the stream. + * + * @param string $chars + */ + public function write($chars) + { + if (!isset($this->_charReader)) { + $this->_charReader = $this->_charReaderFactory->getReaderFor( + $this->_charset); + } + + $startLength = $this->_charReader->getInitialByteSize(); + + $fp = fopen('php://memory', 'w+b'); + fwrite($fp, $chars); + unset($chars); + fseek($fp, 0, SEEK_SET); + + $buffer = array(0); + $buf_pos = 1; + $buf_len = 1; + $has_datas = true; + do { + $bytes = array(); + // Buffer Filing + if ($buf_len - $buf_pos < $startLength) { + $buf = array_splice($buffer, $buf_pos); + $new = $this->_reloadBuffer($fp, 100); + if ($new) { + $buffer = array_merge($buf, $new); + $buf_len = count($buffer); + $buf_pos = 0; + } else { + $has_datas = false; + } + } + if ($buf_len - $buf_pos > 0) { + $size = 0; + for ($i = 0; $i < $startLength && isset($buffer[$buf_pos]); ++$i) { + ++$size; + $bytes[] = $buffer[$buf_pos++]; + } + $need = $this->_charReader->validateByteSequence( + $bytes, $size); + if ($need > 0) { + if ($buf_len - $buf_pos < $need) { + $new = $this->_reloadBuffer($fp, $need); + + if ($new) { + $buffer = array_merge($buffer, $new); + $buf_len = count($buffer); + } + } + for ($i = 0; $i < $need && isset($buffer[$buf_pos]); ++$i) { + $bytes[] = $buffer[$buf_pos++]; + } + } + $this->_array[] = $bytes; + ++$this->_array_size; + } + } while ($has_datas); + + fclose($fp); + } + + /** + * Move the internal pointer to $charOffset in the stream. + * + * @param int $charOffset + */ + public function setPointer($charOffset) + { + if ($charOffset > $this->_array_size) { + $charOffset = $this->_array_size; + } elseif ($charOffset < 0) { + $charOffset = 0; + } + $this->_offset = $charOffset; + } + + /** + * Empty the stream and reset the internal pointer. + */ + public function flushContents() + { + $this->_offset = 0; + $this->_array = array(); + $this->_array_size = 0; + } + + private function _reloadBuffer($fp, $len) + { + if (!feof($fp) && ($bytes = fread($fp, $len)) !== false) { + $buf = array(); + for ($i = 0, $len = strlen($bytes); $i < $len; ++$i) { + $buf[] = self::$_byteMap[$bytes[$i]]; + } + + return $buf; + } + + return false; + } + + private static function _initializeMaps() + { + if (!isset(self::$_charMap)) { + self::$_charMap = array(); + for ($byte = 0; $byte < 256; ++$byte) { + self::$_charMap[$byte] = chr($byte); + } + self::$_byteMap = array_flip(self::$_charMap); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php new file mode 100644 index 0000000..7620d0e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php @@ -0,0 +1,275 @@ + + */ +class Swift_CharacterStream_NgCharacterStream implements Swift_CharacterStream +{ + /** + * The char reader (lazy-loaded) for the current charset. + * + * @var Swift_CharacterReader + */ + private $_charReader; + + /** + * A factory for creating CharacterReader instances. + * + * @var Swift_CharacterReaderFactory + */ + private $_charReaderFactory; + + /** + * The character set this stream is using. + * + * @var string + */ + private $_charset; + + /** + * The data's stored as-is. + * + * @var string + */ + private $_datas = ''; + + /** + * Number of bytes in the stream. + * + * @var int + */ + private $_datasSize = 0; + + /** + * Map. + * + * @var mixed + */ + private $_map; + + /** + * Map Type. + * + * @var int + */ + private $_mapType = 0; + + /** + * Number of characters in the stream. + * + * @var int + */ + private $_charCount = 0; + + /** + * Position in the stream. + * + * @var int + */ + private $_currentPos = 0; + + /** + * Constructor. + * + * @param Swift_CharacterReaderFactory $factory + * @param string $charset + */ + public function __construct(Swift_CharacterReaderFactory $factory, $charset) + { + $this->setCharacterReaderFactory($factory); + $this->setCharacterSet($charset); + } + + /* -- Changing parameters of the stream -- */ + + /** + * Set the character set used in this CharacterStream. + * + * @param string $charset + */ + public function setCharacterSet($charset) + { + $this->_charset = $charset; + $this->_charReader = null; + $this->_mapType = 0; + } + + /** + * Set the CharacterReaderFactory for multi charset support. + * + * @param Swift_CharacterReaderFactory $factory + */ + public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) + { + $this->_charReaderFactory = $factory; + } + + /** + * @see Swift_CharacterStream::flushContents() + */ + public function flushContents() + { + $this->_datas = null; + $this->_map = null; + $this->_charCount = 0; + $this->_currentPos = 0; + $this->_datasSize = 0; + } + + /** + * @see Swift_CharacterStream::importByteStream() + * + * @param Swift_OutputByteStream $os + */ + public function importByteStream(Swift_OutputByteStream $os) + { + $this->flushContents(); + $blocks = 512; + $os->setReadPointer(0); + while (false !== ($read = $os->read($blocks))) { + $this->write($read); + } + } + + /** + * @see Swift_CharacterStream::importString() + * + * @param string $string + */ + public function importString($string) + { + $this->flushContents(); + $this->write($string); + } + + /** + * @see Swift_CharacterStream::read() + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->_currentPos >= $this->_charCount) { + return false; + } + $ret = false; + $length = ($this->_currentPos + $length > $this->_charCount) + ? $this->_charCount - $this->_currentPos + : $length; + switch ($this->_mapType) { + case Swift_CharacterReader::MAP_TYPE_FIXED_LEN: + $len = $length * $this->_map; + $ret = substr($this->_datas, + $this->_currentPos * $this->_map, + $len); + $this->_currentPos += $length; + break; + + case Swift_CharacterReader::MAP_TYPE_INVALID: + $end = $this->_currentPos + $length; + $end = $end > $this->_charCount + ? $this->_charCount + : $end; + $ret = ''; + for (; $this->_currentPos < $length; ++$this->_currentPos) { + if (isset($this->_map[$this->_currentPos])) { + $ret .= '?'; + } else { + $ret .= $this->_datas[$this->_currentPos]; + } + } + break; + + case Swift_CharacterReader::MAP_TYPE_POSITIONS: + $end = $this->_currentPos + $length; + $end = $end > $this->_charCount + ? $this->_charCount + : $end; + $ret = ''; + $start = 0; + if ($this->_currentPos > 0) { + $start = $this->_map['p'][$this->_currentPos - 1]; + } + $to = $start; + for (; $this->_currentPos < $end; ++$this->_currentPos) { + if (isset($this->_map['i'][$this->_currentPos])) { + $ret .= substr($this->_datas, $start, $to - $start).'?'; + $start = $this->_map['p'][$this->_currentPos]; + } else { + $to = $this->_map['p'][$this->_currentPos]; + } + } + $ret .= substr($this->_datas, $start, $to - $start); + break; + } + + return $ret; + } + + /** + * @see Swift_CharacterStream::readBytes() + * + * @param int $length + * + * @return integer[] + */ + public function readBytes($length) + { + $read = $this->read($length); + if ($read !== false) { + $ret = array_map('ord', str_split($read, 1)); + + return $ret; + } + + return false; + } + + /** + * @see Swift_CharacterStream::setPointer() + * + * @param int $charOffset + */ + public function setPointer($charOffset) + { + if ($this->_charCount < $charOffset) { + $charOffset = $this->_charCount; + } + $this->_currentPos = $charOffset; + } + + /** + * @see Swift_CharacterStream::write() + * + * @param string $chars + */ + public function write($chars) + { + if (!isset($this->_charReader)) { + $this->_charReader = $this->_charReaderFactory->getReaderFor( + $this->_charset); + $this->_map = array(); + $this->_mapType = $this->_charReader->getMapType(); + } + $ignored = ''; + $this->_datas .= $chars; + $this->_charCount += $this->_charReader->getCharPositions(substr($this->_datas, $this->_datasSize), $this->_datasSize, $this->_map, $ignored); + if ($ignored !== false) { + $this->_datasSize = strlen($this->_datas) - strlen($ignored); + } else { + $this->_datasSize = strlen($this->_datas); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php new file mode 100644 index 0000000..4ae5bac --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Base class for Spools (implements time and message limits). + * + * @author Fabien Potencier + */ +abstract class Swift_ConfigurableSpool implements Swift_Spool +{ + /** The maximum number of messages to send per flush */ + private $_message_limit; + + /** The time limit per flush */ + private $_time_limit; + + /** + * Sets the maximum number of messages to send per flush. + * + * @param int $limit + */ + public function setMessageLimit($limit) + { + $this->_message_limit = (int) $limit; + } + + /** + * Gets the maximum number of messages to send per flush. + * + * @return int The limit + */ + public function getMessageLimit() + { + return $this->_message_limit; + } + + /** + * Sets the time limit (in seconds) per flush. + * + * @param int $limit The limit + */ + public function setTimeLimit($limit) + { + $this->_time_limit = (int) $limit; + } + + /** + * Gets the time limit (in seconds) per flush. + * + * @return int The limit + */ + public function getTimeLimit() + { + return $this->_time_limit; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php new file mode 100644 index 0000000..660cc84 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php @@ -0,0 +1,373 @@ +_store); + } + + /** + * Test if an item is registered in this container with the given name. + * + * @see register() + * + * @param string $itemName + * + * @return bool + */ + public function has($itemName) + { + return array_key_exists($itemName, $this->_store) + && isset($this->_store[$itemName]['lookupType']); + } + + /** + * Lookup the item with the given $itemName. + * + * @see register() + * + * @param string $itemName + * + * @throws Swift_DependencyException If the dependency is not found + * + * @return mixed + */ + public function lookup($itemName) + { + if (!$this->has($itemName)) { + throw new Swift_DependencyException( + 'Cannot lookup dependency "'.$itemName.'" since it is not registered.' + ); + } + + switch ($this->_store[$itemName]['lookupType']) { + case self::TYPE_ALIAS: + return $this->_createAlias($itemName); + case self::TYPE_VALUE: + return $this->_getValue($itemName); + case self::TYPE_INSTANCE: + return $this->_createNewInstance($itemName); + case self::TYPE_SHARED: + return $this->_createSharedInstance($itemName); + } + } + + /** + * Create an array of arguments passed to the constructor of $itemName. + * + * @param string $itemName + * + * @return array + */ + public function createDependenciesFor($itemName) + { + $args = array(); + if (isset($this->_store[$itemName]['args'])) { + $args = $this->_resolveArgs($this->_store[$itemName]['args']); + } + + return $args; + } + + /** + * Register a new dependency with $itemName. + * + * This method returns the current DependencyContainer instance because it + * requires the use of the fluid interface to set the specific details for the + * dependency. + * + * @see asNewInstanceOf(), asSharedInstanceOf(), asValue() + * + * @param string $itemName + * + * @return Swift_DependencyContainer + */ + public function register($itemName) + { + $this->_store[$itemName] = array(); + $this->_endPoint = &$this->_store[$itemName]; + + return $this; + } + + /** + * Specify the previously registered item as a literal value. + * + * {@link register()} must be called before this will work. + * + * @param mixed $value + * + * @return Swift_DependencyContainer + */ + public function asValue($value) + { + $endPoint = &$this->_getEndPoint(); + $endPoint['lookupType'] = self::TYPE_VALUE; + $endPoint['value'] = $value; + + return $this; + } + + /** + * Specify the previously registered item as an alias of another item. + * + * @param string $lookup + * + * @return Swift_DependencyContainer + */ + public function asAliasOf($lookup) + { + $endPoint = &$this->_getEndPoint(); + $endPoint['lookupType'] = self::TYPE_ALIAS; + $endPoint['ref'] = $lookup; + + return $this; + } + + /** + * Specify the previously registered item as a new instance of $className. + * + * {@link register()} must be called before this will work. + * Any arguments can be set with {@link withDependencies()}, + * {@link addConstructorValue()} or {@link addConstructorLookup()}. + * + * @see withDependencies(), addConstructorValue(), addConstructorLookup() + * + * @param string $className + * + * @return Swift_DependencyContainer + */ + public function asNewInstanceOf($className) + { + $endPoint = &$this->_getEndPoint(); + $endPoint['lookupType'] = self::TYPE_INSTANCE; + $endPoint['className'] = $className; + + return $this; + } + + /** + * Specify the previously registered item as a shared instance of $className. + * + * {@link register()} must be called before this will work. + * + * @param string $className + * + * @return Swift_DependencyContainer + */ + public function asSharedInstanceOf($className) + { + $endPoint = &$this->_getEndPoint(); + $endPoint['lookupType'] = self::TYPE_SHARED; + $endPoint['className'] = $className; + + return $this; + } + + /** + * Specify a list of injected dependencies for the previously registered item. + * + * This method takes an array of lookup names. + * + * @see addConstructorValue(), addConstructorLookup() + * + * @param array $lookups + * + * @return Swift_DependencyContainer + */ + public function withDependencies(array $lookups) + { + $endPoint = &$this->_getEndPoint(); + $endPoint['args'] = array(); + foreach ($lookups as $lookup) { + $this->addConstructorLookup($lookup); + } + + return $this; + } + + /** + * Specify a literal (non looked up) value for the constructor of the + * previously registered item. + * + * @see withDependencies(), addConstructorLookup() + * + * @param mixed $value + * + * @return Swift_DependencyContainer + */ + public function addConstructorValue($value) + { + $endPoint = &$this->_getEndPoint(); + if (!isset($endPoint['args'])) { + $endPoint['args'] = array(); + } + $endPoint['args'][] = array('type' => 'value', 'item' => $value); + + return $this; + } + + /** + * Specify a dependency lookup for the constructor of the previously + * registered item. + * + * @see withDependencies(), addConstructorValue() + * + * @param string $lookup + * + * @return Swift_DependencyContainer + */ + public function addConstructorLookup($lookup) + { + $endPoint = &$this->_getEndPoint(); + if (!isset($this->_endPoint['args'])) { + $endPoint['args'] = array(); + } + $endPoint['args'][] = array('type' => 'lookup', 'item' => $lookup); + + return $this; + } + + /** Get the literal value with $itemName */ + private function _getValue($itemName) + { + return $this->_store[$itemName]['value']; + } + + /** Resolve an alias to another item */ + private function _createAlias($itemName) + { + return $this->lookup($this->_store[$itemName]['ref']); + } + + /** Create a fresh instance of $itemName */ + private function _createNewInstance($itemName) + { + $reflector = new ReflectionClass($this->_store[$itemName]['className']); + if ($reflector->getConstructor()) { + return $reflector->newInstanceArgs( + $this->createDependenciesFor($itemName) + ); + } else { + return $reflector->newInstance(); + } + } + + /** Create and register a shared instance of $itemName */ + private function _createSharedInstance($itemName) + { + if (!isset($this->_store[$itemName]['instance'])) { + $this->_store[$itemName]['instance'] = $this->_createNewInstance($itemName); + } + + return $this->_store[$itemName]['instance']; + } + + /** Get the current endpoint in the store */ + private function &_getEndPoint() + { + if (!isset($this->_endPoint)) { + throw new BadMethodCallException( + 'Component must first be registered by calling register()' + ); + } + + return $this->_endPoint; + } + + /** Get an argument list with dependencies resolved */ + private function _resolveArgs(array $args) + { + $resolved = array(); + foreach ($args as $argDefinition) { + switch ($argDefinition['type']) { + case 'lookup': + $resolved[] = $this->_lookupRecursive($argDefinition['item']); + break; + case 'value': + $resolved[] = $argDefinition['item']; + break; + } + } + + return $resolved; + } + + /** Resolve a single dependency with an collections */ + private function _lookupRecursive($item) + { + if (is_array($item)) { + $collection = array(); + foreach ($item as $k => $v) { + $collection[$k] = $this->_lookupRecursive($v); + } + + return $collection; + } else { + return $this->lookup($item); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php new file mode 100644 index 0000000..799d38d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php @@ -0,0 +1,27 @@ +createDependenciesFor('mime.embeddedfile') + ); + + $this->setBody($data); + $this->setFilename($filename); + if ($contentType) { + $this->setContentType($contentType); + } + } + + /** + * Create a new EmbeddedFile. + * + * @param string|Swift_OutputByteStream $data + * @param string $filename + * @param string $contentType + * + * @return Swift_Mime_EmbeddedFile + */ + public static function newInstance($data = null, $filename = null, $contentType = null) + { + return new self($data, $filename, $contentType); + } + + /** + * Create a new EmbeddedFile from a filesystem path. + * + * @param string $path + * + * @return Swift_Mime_EmbeddedFile + */ + public static function fromPath($path) + { + return self::newInstance()->setFile( + new Swift_ByteStream_FileByteStream($path) + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php new file mode 100644 index 0000000..2073abc --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php @@ -0,0 +1,28 @@ += $maxLineLength || 76 < $maxLineLength) { + $maxLineLength = 76; + } + + $encodedString = base64_encode($string); + $firstLine = ''; + + if (0 != $firstLineOffset) { + $firstLine = substr( + $encodedString, 0, $maxLineLength - $firstLineOffset + )."\r\n"; + $encodedString = substr( + $encodedString, $maxLineLength - $firstLineOffset + ); + } + + return $firstLine.trim(chunk_split($encodedString, $maxLineLength, "\r\n")); + } + + /** + * Does nothing. + */ + public function charsetChanged($charset) + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php new file mode 100644 index 0000000..f989c8d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php @@ -0,0 +1,289 @@ + '=00', 1 => '=01', 2 => '=02', 3 => '=03', 4 => '=04', + 5 => '=05', 6 => '=06', 7 => '=07', 8 => '=08', 9 => '=09', + 10 => '=0A', 11 => '=0B', 12 => '=0C', 13 => '=0D', 14 => '=0E', + 15 => '=0F', 16 => '=10', 17 => '=11', 18 => '=12', 19 => '=13', + 20 => '=14', 21 => '=15', 22 => '=16', 23 => '=17', 24 => '=18', + 25 => '=19', 26 => '=1A', 27 => '=1B', 28 => '=1C', 29 => '=1D', + 30 => '=1E', 31 => '=1F', 32 => '=20', 33 => '=21', 34 => '=22', + 35 => '=23', 36 => '=24', 37 => '=25', 38 => '=26', 39 => '=27', + 40 => '=28', 41 => '=29', 42 => '=2A', 43 => '=2B', 44 => '=2C', + 45 => '=2D', 46 => '=2E', 47 => '=2F', 48 => '=30', 49 => '=31', + 50 => '=32', 51 => '=33', 52 => '=34', 53 => '=35', 54 => '=36', + 55 => '=37', 56 => '=38', 57 => '=39', 58 => '=3A', 59 => '=3B', + 60 => '=3C', 61 => '=3D', 62 => '=3E', 63 => '=3F', 64 => '=40', + 65 => '=41', 66 => '=42', 67 => '=43', 68 => '=44', 69 => '=45', + 70 => '=46', 71 => '=47', 72 => '=48', 73 => '=49', 74 => '=4A', + 75 => '=4B', 76 => '=4C', 77 => '=4D', 78 => '=4E', 79 => '=4F', + 80 => '=50', 81 => '=51', 82 => '=52', 83 => '=53', 84 => '=54', + 85 => '=55', 86 => '=56', 87 => '=57', 88 => '=58', 89 => '=59', + 90 => '=5A', 91 => '=5B', 92 => '=5C', 93 => '=5D', 94 => '=5E', + 95 => '=5F', 96 => '=60', 97 => '=61', 98 => '=62', 99 => '=63', + 100 => '=64', 101 => '=65', 102 => '=66', 103 => '=67', 104 => '=68', + 105 => '=69', 106 => '=6A', 107 => '=6B', 108 => '=6C', 109 => '=6D', + 110 => '=6E', 111 => '=6F', 112 => '=70', 113 => '=71', 114 => '=72', + 115 => '=73', 116 => '=74', 117 => '=75', 118 => '=76', 119 => '=77', + 120 => '=78', 121 => '=79', 122 => '=7A', 123 => '=7B', 124 => '=7C', + 125 => '=7D', 126 => '=7E', 127 => '=7F', 128 => '=80', 129 => '=81', + 130 => '=82', 131 => '=83', 132 => '=84', 133 => '=85', 134 => '=86', + 135 => '=87', 136 => '=88', 137 => '=89', 138 => '=8A', 139 => '=8B', + 140 => '=8C', 141 => '=8D', 142 => '=8E', 143 => '=8F', 144 => '=90', + 145 => '=91', 146 => '=92', 147 => '=93', 148 => '=94', 149 => '=95', + 150 => '=96', 151 => '=97', 152 => '=98', 153 => '=99', 154 => '=9A', + 155 => '=9B', 156 => '=9C', 157 => '=9D', 158 => '=9E', 159 => '=9F', + 160 => '=A0', 161 => '=A1', 162 => '=A2', 163 => '=A3', 164 => '=A4', + 165 => '=A5', 166 => '=A6', 167 => '=A7', 168 => '=A8', 169 => '=A9', + 170 => '=AA', 171 => '=AB', 172 => '=AC', 173 => '=AD', 174 => '=AE', + 175 => '=AF', 176 => '=B0', 177 => '=B1', 178 => '=B2', 179 => '=B3', + 180 => '=B4', 181 => '=B5', 182 => '=B6', 183 => '=B7', 184 => '=B8', + 185 => '=B9', 186 => '=BA', 187 => '=BB', 188 => '=BC', 189 => '=BD', + 190 => '=BE', 191 => '=BF', 192 => '=C0', 193 => '=C1', 194 => '=C2', + 195 => '=C3', 196 => '=C4', 197 => '=C5', 198 => '=C6', 199 => '=C7', + 200 => '=C8', 201 => '=C9', 202 => '=CA', 203 => '=CB', 204 => '=CC', + 205 => '=CD', 206 => '=CE', 207 => '=CF', 208 => '=D0', 209 => '=D1', + 210 => '=D2', 211 => '=D3', 212 => '=D4', 213 => '=D5', 214 => '=D6', + 215 => '=D7', 216 => '=D8', 217 => '=D9', 218 => '=DA', 219 => '=DB', + 220 => '=DC', 221 => '=DD', 222 => '=DE', 223 => '=DF', 224 => '=E0', + 225 => '=E1', 226 => '=E2', 227 => '=E3', 228 => '=E4', 229 => '=E5', + 230 => '=E6', 231 => '=E7', 232 => '=E8', 233 => '=E9', 234 => '=EA', + 235 => '=EB', 236 => '=EC', 237 => '=ED', 238 => '=EE', 239 => '=EF', + 240 => '=F0', 241 => '=F1', 242 => '=F2', 243 => '=F3', 244 => '=F4', + 245 => '=F5', 246 => '=F6', 247 => '=F7', 248 => '=F8', 249 => '=F9', + 250 => '=FA', 251 => '=FB', 252 => '=FC', 253 => '=FD', 254 => '=FE', + 255 => '=FF', + ); + + protected static $_safeMapShare = array(); + + /** + * A map of non-encoded ascii characters. + * + * @var string[] + */ + protected $_safeMap = array(); + + /** + * Creates a new QpEncoder for the given CharacterStream. + * + * @param Swift_CharacterStream $charStream to use for reading characters + * @param Swift_StreamFilter $filter if input should be canonicalized + */ + public function __construct(Swift_CharacterStream $charStream, Swift_StreamFilter $filter = null) + { + $this->_charStream = $charStream; + if (!isset(self::$_safeMapShare[$this->getSafeMapShareId()])) { + $this->initSafeMap(); + self::$_safeMapShare[$this->getSafeMapShareId()] = $this->_safeMap; + } else { + $this->_safeMap = self::$_safeMapShare[$this->getSafeMapShareId()]; + } + $this->_filter = $filter; + } + + public function __sleep() + { + return array('_charStream', '_filter'); + } + + public function __wakeup() + { + if (!isset(self::$_safeMapShare[$this->getSafeMapShareId()])) { + $this->initSafeMap(); + self::$_safeMapShare[$this->getSafeMapShareId()] = $this->_safeMap; + } else { + $this->_safeMap = self::$_safeMapShare[$this->getSafeMapShareId()]; + } + } + + protected function getSafeMapShareId() + { + return get_class($this); + } + + protected function initSafeMap() + { + foreach (array_merge( + array(0x09, 0x20), range(0x21, 0x3C), range(0x3E, 0x7E)) as $byte) { + $this->_safeMap[$byte] = chr($byte); + } + } + + /** + * Takes an unencoded string and produces a QP encoded string from it. + * + * QP encoded strings have a maximum line length of 76 characters. + * If the first line needs to be shorter, indicate the difference with + * $firstLineOffset. + * + * @param string $string to encode + * @param int $firstLineOffset, optional + * @param int $maxLineLength, optional 0 indicates the default of 76 chars + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($maxLineLength > 76 || $maxLineLength <= 0) { + $maxLineLength = 76; + } + + $thisLineLength = $maxLineLength - $firstLineOffset; + + $lines = array(); + $lNo = 0; + $lines[$lNo] = ''; + $currentLine = &$lines[$lNo++]; + $size = $lineLen = 0; + + $this->_charStream->flushContents(); + $this->_charStream->importString($string); + + // Fetching more than 4 chars at one is slower, as is fetching fewer bytes + // Conveniently 4 chars is the UTF-8 safe number since UTF-8 has up to 6 + // bytes per char and (6 * 4 * 3 = 72 chars per line) * =NN is 3 bytes + while (false !== $bytes = $this->_nextSequence()) { + // If we're filtering the input + if (isset($this->_filter)) { + // If we can't filter because we need more bytes + while ($this->_filter->shouldBuffer($bytes)) { + // Then collect bytes into the buffer + if (false === $moreBytes = $this->_nextSequence(1)) { + break; + } + + foreach ($moreBytes as $b) { + $bytes[] = $b; + } + } + // And filter them + $bytes = $this->_filter->filter($bytes); + } + + $enc = $this->_encodeByteSequence($bytes, $size); + if ($currentLine && $lineLen + $size >= $thisLineLength) { + $lines[$lNo] = ''; + $currentLine = &$lines[$lNo++]; + $thisLineLength = $maxLineLength; + $lineLen = 0; + } + $lineLen += $size; + $currentLine .= $enc; + } + + return $this->_standardize(implode("=\r\n", $lines)); + } + + /** + * Updates the charset used. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->_charStream->setCharacterSet($charset); + } + + /** + * Encode the given byte array into a verbatim QP form. + * + * @param integer[] $bytes + * @param int $size + * + * @return string + */ + protected function _encodeByteSequence(array $bytes, &$size) + { + $ret = ''; + $size = 0; + foreach ($bytes as $b) { + if (isset($this->_safeMap[$b])) { + $ret .= $this->_safeMap[$b]; + ++$size; + } else { + $ret .= self::$_qpMap[$b]; + $size += 3; + } + } + + return $ret; + } + + /** + * Get the next sequence of bytes to read from the char stream. + * + * @param int $size number of bytes to read + * + * @return integer[] + */ + protected function _nextSequence($size = 4) + { + return $this->_charStream->readBytes($size); + } + + /** + * Make sure CRLF is correct and HT/SPACE are in valid places. + * + * @param string $string + * + * @return string + */ + protected function _standardize($string) + { + $string = str_replace(array("\t=0D=0A", ' =0D=0A', '=0D=0A'), + array("=09\r\n", "=20\r\n", "\r\n"), $string + ); + switch ($end = ord(substr($string, -1))) { + case 0x09: + case 0x20: + $string = substr_replace($string, self::$_qpMap[$end], -1); + } + + return $string; + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->_charStream = clone $this->_charStream; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php new file mode 100644 index 0000000..b0215e8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php @@ -0,0 +1,92 @@ +_charStream = $charStream; + } + + /** + * Takes an unencoded string and produces a string encoded according to + * RFC 2231 from it. + * + * @param string $string + * @param int $firstLineOffset + * @param int $maxLineLength optional, 0 indicates the default of 75 bytes + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + $lines = array(); + $lineCount = 0; + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + + if (0 >= $maxLineLength) { + $maxLineLength = 75; + } + + $this->_charStream->flushContents(); + $this->_charStream->importString($string); + + $thisLineLength = $maxLineLength - $firstLineOffset; + + while (false !== $char = $this->_charStream->read(4)) { + $encodedChar = rawurlencode($char); + if (0 != strlen($currentLine) + && strlen($currentLine.$encodedChar) > $thisLineLength) { + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + $thisLineLength = $maxLineLength; + } + $currentLine .= $encodedChar; + } + + return implode("\r\n", $lines); + } + + /** + * Updates the charset used. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->_charStream->setCharacterSet($charset); + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->_charStream = clone $this->_charStream; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoding.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoding.php new file mode 100644 index 0000000..253977b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoding.php @@ -0,0 +1,64 @@ +lookup($key); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php new file mode 100644 index 0000000..7dc381d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php @@ -0,0 +1,65 @@ +_command = $command; + $this->_successCodes = $successCodes; + } + + /** + * Get the command which was sent to the server. + * + * @return string + */ + public function getCommand() + { + return $this->_command; + } + + /** + * Get the numeric response codes which indicate success for this command. + * + * @return integer[] + */ + public function getSuccessCodes() + { + return $this->_successCodes; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php new file mode 100644 index 0000000..7545404 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php @@ -0,0 +1,24 @@ +_source = $source; + } + + /** + * Get the source object of this event. + * + * @return object + */ + public function getSource() + { + return $this->_source; + } + + /** + * Prevent this Event from bubbling any further up the stack. + * + * @param bool $cancel, optional + */ + public function cancelBubble($cancel = true) + { + $this->_bubbleCancelled = $cancel; + } + + /** + * Returns true if this Event will not bubble any further up the stack. + * + * @return bool + */ + public function bubbleCancelled() + { + return $this->_bubbleCancelled; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php new file mode 100644 index 0000000..2e92ba9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php @@ -0,0 +1,65 @@ +_response = $response; + $this->_valid = $valid; + } + + /** + * Get the response which was received from the server. + * + * @return string + */ + public function getResponse() + { + return $this->_response; + } + + /** + * Get the success status of this Event. + * + * @return bool + */ + public function isValid() + { + return $this->_valid; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php new file mode 100644 index 0000000..c40919d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php @@ -0,0 +1,24 @@ +_message = $message; + $this->_result = self::RESULT_PENDING; + } + + /** + * Get the Transport used to send the Message. + * + * @return Swift_Transport + */ + public function getTransport() + { + return $this->getSource(); + } + + /** + * Get the Message being sent. + * + * @return Swift_Mime_Message + */ + public function getMessage() + { + return $this->_message; + } + + /** + * Set the array of addresses that failed in sending. + * + * @param array $recipients + */ + public function setFailedRecipients($recipients) + { + $this->_failedRecipients = $recipients; + } + + /** + * Get an recipient addresses which were not accepted for delivery. + * + * @return string[] + */ + public function getFailedRecipients() + { + return $this->_failedRecipients; + } + + /** + * Set the result of sending. + * + * @param int $result + */ + public function setResult($result) + { + $this->_result = $result; + } + + /** + * Get the result of this Event. + * + * The return value is a bitmask from + * {@see RESULT_PENDING, RESULT_SUCCESS, RESULT_TENTATIVE, RESULT_FAILED} + * + * @return int + */ + public function getResult() + { + return $this->_result; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php new file mode 100644 index 0000000..d922e1b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php @@ -0,0 +1,31 @@ +_eventMap = array( + 'Swift_Events_CommandEvent' => 'Swift_Events_CommandListener', + 'Swift_Events_ResponseEvent' => 'Swift_Events_ResponseListener', + 'Swift_Events_SendEvent' => 'Swift_Events_SendListener', + 'Swift_Events_TransportChangeEvent' => 'Swift_Events_TransportChangeListener', + 'Swift_Events_TransportExceptionEvent' => 'Swift_Events_TransportExceptionListener', + ); + } + + /** + * Create a new SendEvent for $source and $message. + * + * @param Swift_Transport $source + * @param Swift_Mime_Message + * + * @return Swift_Events_SendEvent + */ + public function createSendEvent(Swift_Transport $source, Swift_Mime_Message $message) + { + return new Swift_Events_SendEvent($source, $message); + } + + /** + * Create a new CommandEvent for $source and $command. + * + * @param Swift_Transport $source + * @param string $command That will be executed + * @param array $successCodes That are needed + * + * @return Swift_Events_CommandEvent + */ + public function createCommandEvent(Swift_Transport $source, $command, $successCodes = array()) + { + return new Swift_Events_CommandEvent($source, $command, $successCodes); + } + + /** + * Create a new ResponseEvent for $source and $response. + * + * @param Swift_Transport $source + * @param string $response + * @param bool $valid If the response is valid + * + * @return Swift_Events_ResponseEvent + */ + public function createResponseEvent(Swift_Transport $source, $response, $valid) + { + return new Swift_Events_ResponseEvent($source, $response, $valid); + } + + /** + * Create a new TransportChangeEvent for $source. + * + * @param Swift_Transport $source + * + * @return Swift_Events_TransportChangeEvent + */ + public function createTransportChangeEvent(Swift_Transport $source) + { + return new Swift_Events_TransportChangeEvent($source); + } + + /** + * Create a new TransportExceptionEvent for $source. + * + * @param Swift_Transport $source + * @param Swift_TransportException $ex + * + * @return Swift_Events_TransportExceptionEvent + */ + public function createTransportExceptionEvent(Swift_Transport $source, Swift_TransportException $ex) + { + return new Swift_Events_TransportExceptionEvent($source, $ex); + } + + /** + * Bind an event listener to this dispatcher. + * + * @param Swift_Events_EventListener $listener + */ + public function bindEventListener(Swift_Events_EventListener $listener) + { + foreach ($this->_listeners as $l) { + // Already loaded + if ($l === $listener) { + return; + } + } + $this->_listeners[] = $listener; + } + + /** + * Dispatch the given Event to all suitable listeners. + * + * @param Swift_Events_EventObject $evt + * @param string $target method + */ + public function dispatchEvent(Swift_Events_EventObject $evt, $target) + { + $this->_prepareBubbleQueue($evt); + $this->_bubble($evt, $target); + } + + /** Queue listeners on a stack ready for $evt to be bubbled up it */ + private function _prepareBubbleQueue(Swift_Events_EventObject $evt) + { + $this->_bubbleQueue = array(); + $evtClass = get_class($evt); + foreach ($this->_listeners as $listener) { + if (array_key_exists($evtClass, $this->_eventMap) + && ($listener instanceof $this->_eventMap[$evtClass])) { + $this->_bubbleQueue[] = $listener; + } + } + } + + /** Bubble $evt up the stack calling $target() on each listener */ + private function _bubble(Swift_Events_EventObject $evt, $target) + { + if (!$evt->bubbleCancelled() && $listener = array_shift($this->_bubbleQueue)) { + $listener->$target($evt); + $this->_bubble($evt, $target); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php new file mode 100644 index 0000000..a8972fd --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php @@ -0,0 +1,27 @@ +getSource(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php new file mode 100644 index 0000000..253165d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php @@ -0,0 +1,45 @@ +_exception = $ex; + } + + /** + * Get the TransportException thrown. + * + * @return Swift_TransportException + */ + public function getException() + { + return $this->_exception; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php new file mode 100644 index 0000000..cc3c099 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php @@ -0,0 +1,24 @@ +createDependenciesFor('transport.failover') + ); + + $this->setTransports($transports); + } + + /** + * Create a new FailoverTransport instance. + * + * @param Swift_Transport[] $transports + * + * @return Swift_FailoverTransport + */ + public static function newInstance($transports = array()) + { + return new self($transports); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php new file mode 100644 index 0000000..2208539 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php @@ -0,0 +1,208 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages on the filesystem. + * + * @author Fabien Potencier + * @author Xavier De Cock + */ +class Swift_FileSpool extends Swift_ConfigurableSpool +{ + /** The spool directory */ + private $_path; + + /** + * File WriteRetry Limit. + * + * @var int + */ + private $_retryLimit = 10; + + /** + * Create a new FileSpool. + * + * @param string $path + * + * @throws Swift_IoException + */ + public function __construct($path) + { + $this->_path = $path; + + if (!file_exists($this->_path)) { + if (!mkdir($this->_path, 0777, true)) { + throw new Swift_IoException('Unable to create Path ['.$this->_path.']'); + } + } + } + + /** + * Tests if this Spool mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Spool mechanism. + */ + public function start() + { + } + + /** + * Stops this Spool mechanism. + */ + public function stop() + { + } + + /** + * Allow to manage the enqueuing retry limit. + * + * Default, is ten and allows over 64^20 different fileNames + * + * @param int $limit + */ + public function setRetryLimit($limit) + { + $this->_retryLimit = $limit; + } + + /** + * Queues a message. + * + * @param Swift_Mime_Message $message The message to store + * + * @throws Swift_IoException + * + * @return bool + */ + public function queueMessage(Swift_Mime_Message $message) + { + $ser = serialize($message); + $fileName = $this->_path.'/'.$this->getRandomString(10); + for ($i = 0; $i < $this->_retryLimit; ++$i) { + /* We try an exclusive creation of the file. This is an atomic operation, it avoid locking mechanism */ + $fp = @fopen($fileName.'.message', 'x'); + if (false !== $fp) { + if (false === fwrite($fp, $ser)) { + return false; + } + + return fclose($fp); + } else { + /* The file already exists, we try a longer fileName */ + $fileName .= $this->getRandomString(1); + } + } + + throw new Swift_IoException('Unable to create a file for enqueuing Message'); + } + + /** + * Execute a recovery if for any reason a process is sending for too long. + * + * @param int $timeout in second Defaults is for very slow smtp responses + */ + public function recover($timeout = 900) + { + foreach (new DirectoryIterator($this->_path) as $file) { + $file = $file->getRealPath(); + + if (substr($file, -16) == '.message.sending') { + $lockedtime = filectime($file); + if ((time() - $lockedtime) > $timeout) { + rename($file, substr($file, 0, -8)); + } + } + } + } + + /** + * Sends messages using the given transport instance. + * + * @param Swift_Transport $transport A transport instance + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent e-mail's + */ + public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) + { + $directoryIterator = new DirectoryIterator($this->_path); + + /* Start the transport only if there are queued files to send */ + if (!$transport->isStarted()) { + foreach ($directoryIterator as $file) { + if (substr($file->getRealPath(), -8) == '.message') { + $transport->start(); + break; + } + } + } + + $failedRecipients = (array) $failedRecipients; + $count = 0; + $time = time(); + foreach ($directoryIterator as $file) { + $file = $file->getRealPath(); + + if (substr($file, -8) != '.message') { + continue; + } + + /* We try a rename, it's an atomic operation, and avoid locking the file */ + if (rename($file, $file.'.sending')) { + $message = unserialize(file_get_contents($file.'.sending')); + + $count += $transport->send($message, $failedRecipients); + + unlink($file.'.sending'); + } else { + /* This message has just been catched by another process */ + continue; + } + + if ($this->getMessageLimit() && $count >= $this->getMessageLimit()) { + break; + } + + if ($this->getTimeLimit() && (time() - $time) >= $this->getTimeLimit()) { + break; + } + } + + return $count; + } + + /** + * Returns a random string needed to generate a fileName for the queue. + * + * @param int $count + * + * @return string + */ + protected function getRandomString($count) + { + // This string MUST stay FS safe, avoid special chars + $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'; + $ret = ''; + $strlen = strlen($base); + for ($i = 0; $i < $count; ++$i) { + $ret .= $base[((int) rand(0, $strlen - 1))]; + } + + return $ret; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php new file mode 100644 index 0000000..0b24db1 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php @@ -0,0 +1,24 @@ +setFile( + new Swift_ByteStream_FileByteStream($path) + ); + + return $image; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php new file mode 100644 index 0000000..56efc75 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php @@ -0,0 +1,75 @@ +_stream = $stream; + } + + /** + * Set a string into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param string $string + * @param int $mode + */ + public function setString($nsKey, $itemKey, $string, $mode) + { + $this->_prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $this->_contents[$nsKey][$itemKey] = $string; + break; + case self::MODE_APPEND: + if (!$this->hasKey($nsKey, $itemKey)) { + $this->_contents[$nsKey][$itemKey] = ''; + } + $this->_contents[$nsKey][$itemKey] .= $string; + break; + default: + throw new Swift_SwiftException( + 'Invalid mode ['.$mode.'] used to set nsKey='. + $nsKey.', itemKey='.$itemKey + ); + } + } + + /** + * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_OutputByteStream $os + * @param int $mode + */ + public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, $mode) + { + $this->_prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $this->clearKey($nsKey, $itemKey); + case self::MODE_APPEND: + if (!$this->hasKey($nsKey, $itemKey)) { + $this->_contents[$nsKey][$itemKey] = ''; + } + while (false !== $bytes = $os->read(8192)) { + $this->_contents[$nsKey][$itemKey] .= $bytes; + } + break; + default: + throw new Swift_SwiftException( + 'Invalid mode ['.$mode.'] used to set nsKey='. + $nsKey.', itemKey='.$itemKey + ); + } + } + + /** + * Provides a ByteStream which when written to, writes data to $itemKey. + * + * NOTE: The stream will always write in append mode. + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_InputByteStream $writeThrough + * + * @return Swift_InputByteStream + */ + public function getInputByteStream($nsKey, $itemKey, Swift_InputByteStream $writeThrough = null) + { + $is = clone $this->_stream; + $is->setKeyCache($this); + $is->setNsKey($nsKey); + $is->setItemKey($itemKey); + if (isset($writeThrough)) { + $is->setWriteThroughStream($writeThrough); + } + + return $is; + } + + /** + * Get data back out of the cache as a string. + * + * @param string $nsKey + * @param string $itemKey + * + * @return string + */ + public function getString($nsKey, $itemKey) + { + $this->_prepareCache($nsKey); + if ($this->hasKey($nsKey, $itemKey)) { + return $this->_contents[$nsKey][$itemKey]; + } + } + + /** + * Get data back out of the cache as a ByteStream. + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_InputByteStream $is to write the data to + */ + public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) + { + $this->_prepareCache($nsKey); + $is->write($this->getString($nsKey, $itemKey)); + } + + /** + * Check if the given $itemKey exists in the namespace $nsKey. + * + * @param string $nsKey + * @param string $itemKey + * + * @return bool + */ + public function hasKey($nsKey, $itemKey) + { + $this->_prepareCache($nsKey); + + return array_key_exists($itemKey, $this->_contents[$nsKey]); + } + + /** + * Clear data for $itemKey in the namespace $nsKey if it exists. + * + * @param string $nsKey + * @param string $itemKey + */ + public function clearKey($nsKey, $itemKey) + { + unset($this->_contents[$nsKey][$itemKey]); + } + + /** + * Clear all data in the namespace $nsKey if it exists. + * + * @param string $nsKey + */ + public function clearAll($nsKey) + { + unset($this->_contents[$nsKey]); + } + + /** + * Initialize the namespace of $nsKey if needed. + * + * @param string $nsKey + */ + private function _prepareCache($nsKey) + { + if (!array_key_exists($nsKey, $this->_contents)) { + $this->_contents[$nsKey] = array(); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php new file mode 100644 index 0000000..dc1515a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php @@ -0,0 +1,324 @@ +_stream = $stream; + $this->_path = $path; + + if (function_exists('get_magic_quotes_runtime') && @get_magic_quotes_runtime() == 1) { + $this->_quotes = true; + } + } + + /** + * Set a string into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param string $string + * @param int $mode + * + * @throws Swift_IoException + */ + public function setString($nsKey, $itemKey, $string, $mode) + { + $this->_prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); + break; + case self::MODE_APPEND: + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); + break; + default: + throw new Swift_SwiftException( + 'Invalid mode ['.$mode.'] used to set nsKey='. + $nsKey.', itemKey='.$itemKey + ); + break; + } + fwrite($fp, $string); + $this->_freeHandle($nsKey, $itemKey); + } + + /** + * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_OutputByteStream $os + * @param int $mode + * + * @throws Swift_IoException + */ + public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, $mode) + { + $this->_prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); + break; + case self::MODE_APPEND: + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); + break; + default: + throw new Swift_SwiftException( + 'Invalid mode ['.$mode.'] used to set nsKey='. + $nsKey.', itemKey='.$itemKey + ); + break; + } + while (false !== $bytes = $os->read(8192)) { + fwrite($fp, $bytes); + } + $this->_freeHandle($nsKey, $itemKey); + } + + /** + * Provides a ByteStream which when written to, writes data to $itemKey. + * + * NOTE: The stream will always write in append mode. + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_InputByteStream $writeThrough + * + * @return Swift_InputByteStream + */ + public function getInputByteStream($nsKey, $itemKey, Swift_InputByteStream $writeThrough = null) + { + $is = clone $this->_stream; + $is->setKeyCache($this); + $is->setNsKey($nsKey); + $is->setItemKey($itemKey); + if (isset($writeThrough)) { + $is->setWriteThroughStream($writeThrough); + } + + return $is; + } + + /** + * Get data back out of the cache as a string. + * + * @param string $nsKey + * @param string $itemKey + * + * @throws Swift_IoException + * + * @return string + */ + public function getString($nsKey, $itemKey) + { + $this->_prepareCache($nsKey); + if ($this->hasKey($nsKey, $itemKey)) { + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); + if ($this->_quotes) { + ini_set('magic_quotes_runtime', 0); + } + $str = ''; + while (!feof($fp) && false !== $bytes = fread($fp, 8192)) { + $str .= $bytes; + } + if ($this->_quotes) { + ini_set('magic_quotes_runtime', 1); + } + $this->_freeHandle($nsKey, $itemKey); + + return $str; + } + } + + /** + * Get data back out of the cache as a ByteStream. + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_InputByteStream $is to write the data to + */ + public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) + { + if ($this->hasKey($nsKey, $itemKey)) { + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); + if ($this->_quotes) { + ini_set('magic_quotes_runtime', 0); + } + while (!feof($fp) && false !== $bytes = fread($fp, 8192)) { + $is->write($bytes); + } + if ($this->_quotes) { + ini_set('magic_quotes_runtime', 1); + } + $this->_freeHandle($nsKey, $itemKey); + } + } + + /** + * Check if the given $itemKey exists in the namespace $nsKey. + * + * @param string $nsKey + * @param string $itemKey + * + * @return bool + */ + public function hasKey($nsKey, $itemKey) + { + return is_file($this->_path.'/'.$nsKey.'/'.$itemKey); + } + + /** + * Clear data for $itemKey in the namespace $nsKey if it exists. + * + * @param string $nsKey + * @param string $itemKey + */ + public function clearKey($nsKey, $itemKey) + { + if ($this->hasKey($nsKey, $itemKey)) { + $this->_freeHandle($nsKey, $itemKey); + unlink($this->_path.'/'.$nsKey.'/'.$itemKey); + } + } + + /** + * Clear all data in the namespace $nsKey if it exists. + * + * @param string $nsKey + */ + public function clearAll($nsKey) + { + if (array_key_exists($nsKey, $this->_keys)) { + foreach ($this->_keys[$nsKey] as $itemKey => $null) { + $this->clearKey($nsKey, $itemKey); + } + if (is_dir($this->_path.'/'.$nsKey)) { + rmdir($this->_path.'/'.$nsKey); + } + unset($this->_keys[$nsKey]); + } + } + + /** + * Initialize the namespace of $nsKey if needed. + * + * @param string $nsKey + */ + private function _prepareCache($nsKey) + { + $cacheDir = $this->_path.'/'.$nsKey; + if (!is_dir($cacheDir)) { + if (!mkdir($cacheDir)) { + throw new Swift_IoException('Failed to create cache directory '.$cacheDir); + } + $this->_keys[$nsKey] = array(); + } + } + + /** + * Get a file handle on the cache item. + * + * @param string $nsKey + * @param string $itemKey + * @param int $position + * + * @return resource + */ + private function _getHandle($nsKey, $itemKey, $position) + { + if (!isset($this->_keys[$nsKey][$itemKey])) { + $openMode = $this->hasKey($nsKey, $itemKey) + ? 'r+b' + : 'w+b' + ; + $fp = fopen($this->_path.'/'.$nsKey.'/'.$itemKey, $openMode); + $this->_keys[$nsKey][$itemKey] = $fp; + } + if (self::POSITION_START == $position) { + fseek($this->_keys[$nsKey][$itemKey], 0, SEEK_SET); + } elseif (self::POSITION_END == $position) { + fseek($this->_keys[$nsKey][$itemKey], 0, SEEK_END); + } + + return $this->_keys[$nsKey][$itemKey]; + } + + private function _freeHandle($nsKey, $itemKey) + { + $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_CURRENT); + fclose($fp); + $this->_keys[$nsKey][$itemKey] = null; + } + + /** + * Destructor. + */ + public function __destruct() + { + foreach ($this->_keys as $nsKey => $null) { + $this->clearAll($nsKey); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php new file mode 100644 index 0000000..af80bdc --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php @@ -0,0 +1,51 @@ +_keyCache = $keyCache; + } + + /** + * Specify a stream to write through for each write(). + * + * @param Swift_InputByteStream $is + */ + public function setWriteThroughStream(Swift_InputByteStream $is) + { + $this->_writeThrough = $is; + } + + /** + * Writes $bytes to the end of the stream. + * + * @param string $bytes + * @param Swift_InputByteStream $is optional + */ + public function write($bytes, Swift_InputByteStream $is = null) + { + $this->_keyCache->setString( + $this->_nsKey, $this->_itemKey, $bytes, Swift_KeyCache::MODE_APPEND + ); + if (isset($is)) { + $is->write($bytes); + } + if (isset($this->_writeThrough)) { + $this->_writeThrough->write($bytes); + } + } + + /** + * Not used. + */ + public function commit() + { + } + + /** + * Not used. + */ + public function bind(Swift_InputByteStream $is) + { + } + + /** + * Not used. + */ + public function unbind(Swift_InputByteStream $is) + { + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + */ + public function flushBuffers() + { + $this->_keyCache->clearKey($this->_nsKey, $this->_itemKey); + } + + /** + * Set the nsKey which will be written to. + * + * @param string $nsKey + */ + public function setNsKey($nsKey) + { + $this->_nsKey = $nsKey; + } + + /** + * Set the itemKey which will be written to. + * + * @param string $itemKey + */ + public function setItemKey($itemKey) + { + $this->_itemKey = $itemKey; + } + + /** + * Any implementation should be cloneable, allowing the clone to access a + * separate $nsKey and $itemKey. + */ + public function __clone() + { + $this->_writeThrough = null; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php new file mode 100644 index 0000000..fdba9df --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php @@ -0,0 +1,45 @@ +createDependenciesFor('transport.loadbalanced') + ); + + $this->setTransports($transports); + } + + /** + * Create a new LoadBalancedTransport instance. + * + * @param array $transports + * + * @return Swift_LoadBalancedTransport + */ + public static function newInstance($transports = array()) + { + return new self($transports); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MailTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MailTransport.php new file mode 100644 index 0000000..858ca81 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MailTransport.php @@ -0,0 +1,45 @@ +createDependenciesFor('transport.mail') + ); + + $this->setExtraParams($extraParams); + } + + /** + * Create a new MailTransport instance. + * + * @param string $extraParams To be passed to mail() + * + * @return Swift_MailTransport + */ + public static function newInstance($extraParams = '-f%s') + { + return new self($extraParams); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php new file mode 100644 index 0000000..34a78d4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php @@ -0,0 +1,114 @@ +_transport = $transport; + } + + /** + * Create a new Mailer instance. + * + * @param Swift_Transport $transport + * + * @return Swift_Mailer + */ + public static function newInstance(Swift_Transport $transport) + { + return new self($transport); + } + + /** + * Create a new class instance of one of the message services. + * + * For example 'mimepart' would create a 'message.mimepart' instance + * + * @param string $service + * + * @return object + */ + public function createMessage($service = 'message') + { + return Swift_DependencyContainer::getInstance() + ->lookup('message.'.$service); + } + + /** + * Send the given Message like it would be sent in a mail client. + * + * All recipients (with the exception of Bcc) will be able to see the other + * recipients this message was sent to. + * + * Recipient/sender data will be retrieved from the Message object. + * + * The return value is the number of recipients who were accepted for + * delivery. + * + * @param Swift_Mime_Message $message + * @param array $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + $failedRecipients = (array) $failedRecipients; + + if (!$this->_transport->isStarted()) { + $this->_transport->start(); + } + + $sent = 0; + + try { + $sent = $this->_transport->send($message, $failedRecipients); + } catch (Swift_RfcComplianceException $e) { + foreach ($message->getTo() as $address => $name) { + $failedRecipients[] = $address; + } + } + + return $sent; + } + + /** + * Register a plugin using a known unique key (e.g. myPlugin). + * + * @param Swift_Events_EventListener $plugin + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->_transport->registerPlugin($plugin); + } + + /** + * The Transport used to send messages. + * + * @return Swift_Transport + */ + public function getTransport() + { + return $this->_transport; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php new file mode 100644 index 0000000..e3e6cad --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php @@ -0,0 +1,55 @@ +_recipients = $recipients; + } + + /** + * Returns true only if there are more recipients to send to. + * + * @return bool + */ + public function hasNext() + { + return !empty($this->_recipients); + } + + /** + * Returns an array where the keys are the addresses of recipients and the + * values are the names. e.g. ('foo@bar' => 'Foo') or ('foo@bar' => NULL). + * + * @return array + */ + public function nextRecipient() + { + return array_splice($this->_recipients, 0, 1); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php new file mode 100644 index 0000000..650f3ec --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php @@ -0,0 +1,32 @@ + 'Foo') or ('foo@bar' => NULL). + * + * @return array + */ + public function nextRecipient(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php new file mode 100644 index 0000000..5b23969 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages in memory. + * + * @author Fabien Potencier + */ +class Swift_MemorySpool implements Swift_Spool +{ + protected $messages = array(); + + /** + * Tests if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Transport mechanism. + */ + public function start() + { + } + + /** + * Stops this Transport mechanism. + */ + public function stop() + { + } + + /** + * Stores a message in the queue. + * + * @param Swift_Mime_Message $message The message to store + * + * @return bool Whether the operation has succeeded + */ + public function queueMessage(Swift_Mime_Message $message) + { + //clone the message to make sure it is not changed while in the queue + $this->messages[] = clone $message; + + return true; + } + + /** + * Sends messages using the given transport instance. + * + * @param Swift_Transport $transport A transport instance + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent emails + */ + public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) + { + if (!$this->messages) { + return 0; + } + + if (!$transport->isStarted()) { + $transport->start(); + } + + $count = 0; + while ($message = array_pop($this->messages)) { + $count += $transport->send($message, $failedRecipients); + } + + return $count; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php new file mode 100644 index 0000000..11aa5a9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php @@ -0,0 +1,291 @@ +createDependenciesFor('mime.message') + ); + + if (!isset($charset)) { + $charset = Swift_DependencyContainer::getInstance() + ->lookup('properties.charset'); + } + $this->setSubject($subject); + $this->setBody($body); + $this->setCharset($charset); + if ($contentType) { + $this->setContentType($contentType); + } + } + + /** + * Create a new Message. + * + * @param string $subject + * @param string $body + * @param string $contentType + * @param string $charset + * + * @return Swift_Message + */ + public static function newInstance($subject = null, $body = null, $contentType = null, $charset = null) + { + return new self($subject, $body, $contentType, $charset); + } + + /** + * Add a MimePart to this Message. + * + * @param string|Swift_OutputByteStream $body + * @param string $contentType + * @param string $charset + * + * @return Swift_Mime_SimpleMessage + */ + public function addPart($body, $contentType = null, $charset = null) + { + return $this->attach(Swift_MimePart::newInstance( + $body, $contentType, $charset + )); + } + + /** + * Attach a new signature handler to the message. + * + * @param Swift_Signer $signer + * + * @return Swift_Message + */ + public function attachSigner(Swift_Signer $signer) + { + if ($signer instanceof Swift_Signers_HeaderSigner) { + $this->headerSigners[] = $signer; + } elseif ($signer instanceof Swift_Signers_BodySigner) { + $this->bodySigners[] = $signer; + } + + return $this; + } + + /** + * Attach a new signature handler to the message. + * + * @param Swift_Signer $signer + * + * @return Swift_Message + */ + public function detachSigner(Swift_Signer $signer) + { + if ($signer instanceof Swift_Signers_HeaderSigner) { + foreach ($this->headerSigners as $k => $headerSigner) { + if ($headerSigner === $signer) { + unset($this->headerSigners[$k]); + + return $this; + } + } + } elseif ($signer instanceof Swift_Signers_BodySigner) { + foreach ($this->bodySigners as $k => $bodySigner) { + if ($bodySigner === $signer) { + unset($this->bodySigners[$k]); + + return $this; + } + } + } + + return $this; + } + + /** + * Get this message as a complete string. + * + * @return string + */ + public function toString() + { + if (empty($this->headerSigners) && empty($this->bodySigners)) { + return parent::toString(); + } + + $this->saveMessage(); + + $this->doSign(); + + $string = parent::toString(); + + $this->restoreMessage(); + + return $string; + } + + /** + * Write this message to a {@link Swift_InputByteStream}. + * + * @param Swift_InputByteStream $is + */ + public function toByteStream(Swift_InputByteStream $is) + { + if (empty($this->headerSigners) && empty($this->bodySigners)) { + parent::toByteStream($is); + + return; + } + + $this->saveMessage(); + + $this->doSign(); + + parent::toByteStream($is); + + $this->restoreMessage(); + } + + public function __wakeup() + { + Swift_DependencyContainer::getInstance()->createDependenciesFor('mime.message'); + } + + /** + * loops through signers and apply the signatures. + */ + protected function doSign() + { + foreach ($this->bodySigners as $signer) { + $altered = $signer->getAlteredHeaders(); + $this->saveHeaders($altered); + $signer->signMessage($this); + } + + foreach ($this->headerSigners as $signer) { + $altered = $signer->getAlteredHeaders(); + $this->saveHeaders($altered); + $signer->reset(); + + $signer->setHeaders($this->getHeaders()); + + $signer->startBody(); + $this->_bodyToByteStream($signer); + $signer->endBody(); + + $signer->addSignature($this->getHeaders()); + } + } + + /** + * save the message before any signature is applied. + */ + protected function saveMessage() + { + $this->savedMessage = array('headers' => array()); + $this->savedMessage['body'] = $this->getBody(); + $this->savedMessage['children'] = $this->getChildren(); + if (count($this->savedMessage['children']) > 0 && $this->getBody() != '') { + $this->setChildren(array_merge(array($this->_becomeMimePart()), $this->savedMessage['children'])); + $this->setBody(''); + } + } + + /** + * save the original headers. + * + * @param array $altered + */ + protected function saveHeaders(array $altered) + { + foreach ($altered as $head) { + $lc = strtolower($head); + + if (!isset($this->savedMessage['headers'][$lc])) { + $this->savedMessage['headers'][$lc] = $this->getHeaders()->getAll($head); + } + } + } + + /** + * Remove or restore altered headers. + */ + protected function restoreHeaders() + { + foreach ($this->savedMessage['headers'] as $name => $savedValue) { + $headers = $this->getHeaders()->getAll($name); + + foreach ($headers as $key => $value) { + if (!isset($savedValue[$key])) { + $this->getHeaders()->remove($name, $key); + } + } + } + } + + /** + * Restore message body. + */ + protected function restoreMessage() + { + $this->setBody($this->savedMessage['body']); + $this->setChildren($this->savedMessage['children']); + + $this->restoreHeaders(); + $this->savedMessage = array(); + } + + /** + * Clone Message Signers. + * + * @see Swift_Mime_SimpleMimeEntity::__clone() + */ + public function __clone() + { + parent::__clone(); + foreach ($this->bodySigners as $key => $bodySigner) { + $this->bodySigners[$key] = clone($bodySigner); + } + + foreach ($this->headerSigners as $key => $headerSigner) { + $this->headerSigners[$key] = clone($headerSigner); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php new file mode 100644 index 0000000..0a72606 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php @@ -0,0 +1,153 @@ +setDisposition('attachment'); + $this->setContentType('application/octet-stream'); + $this->_mimeTypes = $mimeTypes; + } + + /** + * Get the nesting level used for this attachment. + * + * Always returns {@link LEVEL_MIXED}. + * + * @return int + */ + public function getNestingLevel() + { + return self::LEVEL_MIXED; + } + + /** + * Get the Content-Disposition of this attachment. + * + * By default attachments have a disposition of "attachment". + * + * @return string + */ + public function getDisposition() + { + return $this->_getHeaderFieldModel('Content-Disposition'); + } + + /** + * Set the Content-Disposition of this attachment. + * + * @param string $disposition + * + * @return Swift_Mime_Attachment + */ + public function setDisposition($disposition) + { + if (!$this->_setHeaderFieldModel('Content-Disposition', $disposition)) { + $this->getHeaders()->addParameterizedHeader( + 'Content-Disposition', $disposition + ); + } + + return $this; + } + + /** + * Get the filename of this attachment when downloaded. + * + * @return string + */ + public function getFilename() + { + return $this->_getHeaderParameter('Content-Disposition', 'filename'); + } + + /** + * Set the filename of this attachment. + * + * @param string $filename + * + * @return Swift_Mime_Attachment + */ + public function setFilename($filename) + { + $this->_setHeaderParameter('Content-Disposition', 'filename', $filename); + $this->_setHeaderParameter('Content-Type', 'name', $filename); + + return $this; + } + + /** + * Get the file size of this attachment. + * + * @return int + */ + public function getSize() + { + return $this->_getHeaderParameter('Content-Disposition', 'size'); + } + + /** + * Set the file size of this attachment. + * + * @param int $size + * + * @return Swift_Mime_Attachment + */ + public function setSize($size) + { + $this->_setHeaderParameter('Content-Disposition', 'size', $size); + + return $this; + } + + /** + * Set the file that this attachment is for. + * + * @param Swift_FileStream $file + * @param string $contentType optional + * + * @return Swift_Mime_Attachment + */ + public function setFile(Swift_FileStream $file, $contentType = null) + { + $this->setFilename(basename($file->getPath())); + $this->setBody($file, $contentType); + if (!isset($contentType)) { + $extension = strtolower(substr( + $file->getPath(), strrpos($file->getPath(), '.') + 1 + )); + + if (array_key_exists($extension, $this->_mimeTypes)) { + $this->setContentType($this->_mimeTypes[$extension]); + } + } + + return $this; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php new file mode 100644 index 0000000..b49c3a8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php @@ -0,0 +1,24 @@ += $maxLineLength || 76 < $maxLineLength) { + $maxLineLength = 76; + } + + $remainder = 0; + $base64ReadBufferRemainderBytes = null; + + // To reduce memory usage, the output buffer is streamed to the input buffer like so: + // Output Stream => base64encode => wrap line length => Input Stream + // HOWEVER it's important to note that base64_encode() should only be passed whole triplets of data (except for the final chunk of data) + // otherwise it will assume the input data has *ended* and it will incorrectly pad/terminate the base64 data mid-stream. + // We use $base64ReadBufferRemainderBytes to carry over 1-2 "remainder" bytes from the each chunk from OutputStream and pre-pend those onto the + // chunk of bytes read in the next iteration. + // When the OutputStream is empty, we must flush any remainder bytes. + while (true) { + $readBytes = $os->read(8192); + $atEOF = ($readBytes === false); + + if ($atEOF) { + $streamTheseBytes = $base64ReadBufferRemainderBytes; + } else { + $streamTheseBytes = $base64ReadBufferRemainderBytes.$readBytes; + } + $base64ReadBufferRemainderBytes = null; + $bytesLength = strlen($streamTheseBytes); + + if ($bytesLength === 0) { // no data left to encode + break; + } + + // if we're not on the last block of the ouput stream, make sure $streamTheseBytes ends with a complete triplet of data + // and carry over remainder 1-2 bytes to the next loop iteration + if (!$atEOF) { + $excessBytes = $bytesLength % 3; + if ($excessBytes !== 0) { + $base64ReadBufferRemainderBytes = substr($streamTheseBytes, -$excessBytes); + $streamTheseBytes = substr($streamTheseBytes, 0, $bytesLength - $excessBytes); + } + } + + $encoded = base64_encode($streamTheseBytes); + $encodedTransformed = ''; + $thisMaxLineLength = $maxLineLength - $remainder - $firstLineOffset; + + while ($thisMaxLineLength < strlen($encoded)) { + $encodedTransformed .= substr($encoded, 0, $thisMaxLineLength)."\r\n"; + $firstLineOffset = 0; + $encoded = substr($encoded, $thisMaxLineLength); + $thisMaxLineLength = $maxLineLength; + $remainder = 0; + } + + if (0 < $remainingLength = strlen($encoded)) { + $remainder += $remainingLength; + $encodedTransformed .= $encoded; + $encoded = null; + } + + $is->write($encodedTransformed); + + if ($atEOF) { + break; + } + } + } + + /** + * Get the name of this encoding scheme. + * Returns the string 'base64'. + * + * @return string + */ + public function getName() + { + return 'base64'; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php new file mode 100644 index 0000000..710b5ac --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php @@ -0,0 +1,123 @@ +charset = $charset ? $charset : 'utf-8'; + } + + /** + * Notify this observer that the entity's charset has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->charset = $charset; + } + + /** + * Encode $in to $out. + * + * @param Swift_OutputByteStream $os to read from + * @param Swift_InputByteStream $is to write to + * @param int $firstLineOffset + * @param int $maxLineLength 0 indicates the default length for this encoding + * + * @throws RuntimeException + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($this->charset !== 'utf-8') { + throw new RuntimeException( + sprintf('Charset "%s" not supported. NativeQpContentEncoder only supports "utf-8"', $this->charset)); + } + + $string = ''; + + while (false !== $bytes = $os->read(8192)) { + $string .= $bytes; + } + + $is->write($this->encodeString($string)); + } + + /** + * Get the MIME name of this content encoding scheme. + * + * @return string + */ + public function getName() + { + return 'quoted-printable'; + } + + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset if first line needs to be shorter + * @param int $maxLineLength 0 indicates the default length for this encoding + * + * @throws RuntimeException + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($this->charset !== 'utf-8') { + throw new RuntimeException( + sprintf('Charset "%s" not supported. NativeQpContentEncoder only supports "utf-8"', $this->charset)); + } + + return $this->_standardize(quoted_printable_encode($string)); + } + + /** + * Make sure CRLF is correct and HT/SPACE are in valid places. + * + * @param string $string + * + * @return string + */ + protected function _standardize($string) + { + // transform CR or LF to CRLF + $string = preg_replace('~=0D(?!=0A)|(?_name = $name; + $this->_canonical = $canonical; + } + + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset ignored + * @param int $maxLineLength - 0 means no wrapping will occur + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($this->_canonical) { + $string = $this->_canonicalize($string); + } + + return $this->_safeWordWrap($string, $maxLineLength, "\r\n"); + } + + /** + * Encode stream $in to stream $out. + * + * @param Swift_OutputByteStream $os + * @param Swift_InputByteStream $is + * @param int $firstLineOffset ignored + * @param int $maxLineLength optional, 0 means no wrapping will occur + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + $leftOver = ''; + while (false !== $bytes = $os->read(8192)) { + $toencode = $leftOver.$bytes; + if ($this->_canonical) { + $toencode = $this->_canonicalize($toencode); + } + $wrapped = $this->_safeWordWrap($toencode, $maxLineLength, "\r\n"); + $lastLinePos = strrpos($wrapped, "\r\n"); + $leftOver = substr($wrapped, $lastLinePos); + $wrapped = substr($wrapped, 0, $lastLinePos); + + $is->write($wrapped); + } + if (strlen($leftOver)) { + $is->write($leftOver); + } + } + + /** + * Get the name of this encoding scheme. + * + * @return string + */ + public function getName() + { + return $this->_name; + } + + /** + * Not used. + */ + public function charsetChanged($charset) + { + } + + /** + * A safer (but weaker) wordwrap for unicode. + * + * @param string $string + * @param int $length + * @param string $le + * + * @return string + */ + private function _safeWordwrap($string, $length = 75, $le = "\r\n") + { + if (0 >= $length) { + return $string; + } + + $originalLines = explode($le, $string); + + $lines = array(); + $lineCount = 0; + + foreach ($originalLines as $originalLine) { + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + + //$chunks = preg_split('/(?<=[\ \t,\.!\?\-&\+\/])/', $originalLine); + $chunks = preg_split('/(?<=\s)/', $originalLine); + + foreach ($chunks as $chunk) { + if (0 != strlen($currentLine) + && strlen($currentLine.$chunk) > $length) { + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + } + $currentLine .= $chunk; + } + } + + return implode("\r\n", $lines); + } + + /** + * Canonicalize string input (fix CRLF). + * + * @param string $string + * + * @return string + */ + private function _canonicalize($string) + { + return str_replace( + array("\r\n", "\r", "\n"), + array("\n", "\n", "\r\n"), + $string + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php new file mode 100644 index 0000000..8ee4c75 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php @@ -0,0 +1,123 @@ +_dotEscape = $dotEscape; + parent::__construct($charStream, $filter); + } + + public function __sleep() + { + return array('_charStream', '_filter', '_dotEscape'); + } + + protected function getSafeMapShareId() + { + return get_class($this).($this->_dotEscape ? '.dotEscape' : ''); + } + + protected function initSafeMap() + { + parent::initSafeMap(); + if ($this->_dotEscape) { + /* Encode . as =2e for buggy remote servers */ + unset($this->_safeMap[0x2e]); + } + } + + /** + * Encode stream $in to stream $out. + * + * QP encoded strings have a maximum line length of 76 characters. + * If the first line needs to be shorter, indicate the difference with + * $firstLineOffset. + * + * @param Swift_OutputByteStream $os output stream + * @param Swift_InputByteStream $is input stream + * @param int $firstLineOffset + * @param int $maxLineLength + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($maxLineLength > 76 || $maxLineLength <= 0) { + $maxLineLength = 76; + } + + $thisLineLength = $maxLineLength - $firstLineOffset; + + $this->_charStream->flushContents(); + $this->_charStream->importByteStream($os); + + $currentLine = ''; + $prepend = ''; + $size = $lineLen = 0; + + while (false !== $bytes = $this->_nextSequence()) { + // If we're filtering the input + if (isset($this->_filter)) { + // If we can't filter because we need more bytes + while ($this->_filter->shouldBuffer($bytes)) { + // Then collect bytes into the buffer + if (false === $moreBytes = $this->_nextSequence(1)) { + break; + } + + foreach ($moreBytes as $b) { + $bytes[] = $b; + } + } + // And filter them + $bytes = $this->_filter->filter($bytes); + } + + $enc = $this->_encodeByteSequence($bytes, $size); + if ($currentLine && $lineLen + $size >= $thisLineLength) { + $is->write($prepend.$this->_standardize($currentLine)); + $currentLine = ''; + $prepend = "=\r\n"; + $thisLineLength = $maxLineLength; + $lineLen = 0; + } + $lineLen += $size; + $currentLine .= $enc; + } + if (strlen($currentLine)) { + $is->write($prepend.$this->_standardize($currentLine)); + } + } + + /** + * Get the name of this encoding scheme. + * Returns the string 'quoted-printable'. + * + * @return string + */ + public function getName() + { + return 'quoted-printable'; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php new file mode 100644 index 0000000..8113e52 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php @@ -0,0 +1,97 @@ + + */ +class Swift_Mime_ContentEncoder_QpContentEncoderProxy implements Swift_Mime_ContentEncoder +{ + /** + * @var Swift_Mime_ContentEncoder_QpContentEncoder + */ + private $safeEncoder; + + /** + * @var Swift_Mime_ContentEncoder_NativeQpContentEncoder + */ + private $nativeEncoder; + + /** + * @var null|string + */ + private $charset; + + /** + * Constructor. + * + * @param Swift_Mime_ContentEncoder_QpContentEncoder $safeEncoder + * @param Swift_Mime_ContentEncoder_NativeQpContentEncoder $nativeEncoder + * @param string|null $charset + */ + public function __construct(Swift_Mime_ContentEncoder_QpContentEncoder $safeEncoder, Swift_Mime_ContentEncoder_NativeQpContentEncoder $nativeEncoder, $charset) + { + $this->safeEncoder = $safeEncoder; + $this->nativeEncoder = $nativeEncoder; + $this->charset = $charset; + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->safeEncoder = clone $this->safeEncoder; + $this->nativeEncoder = clone $this->nativeEncoder; + } + + /** + * {@inheritdoc} + */ + public function charsetChanged($charset) + { + $this->charset = $charset; + } + + /** + * {@inheritdoc} + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + $this->getEncoder()->encodeByteStream($os, $is, $firstLineOffset, $maxLineLength); + } + + /** + * {@inheritdoc} + */ + public function getName() + { + return 'quoted-printable'; + } + + /** + * {@inheritdoc} + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return $this->getEncoder()->encodeString($string, $firstLineOffset, $maxLineLength); + } + + /** + * @return Swift_Mime_ContentEncoder + */ + private function getEncoder() + { + return 'utf-8' === $this->charset ? $this->nativeEncoder : $this->safeEncoder; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php new file mode 100644 index 0000000..0b8526e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php @@ -0,0 +1,64 @@ + + */ +class Swift_Mime_ContentEncoder_RawContentEncoder implements Swift_Mime_ContentEncoder +{ + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset ignored + * @param int $maxLineLength ignored + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return $string; + } + + /** + * Encode stream $in to stream $out. + * + * @param Swift_OutputByteStream $in + * @param Swift_InputByteStream $out + * @param int $firstLineOffset ignored + * @param int $maxLineLength ignored + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + while (false !== ($bytes = $os->read(8192))) { + $is->write($bytes); + } + } + + /** + * Get the name of this encoding scheme. + * + * @return string + */ + public function getName() + { + return 'raw'; + } + + /** + * Not used. + */ + public function charsetChanged($charset) + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php new file mode 100644 index 0000000..6af7571 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php @@ -0,0 +1,45 @@ +setDisposition('inline'); + $this->setId($this->getId()); + } + + /** + * Get the nesting level of this EmbeddedFile. + * + * Returns {@see LEVEL_RELATED}. + * + * @return int + */ + public function getNestingLevel() + { + return self::LEVEL_RELATED; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php new file mode 100644 index 0000000..cc44a6e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php @@ -0,0 +1,24 @@ +init(); + } + + public function __wakeup() + { + $this->init(); + } + + protected function init() + { + if (count(self::$_specials) > 0) { + return; + } + + self::$_specials = array( + '(', ')', '<', '>', '[', ']', + ':', ';', '@', ',', '.', '"', + ); + + /*** Refer to RFC 2822 for ABNF grammar ***/ + + // All basic building blocks + self::$_grammar['NO-WS-CTL'] = '[\x01-\x08\x0B\x0C\x0E-\x19\x7F]'; + self::$_grammar['WSP'] = '[ \t]'; + self::$_grammar['CRLF'] = '(?:\r\n)'; + self::$_grammar['FWS'] = '(?:(?:'.self::$_grammar['WSP'].'*'. + self::$_grammar['CRLF'].')?'.self::$_grammar['WSP'].')'; + self::$_grammar['text'] = '[\x00-\x08\x0B\x0C\x0E-\x7F]'; + self::$_grammar['quoted-pair'] = '(?:\\\\'.self::$_grammar['text'].')'; + self::$_grammar['ctext'] = '(?:'.self::$_grammar['NO-WS-CTL']. + '|[\x21-\x27\x2A-\x5B\x5D-\x7E])'; + // Uses recursive PCRE (?1) -- could be a weak point?? + self::$_grammar['ccontent'] = '(?:'.self::$_grammar['ctext'].'|'. + self::$_grammar['quoted-pair'].'|(?1))'; + self::$_grammar['comment'] = '(\((?:'.self::$_grammar['FWS'].'|'. + self::$_grammar['ccontent'].')*'.self::$_grammar['FWS'].'?\))'; + self::$_grammar['CFWS'] = '(?:(?:'.self::$_grammar['FWS'].'?'. + self::$_grammar['comment'].')*(?:(?:'.self::$_grammar['FWS'].'?'. + self::$_grammar['comment'].')|'.self::$_grammar['FWS'].'))'; + self::$_grammar['qtext'] = '(?:'.self::$_grammar['NO-WS-CTL']. + '|[\x21\x23-\x5B\x5D-\x7E])'; + self::$_grammar['qcontent'] = '(?:'.self::$_grammar['qtext'].'|'. + self::$_grammar['quoted-pair'].')'; + self::$_grammar['quoted-string'] = '(?:'.self::$_grammar['CFWS'].'?"'. + '('.self::$_grammar['FWS'].'?'.self::$_grammar['qcontent'].')*'. + self::$_grammar['FWS'].'?"'.self::$_grammar['CFWS'].'?)'; + self::$_grammar['atext'] = '[a-zA-Z0-9!#\$%&\'\*\+\-\/=\?\^_`\{\}\|~]'; + self::$_grammar['atom'] = '(?:'.self::$_grammar['CFWS'].'?'. + self::$_grammar['atext'].'+'.self::$_grammar['CFWS'].'?)'; + self::$_grammar['dot-atom-text'] = '(?:'.self::$_grammar['atext'].'+'. + '(\.'.self::$_grammar['atext'].'+)*)'; + self::$_grammar['dot-atom'] = '(?:'.self::$_grammar['CFWS'].'?'. + self::$_grammar['dot-atom-text'].'+'.self::$_grammar['CFWS'].'?)'; + self::$_grammar['word'] = '(?:'.self::$_grammar['atom'].'|'. + self::$_grammar['quoted-string'].')'; + self::$_grammar['phrase'] = '(?:'.self::$_grammar['word'].'+?)'; + self::$_grammar['no-fold-quote'] = '(?:"(?:'.self::$_grammar['qtext']. + '|'.self::$_grammar['quoted-pair'].')*")'; + self::$_grammar['dtext'] = '(?:'.self::$_grammar['NO-WS-CTL']. + '|[\x21-\x5A\x5E-\x7E])'; + self::$_grammar['no-fold-literal'] = '(?:\[(?:'.self::$_grammar['dtext']. + '|'.self::$_grammar['quoted-pair'].')*\])'; + + // Message IDs + self::$_grammar['id-left'] = '(?:'.self::$_grammar['dot-atom-text'].'|'. + self::$_grammar['no-fold-quote'].')'; + self::$_grammar['id-right'] = '(?:'.self::$_grammar['dot-atom-text'].'|'. + self::$_grammar['no-fold-literal'].')'; + + // Addresses, mailboxes and paths + self::$_grammar['local-part'] = '(?:'.self::$_grammar['dot-atom'].'|'. + self::$_grammar['quoted-string'].')'; + self::$_grammar['dcontent'] = '(?:'.self::$_grammar['dtext'].'|'. + self::$_grammar['quoted-pair'].')'; + self::$_grammar['domain-literal'] = '(?:'.self::$_grammar['CFWS'].'?\[('. + self::$_grammar['FWS'].'?'.self::$_grammar['dcontent'].')*?'. + self::$_grammar['FWS'].'?\]'.self::$_grammar['CFWS'].'?)'; + self::$_grammar['domain'] = '(?:'.self::$_grammar['dot-atom'].'|'. + self::$_grammar['domain-literal'].')'; + self::$_grammar['addr-spec'] = '(?:'.self::$_grammar['local-part'].'@'. + self::$_grammar['domain'].')'; + } + + /** + * Get the grammar defined for $name token. + * + * @param string $name exactly as written in the RFC + * + * @return string + */ + public function getDefinition($name) + { + if (array_key_exists($name, self::$_grammar)) { + return self::$_grammar[$name]; + } else { + throw new Swift_RfcComplianceException( + "No such grammar '".$name."' defined." + ); + } + } + + /** + * Returns the tokens defined in RFC 2822 (and some related RFCs). + * + * @return array + */ + public function getGrammarDefinitions() + { + return self::$_grammar; + } + + /** + * Returns the current special characters used in the syntax which need to be escaped. + * + * @return array + */ + public function getSpecials() + { + return self::$_specials; + } + + /** + * Escape special characters in a string (convert to quoted-pairs). + * + * @param string $token + * @param string[] $include additional chars to escape + * @param string[] $exclude chars from escaping + * + * @return string + */ + public function escapeSpecials($token, $include = array(), $exclude = array()) + { + foreach (array_merge(array('\\'), array_diff(self::$_specials, $exclude), $include) as $char) { + $token = str_replace($char, '\\'.$char, $token); + } + + return $token; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php new file mode 100644 index 0000000..a8ddd27 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php @@ -0,0 +1,93 @@ +getName(), "\r\n"); + mb_internal_encoding($old); + + return $newstring; + } + + return parent::encodeString($string, $firstLineOffset, $maxLineLength); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php new file mode 100644 index 0000000..510dd66 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php @@ -0,0 +1,65 @@ +_safeMap[$byte] = chr($byte); + } + } + + /** + * Get the name of this encoding scheme. + * + * Returns the string 'Q'. + * + * @return string + */ + public function getName() + { + return 'Q'; + } + + /** + * Takes an unencoded string and produces a QP encoded string from it. + * + * @param string $string string to encode + * @param int $firstLineOffset optional + * @param int $maxLineLength optional, 0 indicates the default of 76 chars + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return str_replace(array(' ', '=20', "=\r\n"), array('_', '_', "\r\n"), + parent::encodeString($string, $firstLineOffset, $maxLineLength) + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderFactory.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderFactory.php new file mode 100644 index 0000000..c65f26d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderFactory.php @@ -0,0 +1,78 @@ +setGrammar($grammar); + } + + /** + * Set the character set used in this Header. + * + * @param string $charset + */ + public function setCharset($charset) + { + $this->clearCachedValueIf($charset != $this->_charset); + $this->_charset = $charset; + if (isset($this->_encoder)) { + $this->_encoder->charsetChanged($charset); + } + } + + /** + * Get the character set used in this Header. + * + * @return string + */ + public function getCharset() + { + return $this->_charset; + } + + /** + * Set the language used in this Header. + * + * For example, for US English, 'en-us'. + * This can be unspecified. + * + * @param string $lang + */ + public function setLanguage($lang) + { + $this->clearCachedValueIf($this->_lang != $lang); + $this->_lang = $lang; + } + + /** + * Get the language used in this Header. + * + * @return string + */ + public function getLanguage() + { + return $this->_lang; + } + + /** + * Set the encoder used for encoding the header. + * + * @param Swift_Mime_HeaderEncoder $encoder + */ + public function setEncoder(Swift_Mime_HeaderEncoder $encoder) + { + $this->_encoder = $encoder; + $this->setCachedValue(null); + } + + /** + * Get the encoder used for encoding this Header. + * + * @return Swift_Mime_HeaderEncoder + */ + public function getEncoder() + { + return $this->_encoder; + } + + /** + * Set the grammar used for the header. + * + * @param Swift_Mime_Grammar $grammar + */ + public function setGrammar(Swift_Mime_Grammar $grammar) + { + $this->_grammar = $grammar; + $this->setCachedValue(null); + } + + /** + * Get the grammar used for this Header. + * + * @return Swift_Mime_Grammar + */ + public function getGrammar() + { + return $this->_grammar; + } + + /** + * Get the name of this header (e.g. charset). + * + * @return string + */ + public function getFieldName() + { + return $this->_name; + } + + /** + * Set the maximum length of lines in the header (excluding EOL). + * + * @param int $lineLength + */ + public function setMaxLineLength($lineLength) + { + $this->clearCachedValueIf($this->_lineLength != $lineLength); + $this->_lineLength = $lineLength; + } + + /** + * Get the maximum permitted length of lines in this Header. + * + * @return int + */ + public function getMaxLineLength() + { + return $this->_lineLength; + } + + /** + * Get this Header rendered as a RFC 2822 compliant string. + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + public function toString() + { + return $this->_tokensToString($this->toTokens()); + } + + /** + * Returns a string representation of this object. + * + * @return string + * + * @see toString() + */ + public function __toString() + { + return $this->toString(); + } + + // -- Points of extension + + /** + * Set the name of this Header field. + * + * @param string $name + */ + protected function setFieldName($name) + { + $this->_name = $name; + } + + /** + * Produces a compliant, formatted RFC 2822 'phrase' based on the string given. + * + * @param Swift_Mime_Header $header + * @param string $string as displayed + * @param string $charset of the text + * @param Swift_Mime_HeaderEncoder $encoder + * @param bool $shorten the first line to make remove for header name + * + * @return string + */ + protected function createPhrase(Swift_Mime_Header $header, $string, $charset, Swift_Mime_HeaderEncoder $encoder = null, $shorten = false) + { + // Treat token as exactly what was given + $phraseStr = $string; + // If it's not valid + if (!preg_match('/^'.$this->getGrammar()->getDefinition('phrase').'$/D', $phraseStr)) { + // .. but it is just ascii text, try escaping some characters + // and make it a quoted-string + if (preg_match('/^'.$this->getGrammar()->getDefinition('text').'*$/D', $phraseStr)) { + $phraseStr = $this->getGrammar()->escapeSpecials( + $phraseStr, array('"'), $this->getGrammar()->getSpecials() + ); + $phraseStr = '"'.$phraseStr.'"'; + } else { + // ... otherwise it needs encoding + // Determine space remaining on line if first line + if ($shorten) { + $usedLength = strlen($header->getFieldName().': '); + } else { + $usedLength = 0; + } + $phraseStr = $this->encodeWords($header, $string, $usedLength); + } + } + + return $phraseStr; + } + + /** + * Encode needed word tokens within a string of input. + * + * @param Swift_Mime_Header $header + * @param string $input + * @param string $usedLength optional + * + * @return string + */ + protected function encodeWords(Swift_Mime_Header $header, $input, $usedLength = -1) + { + $value = ''; + + $tokens = $this->getEncodableWordTokens($input); + + foreach ($tokens as $token) { + // See RFC 2822, Sect 2.2 (really 2.2 ??) + if ($this->tokenNeedsEncoding($token)) { + // Don't encode starting WSP + $firstChar = substr($token, 0, 1); + switch ($firstChar) { + case ' ': + case "\t": + $value .= $firstChar; + $token = substr($token, 1); + } + + if (-1 == $usedLength) { + $usedLength = strlen($header->getFieldName().': ') + strlen($value); + } + $value .= $this->getTokenAsEncodedWord($token, $usedLength); + + $header->setMaxLineLength(76); // Forcefully override + } else { + $value .= $token; + } + } + + return $value; + } + + /** + * Test if a token needs to be encoded or not. + * + * @param string $token + * + * @return bool + */ + protected function tokenNeedsEncoding($token) + { + return preg_match('~[\x00-\x08\x10-\x19\x7F-\xFF\r\n]~', $token); + } + + /** + * Splits a string into tokens in blocks of words which can be encoded quickly. + * + * @param string $string + * + * @return string[] + */ + protected function getEncodableWordTokens($string) + { + $tokens = array(); + + $encodedToken = ''; + // Split at all whitespace boundaries + foreach (preg_split('~(?=[\t ])~', $string) as $token) { + if ($this->tokenNeedsEncoding($token)) { + $encodedToken .= $token; + } else { + if (strlen($encodedToken) > 0) { + $tokens[] = $encodedToken; + $encodedToken = ''; + } + $tokens[] = $token; + } + } + if (strlen($encodedToken)) { + $tokens[] = $encodedToken; + } + + return $tokens; + } + + /** + * Get a token as an encoded word for safe insertion into headers. + * + * @param string $token token to encode + * @param int $firstLineOffset optional + * + * @return string + */ + protected function getTokenAsEncodedWord($token, $firstLineOffset = 0) + { + // Adjust $firstLineOffset to account for space needed for syntax + $charsetDecl = $this->_charset; + if (isset($this->_lang)) { + $charsetDecl .= '*'.$this->_lang; + } + $encodingWrapperLength = strlen( + '=?'.$charsetDecl.'?'.$this->_encoder->getName().'??=' + ); + + if ($firstLineOffset >= 75) { + //Does this logic need to be here? + $firstLineOffset = 0; + } + + $encodedTextLines = explode("\r\n", + $this->_encoder->encodeString( + $token, $firstLineOffset, 75 - $encodingWrapperLength, $this->_charset + ) + ); + + if (strtolower($this->_charset) !== 'iso-2022-jp') { + // special encoding for iso-2022-jp using mb_encode_mimeheader + foreach ($encodedTextLines as $lineNum => $line) { + $encodedTextLines[$lineNum] = '=?'.$charsetDecl. + '?'.$this->_encoder->getName(). + '?'.$line.'?='; + } + } + + return implode("\r\n ", $encodedTextLines); + } + + /** + * Generates tokens from the given string which include CRLF as individual tokens. + * + * @param string $token + * + * @return string[] + */ + protected function generateTokenLines($token) + { + return preg_split('~(\r\n)~', $token, -1, PREG_SPLIT_DELIM_CAPTURE); + } + + /** + * Set a value into the cache. + * + * @param string $value + */ + protected function setCachedValue($value) + { + $this->_cachedValue = $value; + } + + /** + * Get the value in the cache. + * + * @return string + */ + protected function getCachedValue() + { + return $this->_cachedValue; + } + + /** + * Clear the cached value if $condition is met. + * + * @param bool $condition + */ + protected function clearCachedValueIf($condition) + { + if ($condition) { + $this->setCachedValue(null); + } + } + + /** + * Generate a list of all tokens in the final header. + * + * @param string $string The string to tokenize + * + * @return array An array of tokens as strings + */ + protected function toTokens($string = null) + { + if (is_null($string)) { + $string = $this->getFieldBody(); + } + + $tokens = array(); + + // Generate atoms; split at all invisible boundaries followed by WSP + foreach (preg_split('~(?=[ \t])~', $string) as $token) { + $newTokens = $this->generateTokenLines($token); + foreach ($newTokens as $newToken) { + $tokens[] = $newToken; + } + } + + return $tokens; + } + + /** + * Takes an array of tokens which appear in the header and turns them into + * an RFC 2822 compliant string, adding FWSP where needed. + * + * @param string[] $tokens + * + * @return string + */ + private function _tokensToString(array $tokens) + { + $lineCount = 0; + $headerLines = array(); + $headerLines[] = $this->_name.': '; + $currentLine = &$headerLines[$lineCount++]; + + // Build all tokens back into compliant header + foreach ($tokens as $i => $token) { + // Line longer than specified maximum or token was just a new line + if (("\r\n" == $token) || + ($i > 0 && strlen($currentLine.$token) > $this->_lineLength) + && 0 < strlen($currentLine)) { + $headerLines[] = ''; + $currentLine = &$headerLines[$lineCount++]; + } + + // Append token to the line + if ("\r\n" != $token) { + $currentLine .= $token; + } + } + + // Implode with FWS (RFC 2822, 2.2.3) + return implode("\r\n", $headerLines)."\r\n"; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php new file mode 100644 index 0000000..4fd6674 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php @@ -0,0 +1,125 @@ + + * + *
+ * + * @param string $name of Header + * @param Swift_Mime_Grammar $grammar + */ + public function __construct($name, Swift_Mime_Grammar $grammar) + { + $this->setFieldName($name); + parent::__construct($grammar); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_DATE; + } + + /** + * Set the model for the field body. + * + * This method takes a UNIX timestamp. + * + * @param int $model + */ + public function setFieldBodyModel($model) + { + $this->setTimestamp($model); + } + + /** + * Get the model for the field body. + * + * This method returns a UNIX timestamp. + * + * @return mixed + */ + public function getFieldBodyModel() + { + return $this->getTimestamp(); + } + + /** + * Get the UNIX timestamp of the Date in this Header. + * + * @return int + */ + public function getTimestamp() + { + return $this->_timestamp; + } + + /** + * Set the UNIX timestamp of the Date in this Header. + * + * @param int $timestamp + */ + public function setTimestamp($timestamp) + { + if (!is_null($timestamp)) { + $timestamp = (int) $timestamp; + } + $this->clearCachedValueIf($this->_timestamp != $timestamp); + $this->_timestamp = $timestamp; + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@link toString()} for that). + * + * @see toString() + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + if (isset($this->_timestamp)) { + $this->setCachedValue(date('r', $this->_timestamp)); + } + } + + return $this->getCachedValue(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php new file mode 100644 index 0000000..b114506 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php @@ -0,0 +1,180 @@ +setFieldName($name); + parent::__construct($grammar); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_ID; + } + + /** + * Set the model for the field body. + * + * This method takes a string ID, or an array of IDs. + * + * @param mixed $model + * + * @throws Swift_RfcComplianceException + */ + public function setFieldBodyModel($model) + { + $this->setId($model); + } + + /** + * Get the model for the field body. + * + * This method returns an array of IDs + * + * @return array + */ + public function getFieldBodyModel() + { + return $this->getIds(); + } + + /** + * Set the ID used in the value of this header. + * + * @param string|array $id + * + * @throws Swift_RfcComplianceException + */ + public function setId($id) + { + $this->setIds(is_array($id) ? $id : array($id)); + } + + /** + * Get the ID used in the value of this Header. + * + * If multiple IDs are set only the first is returned. + * + * @return string + */ + public function getId() + { + if (count($this->_ids) > 0) { + return $this->_ids[0]; + } + } + + /** + * Set a collection of IDs to use in the value of this Header. + * + * @param string[] $ids + * + * @throws Swift_RfcComplianceException + */ + public function setIds(array $ids) + { + $actualIds = array(); + + foreach ($ids as $id) { + $this->_assertValidId($id); + $actualIds[] = $id; + } + + $this->clearCachedValueIf($this->_ids != $actualIds); + $this->_ids = $actualIds; + } + + /** + * Get the list of IDs used in this Header. + * + * @return string[] + */ + public function getIds() + { + return $this->_ids; + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@see toString()} for that). + * + * @see toString() + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + $angleAddrs = array(); + + foreach ($this->_ids as $id) { + $angleAddrs[] = '<'.$id.'>'; + } + + $this->setCachedValue(implode(' ', $angleAddrs)); + } + + return $this->getCachedValue(); + } + + /** + * Throws an Exception if the id passed does not comply with RFC 2822. + * + * @param string $id + * + * @throws Swift_RfcComplianceException + */ + private function _assertValidId($id) + { + if (!preg_match( + '/^'.$this->getGrammar()->getDefinition('id-left').'@'. + $this->getGrammar()->getDefinition('id-right').'$/D', + $id + )) { + throw new Swift_RfcComplianceException( + 'Invalid ID given <'.$id.'>' + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php new file mode 100644 index 0000000..798e7f4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php @@ -0,0 +1,354 @@ +setFieldName($name); + $this->setEncoder($encoder); + parent::__construct($grammar); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_MAILBOX; + } + + /** + * Set the model for the field body. + * + * This method takes a string, or an array of addresses. + * + * @param mixed $model + * + * @throws Swift_RfcComplianceException + */ + public function setFieldBodyModel($model) + { + $this->setNameAddresses($model); + } + + /** + * Get the model for the field body. + * + * This method returns an associative array like {@link getNameAddresses()} + * + * @throws Swift_RfcComplianceException + * + * @return array + */ + public function getFieldBodyModel() + { + return $this->getNameAddresses(); + } + + /** + * Set a list of mailboxes to be shown in this Header. + * + * The mailboxes can be a simple array of addresses, or an array of + * key=>value pairs where (email => personalName). + * Example: + * + * setNameAddresses(array( + * 'chris@swiftmailer.org' => 'Chris Corbyn', + * 'mark@swiftmailer.org' //No associated personal name + * )); + * ?> + * + * + * @see __construct() + * @see setAddresses() + * @see setValue() + * + * @param string|string[] $mailboxes + * + * @throws Swift_RfcComplianceException + */ + public function setNameAddresses($mailboxes) + { + $this->_mailboxes = $this->normalizeMailboxes((array) $mailboxes); + $this->setCachedValue(null); //Clear any cached value + } + + /** + * Get the full mailbox list of this Header as an array of valid RFC 2822 strings. + * + * Example: + * + * 'Chris Corbyn', + * 'mark@swiftmailer.org' => 'Mark Corbyn') + * ); + * print_r($header->getNameAddressStrings()); + * // array ( + * // 0 => Chris Corbyn , + * // 1 => Mark Corbyn + * // ) + * ?> + * + * + * @see getNameAddresses() + * @see toString() + * + * @throws Swift_RfcComplianceException + * + * @return string[] + */ + public function getNameAddressStrings() + { + return $this->_createNameAddressStrings($this->getNameAddresses()); + } + + /** + * Get all mailboxes in this Header as key=>value pairs. + * + * The key is the address and the value is the name (or null if none set). + * Example: + * + * 'Chris Corbyn', + * 'mark@swiftmailer.org' => 'Mark Corbyn') + * ); + * print_r($header->getNameAddresses()); + * // array ( + * // chris@swiftmailer.org => Chris Corbyn, + * // mark@swiftmailer.org => Mark Corbyn + * // ) + * ?> + * + * + * @see getAddresses() + * @see getNameAddressStrings() + * + * @return string[] + */ + public function getNameAddresses() + { + return $this->_mailboxes; + } + + /** + * Makes this Header represent a list of plain email addresses with no names. + * + * Example: + * + * setAddresses( + * array('one@domain.tld', 'two@domain.tld', 'three@domain.tld') + * ); + * ?> + * + * + * @see setNameAddresses() + * @see setValue() + * + * @param string[] $addresses + * + * @throws Swift_RfcComplianceException + */ + public function setAddresses($addresses) + { + $this->setNameAddresses(array_values((array) $addresses)); + } + + /** + * Get all email addresses in this Header. + * + * @see getNameAddresses() + * + * @return string[] + */ + public function getAddresses() + { + return array_keys($this->_mailboxes); + } + + /** + * Remove one or more addresses from this Header. + * + * @param string|string[] $addresses + */ + public function removeAddresses($addresses) + { + $this->setCachedValue(null); + foreach ((array) $addresses as $address) { + unset($this->_mailboxes[$address]); + } + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@link toString()} for that). + * + * @see toString() + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + public function getFieldBody() + { + // Compute the string value of the header only if needed + if (is_null($this->getCachedValue())) { + $this->setCachedValue($this->createMailboxListString($this->_mailboxes)); + } + + return $this->getCachedValue(); + } + + // -- Points of extension + + /** + * Normalizes a user-input list of mailboxes into consistent key=>value pairs. + * + * @param string[] $mailboxes + * + * @return string[] + */ + protected function normalizeMailboxes(array $mailboxes) + { + $actualMailboxes = array(); + + foreach ($mailboxes as $key => $value) { + if (is_string($key)) { + //key is email addr + $address = $key; + $name = $value; + } else { + $address = $value; + $name = null; + } + $this->_assertValidAddress($address); + $actualMailboxes[$address] = $name; + } + + return $actualMailboxes; + } + + /** + * Produces a compliant, formatted display-name based on the string given. + * + * @param string $displayName as displayed + * @param bool $shorten the first line to make remove for header name + * + * @return string + */ + protected function createDisplayNameString($displayName, $shorten = false) + { + return $this->createPhrase($this, $displayName, + $this->getCharset(), $this->getEncoder(), $shorten + ); + } + + /** + * Creates a string form of all the mailboxes in the passed array. + * + * @param string[] $mailboxes + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + protected function createMailboxListString(array $mailboxes) + { + return implode(', ', $this->_createNameAddressStrings($mailboxes)); + } + + /** + * Redefine the encoding requirements for mailboxes. + * + * Commas and semicolons are used to separate + * multiple addresses, and should therefore be encoded + * + * @param string $token + * + * @return bool + */ + protected function tokenNeedsEncoding($token) + { + return preg_match('/[,;]/', $token) || parent::tokenNeedsEncoding($token); + } + + /** + * Return an array of strings conforming the the name-addr spec of RFC 2822. + * + * @param string[] $mailboxes + * + * @return string[] + */ + private function _createNameAddressStrings(array $mailboxes) + { + $strings = array(); + + foreach ($mailboxes as $email => $name) { + $mailboxStr = $email; + if (!is_null($name)) { + $nameStr = $this->createDisplayNameString($name, empty($strings)); + $mailboxStr = $nameStr.' <'.$mailboxStr.'>'; + } + $strings[] = $mailboxStr; + } + + return $strings; + } + + /** + * Throws an Exception if the address passed does not comply with RFC 2822. + * + * @param string $address + * + * @throws Swift_RfcComplianceException If invalid. + */ + private function _assertValidAddress($address) + { + if (!preg_match('/^'.$this->getGrammar()->getDefinition('addr-spec').'$/D', + $address)) { + throw new Swift_RfcComplianceException( + 'Address in mailbox given ['.$address. + '] does not comply with RFC 2822, 3.6.2.' + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php new file mode 100644 index 0000000..b52b964 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php @@ -0,0 +1,137 @@ + + */ +class Swift_Mime_Headers_OpenDKIMHeader implements Swift_Mime_Header +{ + /** + * The value of this Header. + * + * @var string + */ + private $_value; + + /** + * The name of this Header. + * + * @var string + */ + private $_fieldName; + + /** + * Creates a new SimpleHeader with $name. + * + * @param string $name + * @param Swift_Mime_HeaderEncoder $encoder + * @param Swift_Mime_Grammar $grammar + */ + public function __construct($name) + { + $this->_fieldName = $name; + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_TEXT; + } + + /** + * Set the model for the field body. + * + * This method takes a string for the field value. + * + * @param string $model + */ + public function setFieldBodyModel($model) + { + $this->setValue($model); + } + + /** + * Get the model for the field body. + * + * This method returns a string. + * + * @return string + */ + public function getFieldBodyModel() + { + return $this->getValue(); + } + + /** + * Get the (unencoded) value of this header. + * + * @return string + */ + public function getValue() + { + return $this->_value; + } + + /** + * Set the (unencoded) value of this header. + * + * @param string $value + */ + public function setValue($value) + { + $this->_value = $value; + } + + /** + * Get the value of this header prepared for rendering. + * + * @return string + */ + public function getFieldBody() + { + return $this->_value; + } + + /** + * Get this Header rendered as a RFC 2822 compliant string. + * + * @return string + */ + public function toString() + { + return $this->_fieldName.': '.$this->_value; + } + + /** + * Set the Header FieldName. + * + * @see Swift_Mime_Header::getFieldName() + */ + public function getFieldName() + { + return $this->_fieldName; + } + + /** + * Ignored. + */ + public function setCharset($charset) + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php new file mode 100644 index 0000000..0dcf1fc --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php @@ -0,0 +1,260 @@ +_paramEncoder = $paramEncoder; + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_PARAMETERIZED; + } + + /** + * Set the character set used in this Header. + * + * @param string $charset + */ + public function setCharset($charset) + { + parent::setCharset($charset); + if (isset($this->_paramEncoder)) { + $this->_paramEncoder->charsetChanged($charset); + } + } + + /** + * Set the value of $parameter. + * + * @param string $parameter + * @param string $value + */ + public function setParameter($parameter, $value) + { + $this->setParameters(array_merge($this->getParameters(), array($parameter => $value))); + } + + /** + * Get the value of $parameter. + * + * @param string $parameter + * + * @return string + */ + public function getParameter($parameter) + { + $params = $this->getParameters(); + + return array_key_exists($parameter, $params) + ? $params[$parameter] + : null; + } + + /** + * Set an associative array of parameter names mapped to values. + * + * @param string[] $parameters + */ + public function setParameters(array $parameters) + { + $this->clearCachedValueIf($this->_params != $parameters); + $this->_params = $parameters; + } + + /** + * Returns an associative array of parameter names mapped to values. + * + * @return string[] + */ + public function getParameters() + { + return $this->_params; + } + + /** + * Get the value of this header prepared for rendering. + * + * @return string + */ + public function getFieldBody() //TODO: Check caching here + { + $body = parent::getFieldBody(); + foreach ($this->_params as $name => $value) { + if (!is_null($value)) { + // Add the parameter + $body .= '; '.$this->_createParameter($name, $value); + } + } + + return $body; + } + + /** + * Generate a list of all tokens in the final header. + * + * This doesn't need to be overridden in theory, but it is for implementation + * reasons to prevent potential breakage of attributes. + * + * @param string $string The string to tokenize + * + * @return array An array of tokens as strings + */ + protected function toTokens($string = null) + { + $tokens = parent::toTokens(parent::getFieldBody()); + + // Try creating any parameters + foreach ($this->_params as $name => $value) { + if (!is_null($value)) { + // Add the semi-colon separator + $tokens[count($tokens) - 1] .= ';'; + $tokens = array_merge($tokens, $this->generateTokenLines( + ' '.$this->_createParameter($name, $value) + )); + } + } + + return $tokens; + } + + /** + * Render a RFC 2047 compliant header parameter from the $name and $value. + * + * @param string $name + * @param string $value + * + * @return string + */ + private function _createParameter($name, $value) + { + $origValue = $value; + + $encoded = false; + // Allow room for parameter name, indices, "=" and DQUOTEs + $maxValueLength = $this->getMaxLineLength() - strlen($name.'=*N"";') - 1; + $firstLineOffset = 0; + + // If it's not already a valid parameter value... + if (!preg_match('/^'.self::TOKEN_REGEX.'$/D', $value)) { + // TODO: text, or something else?? + // ... and it's not ascii + if (!preg_match('/^'.$this->getGrammar()->getDefinition('text').'*$/D', $value)) { + $encoded = true; + // Allow space for the indices, charset and language + $maxValueLength = $this->getMaxLineLength() - strlen($name.'*N*="";') - 1; + $firstLineOffset = strlen( + $this->getCharset()."'".$this->getLanguage()."'" + ); + } + } + + // Encode if we need to + if ($encoded || strlen($value) > $maxValueLength) { + if (isset($this->_paramEncoder)) { + $value = $this->_paramEncoder->encodeString( + $origValue, $firstLineOffset, $maxValueLength, $this->getCharset() + ); + } else { + // We have to go against RFC 2183/2231 in some areas for interoperability + $value = $this->getTokenAsEncodedWord($origValue); + $encoded = false; + } + } + + $valueLines = isset($this->_paramEncoder) ? explode("\r\n", $value) : array($value); + + // Need to add indices + if (count($valueLines) > 1) { + $paramLines = array(); + foreach ($valueLines as $i => $line) { + $paramLines[] = $name.'*'.$i. + $this->_getEndOfParameterValue($line, true, $i == 0); + } + + return implode(";\r\n ", $paramLines); + } else { + return $name.$this->_getEndOfParameterValue( + $valueLines[0], $encoded, true + ); + } + } + + /** + * Returns the parameter value from the "=" and beyond. + * + * @param string $value to append + * @param bool $encoded + * @param bool $firstLine + * + * @return string + */ + private function _getEndOfParameterValue($value, $encoded = false, $firstLine = false) + { + if (!preg_match('/^'.self::TOKEN_REGEX.'$/D', $value)) { + $value = '"'.$value.'"'; + } + $prepend = '='; + if ($encoded) { + $prepend = '*='; + if ($firstLine) { + $prepend = '*='.$this->getCharset()."'".$this->getLanguage(). + "'"; + } + } + + return $prepend.$value; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php new file mode 100644 index 0000000..2fffc7b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php @@ -0,0 +1,143 @@ +setFieldName($name); + parent::__construct($grammar); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_PATH; + } + + /** + * Set the model for the field body. + * This method takes a string for an address. + * + * @param string $model + * + * @throws Swift_RfcComplianceException + */ + public function setFieldBodyModel($model) + { + $this->setAddress($model); + } + + /** + * Get the model for the field body. + * This method returns a string email address. + * + * @return mixed + */ + public function getFieldBodyModel() + { + return $this->getAddress(); + } + + /** + * Set the Address which should appear in this Header. + * + * @param string $address + * + * @throws Swift_RfcComplianceException + */ + public function setAddress($address) + { + if (is_null($address)) { + $this->_address = null; + } elseif ('' == $address) { + $this->_address = ''; + } else { + $this->_assertValidAddress($address); + $this->_address = $address; + } + $this->setCachedValue(null); + } + + /** + * Get the address which is used in this Header (if any). + * + * Null is returned if no address is set. + * + * @return string + */ + public function getAddress() + { + return $this->_address; + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@link toString()} for that). + * + * @see toString() + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + if (isset($this->_address)) { + $this->setCachedValue('<'.$this->_address.'>'); + } + } + + return $this->getCachedValue(); + } + + /** + * Throws an Exception if the address passed does not comply with RFC 2822. + * + * @param string $address + * + * @throws Swift_RfcComplianceException If address is invalid + */ + private function _assertValidAddress($address) + { + if (!preg_match('/^'.$this->getGrammar()->getDefinition('addr-spec').'$/D', + $address)) { + throw new Swift_RfcComplianceException( + 'Address set in PathHeader does not comply with addr-spec of RFC 2822.' + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php new file mode 100644 index 0000000..86177f1 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php @@ -0,0 +1,112 @@ +setFieldName($name); + $this->setEncoder($encoder); + parent::__construct($grammar); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_TEXT; + } + + /** + * Set the model for the field body. + * + * This method takes a string for the field value. + * + * @param string $model + */ + public function setFieldBodyModel($model) + { + $this->setValue($model); + } + + /** + * Get the model for the field body. + * + * This method returns a string. + * + * @return string + */ + public function getFieldBodyModel() + { + return $this->getValue(); + } + + /** + * Get the (unencoded) value of this header. + * + * @return string + */ + public function getValue() + { + return $this->_value; + } + + /** + * Set the (unencoded) value of this header. + * + * @param string $value + */ + public function setValue($value) + { + $this->clearCachedValueIf($this->_value != $value); + $this->_value = $value; + } + + /** + * Get the value of this header prepared for rendering. + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + $this->setCachedValue( + $this->encodeWords($this, $this->_value) + ); + } + + return $this->getCachedValue(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Message.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Message.php new file mode 100644 index 0000000..9b36d21 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Message.php @@ -0,0 +1,223 @@ + 'Real Name'). + * + * If the second parameter is provided and the first is a string, then $name + * is associated with the address. + * + * @param mixed $address + * @param string $name optional + */ + public function setSender($address, $name = null); + + /** + * Get the sender address for this message. + * + * This has a higher significance than the From address. + * + * @return string + */ + public function getSender(); + + /** + * Set the From address of this message. + * + * It is permissible for multiple From addresses to be set using an array. + * + * If multiple From addresses are used, you SHOULD set the Sender address and + * according to RFC 2822, MUST set the sender address. + * + * An array can be used if display names are to be provided: i.e. + * array('email@address.com' => 'Real Name'). + * + * If the second parameter is provided and the first is a string, then $name + * is associated with the address. + * + * @param mixed $addresses + * @param string $name optional + */ + public function setFrom($addresses, $name = null); + + /** + * Get the From address(es) of this message. + * + * This method always returns an associative array where the keys are the + * addresses. + * + * @return string[] + */ + public function getFrom(); + + /** + * Set the Reply-To address(es). + * + * Any replies from the receiver will be sent to this address. + * + * It is permissible for multiple reply-to addresses to be set using an array. + * + * This method has the same synopsis as {@link setFrom()} and {@link setTo()}. + * + * If the second parameter is provided and the first is a string, then $name + * is associated with the address. + * + * @param mixed $addresses + * @param string $name optional + */ + public function setReplyTo($addresses, $name = null); + + /** + * Get the Reply-To addresses for this message. + * + * This method always returns an associative array where the keys provide the + * email addresses. + * + * @return string[] + */ + public function getReplyTo(); + + /** + * Set the To address(es). + * + * Recipients set in this field will receive a copy of this message. + * + * This method has the same synopsis as {@link setFrom()} and {@link setCc()}. + * + * If the second parameter is provided and the first is a string, then $name + * is associated with the address. + * + * @param mixed $addresses + * @param string $name optional + */ + public function setTo($addresses, $name = null); + + /** + * Get the To addresses for this message. + * + * This method always returns an associative array, whereby the keys provide + * the actual email addresses. + * + * @return string[] + */ + public function getTo(); + + /** + * Set the Cc address(es). + * + * Recipients set in this field will receive a 'carbon-copy' of this message. + * + * This method has the same synopsis as {@link setFrom()} and {@link setTo()}. + * + * @param mixed $addresses + * @param string $name optional + */ + public function setCc($addresses, $name = null); + + /** + * Get the Cc addresses for this message. + * + * This method always returns an associative array, whereby the keys provide + * the actual email addresses. + * + * @return string[] + */ + public function getCc(); + + /** + * Set the Bcc address(es). + * + * Recipients set in this field will receive a 'blind-carbon-copy' of this + * message. + * + * In other words, they will get the message, but any other recipients of the + * message will have no such knowledge of their receipt of it. + * + * This method has the same synopsis as {@link setFrom()} and {@link setTo()}. + * + * @param mixed $addresses + * @param string $name optional + */ + public function setBcc($addresses, $name = null); + + /** + * Get the Bcc addresses for this message. + * + * This method always returns an associative array, whereby the keys provide + * the actual email addresses. + * + * @return string[] + */ + public function getBcc(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimeEntity.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimeEntity.php new file mode 100644 index 0000000..30f460c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimeEntity.php @@ -0,0 +1,117 @@ +setContentType('text/plain'); + if (!is_null($charset)) { + $this->setCharset($charset); + } + } + + /** + * Set the body of this entity, either as a string, or as an instance of + * {@link Swift_OutputByteStream}. + * + * @param mixed $body + * @param string $contentType optional + * @param string $charset optional + * + * @return Swift_Mime_MimePart + */ + public function setBody($body, $contentType = null, $charset = null) + { + if (isset($charset)) { + $this->setCharset($charset); + } + $body = $this->_convertString($body); + + parent::setBody($body, $contentType); + + return $this; + } + + /** + * Get the character set of this entity. + * + * @return string + */ + public function getCharset() + { + return $this->_getHeaderParameter('Content-Type', 'charset'); + } + + /** + * Set the character set of this entity. + * + * @param string $charset + * + * @return Swift_Mime_MimePart + */ + public function setCharset($charset) + { + $this->_setHeaderParameter('Content-Type', 'charset', $charset); + if ($charset !== $this->_userCharset) { + $this->_clearCache(); + } + $this->_userCharset = $charset; + parent::charsetChanged($charset); + + return $this; + } + + /** + * Get the format of this entity (i.e. flowed or fixed). + * + * @return string + */ + public function getFormat() + { + return $this->_getHeaderParameter('Content-Type', 'format'); + } + + /** + * Set the format of this entity (flowed or fixed). + * + * @param string $format + * + * @return Swift_Mime_MimePart + */ + public function setFormat($format) + { + $this->_setHeaderParameter('Content-Type', 'format', $format); + $this->_userFormat = $format; + + return $this; + } + + /** + * Test if delsp is being used for this entity. + * + * @return bool + */ + public function getDelSp() + { + return ($this->_getHeaderParameter('Content-Type', 'delsp') == 'yes') + ? true + : false; + } + + /** + * Turn delsp on or off for this entity. + * + * @param bool $delsp + * + * @return Swift_Mime_MimePart + */ + public function setDelSp($delsp = true) + { + $this->_setHeaderParameter('Content-Type', 'delsp', $delsp ? 'yes' : null); + $this->_userDelSp = $delsp; + + return $this; + } + + /** + * Get the nesting level of this entity. + * + * @see LEVEL_TOP, LEVEL_ALTERNATIVE, LEVEL_MIXED, LEVEL_RELATED + * + * @return int + */ + public function getNestingLevel() + { + return $this->_nestingLevel; + } + + /** + * Receive notification that the charset has changed on this document, or a + * parent document. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->setCharset($charset); + } + + /** Fix the content-type and encoding of this entity */ + protected function _fixHeaders() + { + parent::_fixHeaders(); + if (count($this->getChildren())) { + $this->_setHeaderParameter('Content-Type', 'charset', null); + $this->_setHeaderParameter('Content-Type', 'format', null); + $this->_setHeaderParameter('Content-Type', 'delsp', null); + } else { + $this->setCharset($this->_userCharset); + $this->setFormat($this->_userFormat); + $this->setDelSp($this->_userDelSp); + } + } + + /** Set the nesting level of this entity */ + protected function _setNestingLevel($level) + { + $this->_nestingLevel = $level; + } + + /** Encode charset when charset is not utf-8 */ + protected function _convertString($string) + { + $charset = strtolower($this->getCharset()); + if (!in_array($charset, array('utf-8', 'iso-8859-1', ''))) { + // mb_convert_encoding must be the first one to check, since iconv cannot convert some words. + if (function_exists('mb_convert_encoding')) { + $string = mb_convert_encoding($string, $charset, 'utf-8'); + } elseif (function_exists('iconv')) { + $string = iconv('utf-8//TRANSLIT//IGNORE', $charset, $string); + } else { + throw new Swift_SwiftException('No suitable convert encoding function (use UTF-8 as your charset or install the mbstring or iconv extension).'); + } + + return $string; + } + + return $string; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ParameterizedHeader.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ParameterizedHeader.php new file mode 100644 index 0000000..e15c6ef --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ParameterizedHeader.php @@ -0,0 +1,34 @@ +_encoder = $encoder; + $this->_paramEncoder = $paramEncoder; + $this->_grammar = $grammar; + $this->_charset = $charset; + } + + /** + * Create a new Mailbox Header with a list of $addresses. + * + * @param string $name + * @param array|string|null $addresses + * + * @return Swift_Mime_Header + */ + public function createMailboxHeader($name, $addresses = null) + { + $header = new Swift_Mime_Headers_MailboxHeader($name, $this->_encoder, $this->_grammar); + if (isset($addresses)) { + $header->setFieldBodyModel($addresses); + } + $this->_setHeaderCharset($header); + + return $header; + } + + /** + * Create a new Date header using $timestamp (UNIX time). + * + * @param string $name + * @param int|null $timestamp + * + * @return Swift_Mime_Header + */ + public function createDateHeader($name, $timestamp = null) + { + $header = new Swift_Mime_Headers_DateHeader($name, $this->_grammar); + if (isset($timestamp)) { + $header->setFieldBodyModel($timestamp); + } + $this->_setHeaderCharset($header); + + return $header; + } + + /** + * Create a new basic text header with $name and $value. + * + * @param string $name + * @param string $value + * + * @return Swift_Mime_Header + */ + public function createTextHeader($name, $value = null) + { + $header = new Swift_Mime_Headers_UnstructuredHeader($name, $this->_encoder, $this->_grammar); + if (isset($value)) { + $header->setFieldBodyModel($value); + } + $this->_setHeaderCharset($header); + + return $header; + } + + /** + * Create a new ParameterizedHeader with $name, $value and $params. + * + * @param string $name + * @param string $value + * @param array $params + * + * @return Swift_Mime_ParameterizedHeader + */ + public function createParameterizedHeader($name, $value = null, + $params = array()) + { + $header = new Swift_Mime_Headers_ParameterizedHeader($name, + $this->_encoder, (strtolower($name) == 'content-disposition') + ? $this->_paramEncoder + : null, + $this->_grammar + ); + if (isset($value)) { + $header->setFieldBodyModel($value); + } + foreach ($params as $k => $v) { + $header->setParameter($k, $v); + } + $this->_setHeaderCharset($header); + + return $header; + } + + /** + * Create a new ID header for Message-ID or Content-ID. + * + * @param string $name + * @param string|array $ids + * + * @return Swift_Mime_Header + */ + public function createIdHeader($name, $ids = null) + { + $header = new Swift_Mime_Headers_IdentificationHeader($name, $this->_grammar); + if (isset($ids)) { + $header->setFieldBodyModel($ids); + } + $this->_setHeaderCharset($header); + + return $header; + } + + /** + * Create a new Path header with an address (path) in it. + * + * @param string $name + * @param string $path + * + * @return Swift_Mime_Header + */ + public function createPathHeader($name, $path = null) + { + $header = new Swift_Mime_Headers_PathHeader($name, $this->_grammar); + if (isset($path)) { + $header->setFieldBodyModel($path); + } + $this->_setHeaderCharset($header); + + return $header; + } + + /** + * Notify this observer that the entity's charset has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->_charset = $charset; + $this->_encoder->charsetChanged($charset); + $this->_paramEncoder->charsetChanged($charset); + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->_encoder = clone $this->_encoder; + $this->_paramEncoder = clone $this->_paramEncoder; + } + + /** Apply the charset to the Header */ + private function _setHeaderCharset(Swift_Mime_Header $header) + { + if (isset($this->_charset)) { + $header->setCharset($this->_charset); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php new file mode 100644 index 0000000..0776240 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php @@ -0,0 +1,396 @@ +_factory = $factory; + if (isset($charset)) { + $this->setCharset($charset); + } + } + + /** + * Set the charset used by these headers. + * + * @param string $charset + */ + public function setCharset($charset) + { + $this->_charset = $charset; + $this->_factory->charsetChanged($charset); + $this->_notifyHeadersOfCharset($charset); + } + + /** + * Add a new Mailbox Header with a list of $addresses. + * + * @param string $name + * @param array|string $addresses + */ + public function addMailboxHeader($name, $addresses = null) + { + $this->_storeHeader($name, + $this->_factory->createMailboxHeader($name, $addresses)); + } + + /** + * Add a new Date header using $timestamp (UNIX time). + * + * @param string $name + * @param int $timestamp + */ + public function addDateHeader($name, $timestamp = null) + { + $this->_storeHeader($name, + $this->_factory->createDateHeader($name, $timestamp)); + } + + /** + * Add a new basic text header with $name and $value. + * + * @param string $name + * @param string $value + */ + public function addTextHeader($name, $value = null) + { + $this->_storeHeader($name, + $this->_factory->createTextHeader($name, $value)); + } + + /** + * Add a new ParameterizedHeader with $name, $value and $params. + * + * @param string $name + * @param string $value + * @param array $params + */ + public function addParameterizedHeader($name, $value = null, $params = array()) + { + $this->_storeHeader($name, $this->_factory->createParameterizedHeader($name, $value, $params)); + } + + /** + * Add a new ID header for Message-ID or Content-ID. + * + * @param string $name + * @param string|array $ids + */ + public function addIdHeader($name, $ids = null) + { + $this->_storeHeader($name, $this->_factory->createIdHeader($name, $ids)); + } + + /** + * Add a new Path header with an address (path) in it. + * + * @param string $name + * @param string $path + */ + public function addPathHeader($name, $path = null) + { + $this->_storeHeader($name, $this->_factory->createPathHeader($name, $path)); + } + + /** + * Returns true if at least one header with the given $name exists. + * + * If multiple headers match, the actual one may be specified by $index. + * + * @param string $name + * @param int $index + * + * @return bool + */ + public function has($name, $index = 0) + { + $lowerName = strtolower($name); + + return array_key_exists($lowerName, $this->_headers) && array_key_exists($index, $this->_headers[$lowerName]); + } + + /** + * Set a header in the HeaderSet. + * + * The header may be a previously fetched header via {@link get()} or it may + * be one that has been created separately. + * + * If $index is specified, the header will be inserted into the set at this + * offset. + * + * @param Swift_Mime_Header $header + * @param int $index + */ + public function set(Swift_Mime_Header $header, $index = 0) + { + $this->_storeHeader($header->getFieldName(), $header, $index); + } + + /** + * Get the header with the given $name. + * + * If multiple headers match, the actual one may be specified by $index. + * Returns NULL if none present. + * + * @param string $name + * @param int $index + * + * @return Swift_Mime_Header + */ + public function get($name, $index = 0) + { + if ($this->has($name, $index)) { + $lowerName = strtolower($name); + + return $this->_headers[$lowerName][$index]; + } + } + + /** + * Get all headers with the given $name. + * + * @param string $name + * + * @return array + */ + public function getAll($name = null) + { + if (!isset($name)) { + $headers = array(); + foreach ($this->_headers as $collection) { + $headers = array_merge($headers, $collection); + } + + return $headers; + } + + $lowerName = strtolower($name); + if (!array_key_exists($lowerName, $this->_headers)) { + return array(); + } + + return $this->_headers[$lowerName]; + } + + /** + * Return the name of all Headers. + * + * @return array + */ + public function listAll() + { + $headers = $this->_headers; + if ($this->_canSort()) { + uksort($headers, array($this, '_sortHeaders')); + } + + return array_keys($headers); + } + + /** + * Remove the header with the given $name if it's set. + * + * If multiple headers match, the actual one may be specified by $index. + * + * @param string $name + * @param int $index + */ + public function remove($name, $index = 0) + { + $lowerName = strtolower($name); + unset($this->_headers[$lowerName][$index]); + } + + /** + * Remove all headers with the given $name. + * + * @param string $name + */ + public function removeAll($name) + { + $lowerName = strtolower($name); + unset($this->_headers[$lowerName]); + } + + /** + * Create a new instance of this HeaderSet. + * + * @return Swift_Mime_HeaderSet + */ + public function newInstance() + { + return new self($this->_factory); + } + + /** + * Define a list of Header names as an array in the correct order. + * + * These Headers will be output in the given order where present. + * + * @param array $sequence + */ + public function defineOrdering(array $sequence) + { + $this->_order = array_flip(array_map('strtolower', $sequence)); + } + + /** + * Set a list of header names which must always be displayed when set. + * + * Usually headers without a field value won't be output unless set here. + * + * @param array $names + */ + public function setAlwaysDisplayed(array $names) + { + $this->_required = array_flip(array_map('strtolower', $names)); + } + + /** + * Notify this observer that the entity's charset has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->setCharset($charset); + } + + /** + * Returns a string with a representation of all headers. + * + * @return string + */ + public function toString() + { + $string = ''; + $headers = $this->_headers; + if ($this->_canSort()) { + uksort($headers, array($this, '_sortHeaders')); + } + foreach ($headers as $collection) { + foreach ($collection as $header) { + if ($this->_isDisplayed($header) || $header->getFieldBody() != '') { + $string .= $header->toString(); + } + } + } + + return $string; + } + + /** + * Returns a string representation of this object. + * + * @return string + * + * @see toString() + */ + public function __toString() + { + return $this->toString(); + } + + /** Save a Header to the internal collection */ + private function _storeHeader($name, Swift_Mime_Header $header, $offset = null) + { + if (!isset($this->_headers[strtolower($name)])) { + $this->_headers[strtolower($name)] = array(); + } + if (!isset($offset)) { + $this->_headers[strtolower($name)][] = $header; + } else { + $this->_headers[strtolower($name)][$offset] = $header; + } + } + + /** Test if the headers can be sorted */ + private function _canSort() + { + return count($this->_order) > 0; + } + + /** uksort() algorithm for Header ordering */ + private function _sortHeaders($a, $b) + { + $lowerA = strtolower($a); + $lowerB = strtolower($b); + $aPos = array_key_exists($lowerA, $this->_order) + ? $this->_order[$lowerA] + : -1; + $bPos = array_key_exists($lowerB, $this->_order) + ? $this->_order[$lowerB] + : -1; + + if ($aPos == -1) { + return 1; + } elseif ($bPos == -1) { + return -1; + } + + return ($aPos < $bPos) ? -1 : 1; + } + + /** Test if the given Header is always displayed */ + private function _isDisplayed(Swift_Mime_Header $header) + { + return array_key_exists(strtolower($header->getFieldName()), $this->_required); + } + + /** Notify all Headers of the new charset */ + private function _notifyHeadersOfCharset($charset) + { + foreach ($this->_headers as $headerGroup) { + foreach ($headerGroup as $header) { + $header->setCharset($charset); + } + } + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->_factory = clone $this->_factory; + foreach ($this->_headers as $groupKey => $headerGroup) { + foreach ($headerGroup as $key => $header) { + $this->_headers[$groupKey][$key] = clone $header; + } + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php new file mode 100644 index 0000000..72b6ad9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php @@ -0,0 +1,649 @@ +getHeaders()->defineOrdering(array( + 'Return-Path', + 'Received', + 'DKIM-Signature', + 'DomainKey-Signature', + 'Sender', + 'Message-ID', + 'Date', + 'Subject', + 'From', + 'Reply-To', + 'To', + 'Cc', + 'Bcc', + 'MIME-Version', + 'Content-Type', + 'Content-Transfer-Encoding', + )); + $this->getHeaders()->setAlwaysDisplayed(array('Date', 'Message-ID', 'From')); + $this->getHeaders()->addTextHeader('MIME-Version', '1.0'); + $this->setDate(time()); + $this->setId($this->getId()); + $this->getHeaders()->addMailboxHeader('From'); + } + + /** + * Always returns {@link LEVEL_TOP} for a message instance. + * + * @return int + */ + public function getNestingLevel() + { + return self::LEVEL_TOP; + } + + /** + * Set the subject of this message. + * + * @param string $subject + * + * @return Swift_Mime_SimpleMessage + */ + public function setSubject($subject) + { + if (!$this->_setHeaderFieldModel('Subject', $subject)) { + $this->getHeaders()->addTextHeader('Subject', $subject); + } + + return $this; + } + + /** + * Get the subject of this message. + * + * @return string + */ + public function getSubject() + { + return $this->_getHeaderFieldModel('Subject'); + } + + /** + * Set the date at which this message was created. + * + * @param int $date + * + * @return Swift_Mime_SimpleMessage + */ + public function setDate($date) + { + if (!$this->_setHeaderFieldModel('Date', $date)) { + $this->getHeaders()->addDateHeader('Date', $date); + } + + return $this; + } + + /** + * Get the date at which this message was created. + * + * @return int + */ + public function getDate() + { + return $this->_getHeaderFieldModel('Date'); + } + + /** + * Set the return-path (the bounce address) of this message. + * + * @param string $address + * + * @return Swift_Mime_SimpleMessage + */ + public function setReturnPath($address) + { + if (!$this->_setHeaderFieldModel('Return-Path', $address)) { + $this->getHeaders()->addPathHeader('Return-Path', $address); + } + + return $this; + } + + /** + * Get the return-path (bounce address) of this message. + * + * @return string + */ + public function getReturnPath() + { + return $this->_getHeaderFieldModel('Return-Path'); + } + + /** + * Set the sender of this message. + * + * This does not override the From field, but it has a higher significance. + * + * @param string $address + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function setSender($address, $name = null) + { + if (!is_array($address) && isset($name)) { + $address = array($address => $name); + } + + if (!$this->_setHeaderFieldModel('Sender', (array) $address)) { + $this->getHeaders()->addMailboxHeader('Sender', (array) $address); + } + + return $this; + } + + /** + * Get the sender of this message. + * + * @return string + */ + public function getSender() + { + return $this->_getHeaderFieldModel('Sender'); + } + + /** + * Add a From: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function addFrom($address, $name = null) + { + $current = $this->getFrom(); + $current[$address] = $name; + + return $this->setFrom($current); + } + + /** + * Set the from address of this message. + * + * You may pass an array of addresses if this message is from multiple people. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param string|array $addresses + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function setFrom($addresses, $name = null) + { + if (!is_array($addresses) && isset($name)) { + $addresses = array($addresses => $name); + } + + if (!$this->_setHeaderFieldModel('From', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('From', (array) $addresses); + } + + return $this; + } + + /** + * Get the from address of this message. + * + * @return mixed + */ + public function getFrom() + { + return $this->_getHeaderFieldModel('From'); + } + + /** + * Add a Reply-To: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function addReplyTo($address, $name = null) + { + $current = $this->getReplyTo(); + $current[$address] = $name; + + return $this->setReplyTo($current); + } + + /** + * Set the reply-to address of this message. + * + * You may pass an array of addresses if replies will go to multiple people. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param string $addresses + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function setReplyTo($addresses, $name = null) + { + if (!is_array($addresses) && isset($name)) { + $addresses = array($addresses => $name); + } + + if (!$this->_setHeaderFieldModel('Reply-To', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('Reply-To', (array) $addresses); + } + + return $this; + } + + /** + * Get the reply-to address of this message. + * + * @return string + */ + public function getReplyTo() + { + return $this->_getHeaderFieldModel('Reply-To'); + } + + /** + * Add a To: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function addTo($address, $name = null) + { + $current = $this->getTo(); + $current[$address] = $name; + + return $this->setTo($current); + } + + /** + * Set the to addresses of this message. + * + * If multiple recipients will receive the message an array should be used. + * Example: array('receiver@domain.org', 'other@domain.org' => 'A name') + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function setTo($addresses, $name = null) + { + if (!is_array($addresses) && isset($name)) { + $addresses = array($addresses => $name); + } + + if (!$this->_setHeaderFieldModel('To', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('To', (array) $addresses); + } + + return $this; + } + + /** + * Get the To addresses of this message. + * + * @return array + */ + public function getTo() + { + return $this->_getHeaderFieldModel('To'); + } + + /** + * Add a Cc: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function addCc($address, $name = null) + { + $current = $this->getCc(); + $current[$address] = $name; + + return $this->setCc($current); + } + + /** + * Set the Cc addresses of this message. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function setCc($addresses, $name = null) + { + if (!is_array($addresses) && isset($name)) { + $addresses = array($addresses => $name); + } + + if (!$this->_setHeaderFieldModel('Cc', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('Cc', (array) $addresses); + } + + return $this; + } + + /** + * Get the Cc address of this message. + * + * @return array + */ + public function getCc() + { + return $this->_getHeaderFieldModel('Cc'); + } + + /** + * Add a Bcc: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function addBcc($address, $name = null) + { + $current = $this->getBcc(); + $current[$address] = $name; + + return $this->setBcc($current); + } + + /** + * Set the Bcc addresses of this message. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return Swift_Mime_SimpleMessage + */ + public function setBcc($addresses, $name = null) + { + if (!is_array($addresses) && isset($name)) { + $addresses = array($addresses => $name); + } + + if (!$this->_setHeaderFieldModel('Bcc', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('Bcc', (array) $addresses); + } + + return $this; + } + + /** + * Get the Bcc addresses of this message. + * + * @return array + */ + public function getBcc() + { + return $this->_getHeaderFieldModel('Bcc'); + } + + /** + * Set the priority of this message. + * + * The value is an integer where 1 is the highest priority and 5 is the lowest. + * + * @param int $priority + * + * @return Swift_Mime_SimpleMessage + */ + public function setPriority($priority) + { + $priorityMap = array( + 1 => 'Highest', + 2 => 'High', + 3 => 'Normal', + 4 => 'Low', + 5 => 'Lowest', + ); + $pMapKeys = array_keys($priorityMap); + if ($priority > max($pMapKeys)) { + $priority = max($pMapKeys); + } elseif ($priority < min($pMapKeys)) { + $priority = min($pMapKeys); + } + if (!$this->_setHeaderFieldModel('X-Priority', + sprintf('%d (%s)', $priority, $priorityMap[$priority]))) { + $this->getHeaders()->addTextHeader('X-Priority', + sprintf('%d (%s)', $priority, $priorityMap[$priority])); + } + + return $this; + } + + /** + * Get the priority of this message. + * + * The returned value is an integer where 1 is the highest priority and 5 + * is the lowest. + * + * @return int + */ + public function getPriority() + { + list($priority) = sscanf($this->_getHeaderFieldModel('X-Priority'), + '%[1-5]' + ); + + return isset($priority) ? $priority : 3; + } + + /** + * Ask for a delivery receipt from the recipient to be sent to $addresses. + * + * @param array $addresses + * + * @return Swift_Mime_SimpleMessage + */ + public function setReadReceiptTo($addresses) + { + if (!$this->_setHeaderFieldModel('Disposition-Notification-To', $addresses)) { + $this->getHeaders() + ->addMailboxHeader('Disposition-Notification-To', $addresses); + } + + return $this; + } + + /** + * Get the addresses to which a read-receipt will be sent. + * + * @return string + */ + public function getReadReceiptTo() + { + return $this->_getHeaderFieldModel('Disposition-Notification-To'); + } + + /** + * Attach a {@link Swift_Mime_MimeEntity} such as an Attachment or MimePart. + * + * @param Swift_Mime_MimeEntity $entity + * + * @return Swift_Mime_SimpleMessage + */ + public function attach(Swift_Mime_MimeEntity $entity) + { + $this->setChildren(array_merge($this->getChildren(), array($entity))); + + return $this; + } + + /** + * Remove an already attached entity. + * + * @param Swift_Mime_MimeEntity $entity + * + * @return Swift_Mime_SimpleMessage + */ + public function detach(Swift_Mime_MimeEntity $entity) + { + $newChildren = array(); + foreach ($this->getChildren() as $child) { + if ($entity !== $child) { + $newChildren[] = $child; + } + } + $this->setChildren($newChildren); + + return $this; + } + + /** + * Attach a {@link Swift_Mime_MimeEntity} and return it's CID source. + * This method should be used when embedding images or other data in a message. + * + * @param Swift_Mime_MimeEntity $entity + * + * @return string + */ + public function embed(Swift_Mime_MimeEntity $entity) + { + $this->attach($entity); + + return 'cid:'.$entity->getId(); + } + + /** + * Get this message as a complete string. + * + * @return string + */ + public function toString() + { + if (count($children = $this->getChildren()) > 0 && $this->getBody() != '') { + $this->setChildren(array_merge(array($this->_becomeMimePart()), $children)); + $string = parent::toString(); + $this->setChildren($children); + } else { + $string = parent::toString(); + } + + return $string; + } + + /** + * Returns a string representation of this object. + * + * @see toString() + * + * @return string + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Write this message to a {@link Swift_InputByteStream}. + * + * @param Swift_InputByteStream $is + */ + public function toByteStream(Swift_InputByteStream $is) + { + if (count($children = $this->getChildren()) > 0 && $this->getBody() != '') { + $this->setChildren(array_merge(array($this->_becomeMimePart()), $children)); + parent::toByteStream($is); + $this->setChildren($children); + } else { + parent::toByteStream($is); + } + } + + /** @see Swift_Mime_SimpleMimeEntity::_getIdField() */ + protected function _getIdField() + { + return 'Message-ID'; + } + + /** Turn the body of this message into a child of itself if needed */ + protected function _becomeMimePart() + { + $part = new parent($this->getHeaders()->newInstance(), $this->getEncoder(), + $this->_getCache(), $this->_getGrammar(), $this->_userCharset + ); + $part->setContentType($this->_userContentType); + $part->setBody($this->getBody()); + $part->setFormat($this->_userFormat); + $part->setDelSp($this->_userDelSp); + $part->_setNestingLevel($this->_getTopNestingLevel()); + + return $part; + } + + /** Get the highest nesting level nested inside this message */ + private function _getTopNestingLevel() + { + $highestLevel = $this->getNestingLevel(); + foreach ($this->getChildren() as $child) { + $childLevel = $child->getNestingLevel(); + if ($highestLevel < $childLevel) { + $highestLevel = $childLevel; + } + } + + return $highestLevel; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php new file mode 100644 index 0000000..8e14ba8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php @@ -0,0 +1,867 @@ + array(self::LEVEL_TOP, self::LEVEL_MIXED), + 'multipart/alternative' => array(self::LEVEL_MIXED, self::LEVEL_ALTERNATIVE), + 'multipart/related' => array(self::LEVEL_ALTERNATIVE, self::LEVEL_RELATED), + ); + + /** A set of filter rules to define what level an entity should be nested at */ + private $_compoundLevelFilters = array(); + + /** The nesting level of this entity */ + private $_nestingLevel = self::LEVEL_ALTERNATIVE; + + /** A KeyCache instance used during encoding and streaming */ + private $_cache; + + /** Direct descendants of this entity */ + private $_immediateChildren = array(); + + /** All descendants of this entity */ + private $_children = array(); + + /** The maximum line length of the body of this entity */ + private $_maxLineLength = 78; + + /** The order in which alternative mime types should appear */ + private $_alternativePartOrder = array( + 'text/plain' => 1, + 'text/html' => 2, + 'multipart/related' => 3, + ); + + /** The CID of this entity */ + private $_id; + + /** The key used for accessing the cache */ + private $_cacheKey; + + protected $_userContentType; + + /** + * Create a new SimpleMimeEntity with $headers, $encoder and $cache. + * + * @param Swift_Mime_HeaderSet $headers + * @param Swift_Mime_ContentEncoder $encoder + * @param Swift_KeyCache $cache + * @param Swift_Mime_Grammar $grammar + */ + public function __construct(Swift_Mime_HeaderSet $headers, Swift_Mime_ContentEncoder $encoder, Swift_KeyCache $cache, Swift_Mime_Grammar $grammar) + { + $this->_cacheKey = md5(uniqid(getmypid().mt_rand(), true)); + $this->_cache = $cache; + $this->_headers = $headers; + $this->_grammar = $grammar; + $this->setEncoder($encoder); + $this->_headers->defineOrdering(array('Content-Type', 'Content-Transfer-Encoding')); + + // This array specifies that, when the entire MIME document contains + // $compoundLevel, then for each child within $level, if its Content-Type + // is $contentType then it should be treated as if it's level is + // $neededLevel instead. I tried to write that unambiguously! :-\ + // Data Structure: + // array ( + // $compoundLevel => array( + // $level => array( + // $contentType => $neededLevel + // ) + // ) + // ) + + $this->_compoundLevelFilters = array( + (self::LEVEL_ALTERNATIVE + self::LEVEL_RELATED) => array( + self::LEVEL_ALTERNATIVE => array( + 'text/plain' => self::LEVEL_ALTERNATIVE, + 'text/html' => self::LEVEL_RELATED, + ), + ), + ); + + $this->_id = $this->getRandomId(); + } + + /** + * Generate a new Content-ID or Message-ID for this MIME entity. + * + * @return string + */ + public function generateId() + { + $this->setId($this->getRandomId()); + + return $this->_id; + } + + /** + * Get the {@link Swift_Mime_HeaderSet} for this entity. + * + * @return Swift_Mime_HeaderSet + */ + public function getHeaders() + { + return $this->_headers; + } + + /** + * Get the nesting level of this entity. + * + * @see LEVEL_TOP, LEVEL_MIXED, LEVEL_RELATED, LEVEL_ALTERNATIVE + * + * @return int + */ + public function getNestingLevel() + { + return $this->_nestingLevel; + } + + /** + * Get the Content-type of this entity. + * + * @return string + */ + public function getContentType() + { + return $this->_getHeaderFieldModel('Content-Type'); + } + + /** + * Set the Content-type of this entity. + * + * @param string $type + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setContentType($type) + { + $this->_setContentTypeInHeaders($type); + // Keep track of the value so that if the content-type changes automatically + // due to added child entities, it can be restored if they are later removed + $this->_userContentType = $type; + + return $this; + } + + /** + * Get the CID of this entity. + * + * The CID will only be present in headers if a Content-ID header is present. + * + * @return string + */ + public function getId() + { + $tmp = (array) $this->_getHeaderFieldModel($this->_getIdField()); + + return $this->_headers->has($this->_getIdField()) ? current($tmp) : $this->_id; + } + + /** + * Set the CID of this entity. + * + * @param string $id + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setId($id) + { + if (!$this->_setHeaderFieldModel($this->_getIdField(), $id)) { + $this->_headers->addIdHeader($this->_getIdField(), $id); + } + $this->_id = $id; + + return $this; + } + + /** + * Get the description of this entity. + * + * This value comes from the Content-Description header if set. + * + * @return string + */ + public function getDescription() + { + return $this->_getHeaderFieldModel('Content-Description'); + } + + /** + * Set the description of this entity. + * + * This method sets a value in the Content-ID header. + * + * @param string $description + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setDescription($description) + { + if (!$this->_setHeaderFieldModel('Content-Description', $description)) { + $this->_headers->addTextHeader('Content-Description', $description); + } + + return $this; + } + + /** + * Get the maximum line length of the body of this entity. + * + * @return int + */ + public function getMaxLineLength() + { + return $this->_maxLineLength; + } + + /** + * Set the maximum line length of lines in this body. + * + * Though not enforced by the library, lines should not exceed 1000 chars. + * + * @param int $length + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setMaxLineLength($length) + { + $this->_maxLineLength = $length; + + return $this; + } + + /** + * Get all children added to this entity. + * + * @return Swift_Mime_MimeEntity[] + */ + public function getChildren() + { + return $this->_children; + } + + /** + * Set all children of this entity. + * + * @param Swift_Mime_MimeEntity[] $children + * @param int $compoundLevel For internal use only + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setChildren(array $children, $compoundLevel = null) + { + // TODO: Try to refactor this logic + + $compoundLevel = isset($compoundLevel) + ? $compoundLevel + : $this->_getCompoundLevel($children) + ; + + $immediateChildren = array(); + $grandchildren = array(); + $newContentType = $this->_userContentType; + + foreach ($children as $child) { + $level = $this->_getNeededChildLevel($child, $compoundLevel); + if (empty($immediateChildren)) { + //first iteration + $immediateChildren = array($child); + } else { + $nextLevel = $this->_getNeededChildLevel($immediateChildren[0], $compoundLevel); + if ($nextLevel == $level) { + $immediateChildren[] = $child; + } elseif ($level < $nextLevel) { + // Re-assign immediateChildren to grandchildren + $grandchildren = array_merge($grandchildren, $immediateChildren); + // Set new children + $immediateChildren = array($child); + } else { + $grandchildren[] = $child; + } + } + } + + if (!empty($immediateChildren)) { + $lowestLevel = $this->_getNeededChildLevel($immediateChildren[0], $compoundLevel); + + // Determine which composite media type is needed to accommodate the + // immediate children + foreach ($this->_compositeRanges as $mediaType => $range) { + if ($lowestLevel > $range[0] + && $lowestLevel <= $range[1]) { + $newContentType = $mediaType; + break; + } + } + + // Put any grandchildren in a subpart + if (!empty($grandchildren)) { + $subentity = $this->_createChild(); + $subentity->_setNestingLevel($lowestLevel); + $subentity->setChildren($grandchildren, $compoundLevel); + array_unshift($immediateChildren, $subentity); + } + } + + $this->_immediateChildren = $immediateChildren; + $this->_children = $children; + $this->_setContentTypeInHeaders($newContentType); + $this->_fixHeaders(); + $this->_sortChildren(); + + return $this; + } + + /** + * Get the body of this entity as a string. + * + * @return string + */ + public function getBody() + { + return ($this->_body instanceof Swift_OutputByteStream) + ? $this->_readStream($this->_body) + : $this->_body; + } + + /** + * Set the body of this entity, either as a string, or as an instance of + * {@link Swift_OutputByteStream}. + * + * @param mixed $body + * @param string $contentType optional + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setBody($body, $contentType = null) + { + if ($body !== $this->_body) { + $this->_clearCache(); + } + + $this->_body = $body; + if (isset($contentType)) { + $this->setContentType($contentType); + } + + return $this; + } + + /** + * Get the encoder used for the body of this entity. + * + * @return Swift_Mime_ContentEncoder + */ + public function getEncoder() + { + return $this->_encoder; + } + + /** + * Set the encoder used for the body of this entity. + * + * @param Swift_Mime_ContentEncoder $encoder + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setEncoder(Swift_Mime_ContentEncoder $encoder) + { + if ($encoder !== $this->_encoder) { + $this->_clearCache(); + } + + $this->_encoder = $encoder; + $this->_setEncoding($encoder->getName()); + $this->_notifyEncoderChanged($encoder); + + return $this; + } + + /** + * Get the boundary used to separate children in this entity. + * + * @return string + */ + public function getBoundary() + { + if (!isset($this->_boundary)) { + $this->_boundary = '_=_swift_v4_'.time().'_'.md5(getmypid().mt_rand().uniqid('', true)).'_=_'; + } + + return $this->_boundary; + } + + /** + * Set the boundary used to separate children in this entity. + * + * @param string $boundary + * + * @throws Swift_RfcComplianceException + * + * @return Swift_Mime_SimpleMimeEntity + */ + public function setBoundary($boundary) + { + $this->_assertValidBoundary($boundary); + $this->_boundary = $boundary; + + return $this; + } + + /** + * Receive notification that the charset of this entity, or a parent entity + * has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->_notifyCharsetChanged($charset); + } + + /** + * Receive notification that the encoder of this entity or a parent entity + * has changed. + * + * @param Swift_Mime_ContentEncoder $encoder + */ + public function encoderChanged(Swift_Mime_ContentEncoder $encoder) + { + $this->_notifyEncoderChanged($encoder); + } + + /** + * Get this entire entity as a string. + * + * @return string + */ + public function toString() + { + $string = $this->_headers->toString(); + $string .= $this->_bodyToString(); + + return $string; + } + + /** + * Get this entire entity as a string. + * + * @return string + */ + protected function _bodyToString() + { + $string = ''; + + if (isset($this->_body) && empty($this->_immediateChildren)) { + if ($this->_cache->hasKey($this->_cacheKey, 'body')) { + $body = $this->_cache->getString($this->_cacheKey, 'body'); + } else { + $body = "\r\n".$this->_encoder->encodeString($this->getBody(), 0, + $this->getMaxLineLength() + ); + $this->_cache->setString($this->_cacheKey, 'body', $body, + Swift_KeyCache::MODE_WRITE + ); + } + $string .= $body; + } + + if (!empty($this->_immediateChildren)) { + foreach ($this->_immediateChildren as $child) { + $string .= "\r\n\r\n--".$this->getBoundary()."\r\n"; + $string .= $child->toString(); + } + $string .= "\r\n\r\n--".$this->getBoundary()."--\r\n"; + } + + return $string; + } + + /** + * Returns a string representation of this object. + * + * @see toString() + * + * @return string + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Write this entire entity to a {@see Swift_InputByteStream}. + * + * @param Swift_InputByteStream + */ + public function toByteStream(Swift_InputByteStream $is) + { + $is->write($this->_headers->toString()); + $is->commit(); + + $this->_bodyToByteStream($is); + } + + /** + * Write this entire entity to a {@link Swift_InputByteStream}. + * + * @param Swift_InputByteStream + */ + protected function _bodyToByteStream(Swift_InputByteStream $is) + { + if (empty($this->_immediateChildren)) { + if (isset($this->_body)) { + if ($this->_cache->hasKey($this->_cacheKey, 'body')) { + $this->_cache->exportToByteStream($this->_cacheKey, 'body', $is); + } else { + $cacheIs = $this->_cache->getInputByteStream($this->_cacheKey, 'body'); + if ($cacheIs) { + $is->bind($cacheIs); + } + + $is->write("\r\n"); + + if ($this->_body instanceof Swift_OutputByteStream) { + $this->_body->setReadPointer(0); + + $this->_encoder->encodeByteStream($this->_body, $is, 0, $this->getMaxLineLength()); + } else { + $is->write($this->_encoder->encodeString($this->getBody(), 0, $this->getMaxLineLength())); + } + + if ($cacheIs) { + $is->unbind($cacheIs); + } + } + } + } + + if (!empty($this->_immediateChildren)) { + foreach ($this->_immediateChildren as $child) { + $is->write("\r\n\r\n--".$this->getBoundary()."\r\n"); + $child->toByteStream($is); + } + $is->write("\r\n\r\n--".$this->getBoundary()."--\r\n"); + } + } + + /** + * Get the name of the header that provides the ID of this entity. + */ + protected function _getIdField() + { + return 'Content-ID'; + } + + /** + * Get the model data (usually an array or a string) for $field. + */ + protected function _getHeaderFieldModel($field) + { + if ($this->_headers->has($field)) { + return $this->_headers->get($field)->getFieldBodyModel(); + } + } + + /** + * Set the model data for $field. + */ + protected function _setHeaderFieldModel($field, $model) + { + if ($this->_headers->has($field)) { + $this->_headers->get($field)->setFieldBodyModel($model); + + return true; + } else { + return false; + } + } + + /** + * Get the parameter value of $parameter on $field header. + */ + protected function _getHeaderParameter($field, $parameter) + { + if ($this->_headers->has($field)) { + return $this->_headers->get($field)->getParameter($parameter); + } + } + + /** + * Set the parameter value of $parameter on $field header. + */ + protected function _setHeaderParameter($field, $parameter, $value) + { + if ($this->_headers->has($field)) { + $this->_headers->get($field)->setParameter($parameter, $value); + + return true; + } else { + return false; + } + } + + /** + * Re-evaluate what content type and encoding should be used on this entity. + */ + protected function _fixHeaders() + { + if (count($this->_immediateChildren)) { + $this->_setHeaderParameter('Content-Type', 'boundary', + $this->getBoundary() + ); + $this->_headers->remove('Content-Transfer-Encoding'); + } else { + $this->_setHeaderParameter('Content-Type', 'boundary', null); + $this->_setEncoding($this->_encoder->getName()); + } + } + + /** + * Get the KeyCache used in this entity. + * + * @return Swift_KeyCache + */ + protected function _getCache() + { + return $this->_cache; + } + + /** + * Get the grammar used for validation. + * + * @return Swift_Mime_Grammar + */ + protected function _getGrammar() + { + return $this->_grammar; + } + + /** + * Empty the KeyCache for this entity. + */ + protected function _clearCache() + { + $this->_cache->clearKey($this->_cacheKey, 'body'); + } + + /** + * Returns a random Content-ID or Message-ID. + * + * @return string + */ + protected function getRandomId() + { + $idLeft = md5(getmypid().'.'.time().'.'.uniqid(mt_rand(), true)); + $idRight = !empty($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'swift.generated'; + $id = $idLeft.'@'.$idRight; + + try { + $this->_assertValidId($id); + } catch (Swift_RfcComplianceException $e) { + $id = $idLeft.'@swift.generated'; + } + + return $id; + } + + private function _readStream(Swift_OutputByteStream $os) + { + $string = ''; + while (false !== $bytes = $os->read(8192)) { + $string .= $bytes; + } + + $os->setReadPointer(0); + + return $string; + } + + private function _setEncoding($encoding) + { + if (!$this->_setHeaderFieldModel('Content-Transfer-Encoding', $encoding)) { + $this->_headers->addTextHeader('Content-Transfer-Encoding', $encoding); + } + } + + private function _assertValidBoundary($boundary) + { + if (!preg_match( + '/^[a-z0-9\'\(\)\+_\-,\.\/:=\?\ ]{0,69}[a-z0-9\'\(\)\+_\-,\.\/:=\?]$/Di', + $boundary)) { + throw new Swift_RfcComplianceException('Mime boundary set is not RFC 2046 compliant.'); + } + } + + private function _setContentTypeInHeaders($type) + { + if (!$this->_setHeaderFieldModel('Content-Type', $type)) { + $this->_headers->addParameterizedHeader('Content-Type', $type); + } + } + + private function _setNestingLevel($level) + { + $this->_nestingLevel = $level; + } + + private function _getCompoundLevel($children) + { + $level = 0; + foreach ($children as $child) { + $level |= $child->getNestingLevel(); + } + + return $level; + } + + private function _getNeededChildLevel($child, $compoundLevel) + { + $filter = array(); + foreach ($this->_compoundLevelFilters as $bitmask => $rules) { + if (($compoundLevel & $bitmask) === $bitmask) { + $filter = $rules + $filter; + } + } + + $realLevel = $child->getNestingLevel(); + $lowercaseType = strtolower($child->getContentType()); + + if (isset($filter[$realLevel]) + && isset($filter[$realLevel][$lowercaseType])) { + return $filter[$realLevel][$lowercaseType]; + } else { + return $realLevel; + } + } + + private function _createChild() + { + return new self($this->_headers->newInstance(), + $this->_encoder, $this->_cache, $this->_grammar); + } + + private function _notifyEncoderChanged(Swift_Mime_ContentEncoder $encoder) + { + foreach ($this->_immediateChildren as $child) { + $child->encoderChanged($encoder); + } + } + + private function _notifyCharsetChanged($charset) + { + $this->_encoder->charsetChanged($charset); + $this->_headers->charsetChanged($charset); + foreach ($this->_immediateChildren as $child) { + $child->charsetChanged($charset); + } + } + + private function _sortChildren() + { + $shouldSort = false; + foreach ($this->_immediateChildren as $child) { + // NOTE: This include alternative parts moved into a related part + if ($child->getNestingLevel() == self::LEVEL_ALTERNATIVE) { + $shouldSort = true; + break; + } + } + + // Sort in order of preference, if there is one + if ($shouldSort) { + usort($this->_immediateChildren, array($this, '_childSortAlgorithm')); + } + } + + private function _childSortAlgorithm($a, $b) + { + $typePrefs = array(); + $types = array( + strtolower($a->getContentType()), + strtolower($b->getContentType()), + ); + foreach ($types as $type) { + $typePrefs[] = (array_key_exists($type, $this->_alternativePartOrder)) + ? $this->_alternativePartOrder[$type] + : (max($this->_alternativePartOrder) + 1); + } + + return ($typePrefs[0] >= $typePrefs[1]) ? 1 : -1; + } + + // -- Destructor + + /** + * Empties it's own contents from the cache. + */ + public function __destruct() + { + $this->_cache->clearAll($this->_cacheKey); + } + + /** + * Throws an Exception if the id passed does not comply with RFC 2822. + * + * @param string $id + * + * @throws Swift_RfcComplianceException + */ + private function _assertValidId($id) + { + if (!preg_match( + '/^'.$this->_grammar->getDefinition('id-left').'@'. + $this->_grammar->getDefinition('id-right').'$/D', + $id + )) { + throw new Swift_RfcComplianceException( + 'Invalid ID given <'.$id.'>' + ); + } + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->_headers = clone $this->_headers; + $this->_encoder = clone $this->_encoder; + $this->_cacheKey = uniqid(); + $children = array(); + foreach ($this->_children as $pos => $child) { + $children[$pos] = clone $child; + } + $this->setChildren($children); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php new file mode 100644 index 0000000..215f8db --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php @@ -0,0 +1,59 @@ +createDependenciesFor('mime.part') + ); + + if (!isset($charset)) { + $charset = Swift_DependencyContainer::getInstance() + ->lookup('properties.charset'); + } + $this->setBody($body); + $this->setCharset($charset); + if ($contentType) { + $this->setContentType($contentType); + } + } + + /** + * Create a new MimePart. + * + * @param string $body + * @param string $contentType + * @param string $charset + * + * @return Swift_Mime_MimePart + */ + public static function newInstance($body = null, $contentType = null, $charset = null) + { + return new self($body, $contentType, $charset); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php new file mode 100644 index 0000000..b38e1cf --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Pretends messages have been sent, but just ignores them. + * + * @author Fabien Potencier + */ +class Swift_NullTransport extends Swift_Transport_NullTransport +{ + /** + * Create a new NullTransport. + */ + public function __construct() + { + call_user_func_array( + array($this, 'Swift_Transport_NullTransport::__construct'), + Swift_DependencyContainer::getInstance() + ->createDependenciesFor('transport.null') + ); + } + + /** + * Create a new NullTransport instance. + * + * @return Swift_NullTransport + */ + public static function newInstance() + { + return new self(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php new file mode 100644 index 0000000..1f26f9b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php @@ -0,0 +1,46 @@ +setThreshold($threshold); + $this->setSleepTime($sleep); + $this->_sleeper = $sleeper; + } + + /** + * Set the number of emails to send before restarting. + * + * @param int $threshold + */ + public function setThreshold($threshold) + { + $this->_threshold = $threshold; + } + + /** + * Get the number of emails to send before restarting. + * + * @return int + */ + public function getThreshold() + { + return $this->_threshold; + } + + /** + * Set the number of seconds to sleep for during a restart. + * + * @param int $sleep time + */ + public function setSleepTime($sleep) + { + $this->_sleep = $sleep; + } + + /** + * Get the number of seconds to sleep for during a restart. + * + * @return int + */ + public function getSleepTime() + { + return $this->_sleep; + } + + /** + * Invoked immediately before the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + } + + /** + * Invoked immediately after the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + ++$this->_counter; + if ($this->_counter >= $this->_threshold) { + $transport = $evt->getTransport(); + $transport->stop(); + if ($this->_sleep) { + $this->sleep($this->_sleep); + } + $transport->start(); + $this->_counter = 0; + } + } + + /** + * Sleep for $seconds. + * + * @param int $seconds + */ + public function sleep($seconds) + { + if (isset($this->_sleeper)) { + $this->_sleeper->sleep($seconds); + } else { + sleep($seconds); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php new file mode 100644 index 0000000..f7e18d0 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php @@ -0,0 +1,164 @@ +getMessage(); + $message->toByteStream($this); + } + + /** + * Invoked immediately following a command being sent. + * + * @param Swift_Events_CommandEvent $evt + */ + public function commandSent(Swift_Events_CommandEvent $evt) + { + $command = $evt->getCommand(); + $this->_out += strlen($command); + } + + /** + * Invoked immediately following a response coming back. + * + * @param Swift_Events_ResponseEvent $evt + */ + public function responseReceived(Swift_Events_ResponseEvent $evt) + { + $response = $evt->getResponse(); + $this->_in += strlen($response); + } + + /** + * Called when a message is sent so that the outgoing counter can be increased. + * + * @param string $bytes + */ + public function write($bytes) + { + $this->_out += strlen($bytes); + foreach ($this->_mirrors as $stream) { + $stream->write($bytes); + } + } + + /** + * Not used. + */ + public function commit() + { + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + * + * @param Swift_InputByteStream $is + */ + public function bind(Swift_InputByteStream $is) + { + $this->_mirrors[] = $is; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + * + * @param Swift_InputByteStream $is + */ + public function unbind(Swift_InputByteStream $is) + { + foreach ($this->_mirrors as $k => $stream) { + if ($is === $stream) { + unset($this->_mirrors[$k]); + } + } + } + + /** + * Not used. + */ + public function flushBuffers() + { + foreach ($this->_mirrors as $stream) { + $stream->flushBuffers(); + } + } + + /** + * Get the total number of bytes sent to the server. + * + * @return int + */ + public function getBytesOut() + { + return $this->_out; + } + + /** + * Get the total number of bytes received from the server. + * + * @return int + */ + public function getBytesIn() + { + return $this->_in; + } + + /** + * Reset the internal counters to zero. + */ + public function reset() + { + $this->_out = 0; + $this->_in = 0; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php new file mode 100644 index 0000000..9f9f08b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php @@ -0,0 +1,31 @@ + + * $replacements = array( + * "address1@domain.tld" => array("{a}" => "b", "{c}" => "d"), + * "address2@domain.tld" => array("{a}" => "x", "{c}" => "y") + * ) + * + * + * When using an instance of {@link Swift_Plugins_Decorator_Replacements}, + * the object should return just the array of replacements for the address + * given to {@link Swift_Plugins_Decorator_Replacements::getReplacementsFor()}. + * + * @param mixed $replacements Array or Swift_Plugins_Decorator_Replacements + */ + public function __construct($replacements) + { + $this->setReplacements($replacements); + } + + /** + * Sets replacements. + * + * @param mixed $replacements Array or Swift_Plugins_Decorator_Replacements + * + * @see __construct() + */ + public function setReplacements($replacements) + { + if (!($replacements instanceof Swift_Plugins_Decorator_Replacements)) { + $this->_replacements = (array) $replacements; + } else { + $this->_replacements = $replacements; + } + } + + /** + * Invoked immediately before the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $this->_restoreMessage($message); + $to = array_keys($message->getTo()); + $address = array_shift($to); + if ($replacements = $this->getReplacementsFor($address)) { + $body = $message->getBody(); + $search = array_keys($replacements); + $replace = array_values($replacements); + $bodyReplaced = str_replace( + $search, $replace, $body + ); + if ($body != $bodyReplaced) { + $this->_originalBody = $body; + $message->setBody($bodyReplaced); + } + + foreach ($message->getHeaders()->getAll() as $header) { + $body = $header->getFieldBodyModel(); + $count = 0; + if (is_array($body)) { + $bodyReplaced = array(); + foreach ($body as $key => $value) { + $count1 = 0; + $count2 = 0; + $key = is_string($key) ? str_replace($search, $replace, $key, $count1) : $key; + $value = is_string($value) ? str_replace($search, $replace, $value, $count2) : $value; + $bodyReplaced[$key] = $value; + + if (!$count && ($count1 || $count2)) { + $count = 1; + } + } + } else { + $bodyReplaced = str_replace($search, $replace, $body, $count); + } + + if ($count) { + $this->_originalHeaders[$header->getFieldName()] = $body; + $header->setFieldBodyModel($bodyReplaced); + } + } + + $children = (array) $message->getChildren(); + foreach ($children as $child) { + list($type) = sscanf($child->getContentType(), '%[^/]/%s'); + if ('text' == $type) { + $body = $child->getBody(); + $bodyReplaced = str_replace( + $search, $replace, $body + ); + if ($body != $bodyReplaced) { + $child->setBody($bodyReplaced); + $this->_originalChildBodies[$child->getId()] = $body; + } + } + } + $this->_lastMessage = $message; + } + } + + /** + * Find a map of replacements for the address. + * + * If this plugin was provided with a delegate instance of + * {@link Swift_Plugins_Decorator_Replacements} then the call will be + * delegated to it. Otherwise, it will attempt to find the replacements + * from the array provided in the constructor. + * + * If no replacements can be found, an empty value (NULL) is returned. + * + * @param string $address + * + * @return array + */ + public function getReplacementsFor($address) + { + if ($this->_replacements instanceof Swift_Plugins_Decorator_Replacements) { + return $this->_replacements->getReplacementsFor($address); + } else { + return isset($this->_replacements[$address]) + ? $this->_replacements[$address] + : null + ; + } + } + + /** + * Invoked immediately after the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $this->_restoreMessage($evt->getMessage()); + } + + /** Restore a changed message back to its original state */ + private function _restoreMessage(Swift_Mime_Message $message) + { + if ($this->_lastMessage === $message) { + if (isset($this->_originalBody)) { + $message->setBody($this->_originalBody); + $this->_originalBody = null; + } + if (!empty($this->_originalHeaders)) { + foreach ($message->getHeaders()->getAll() as $header) { + if (array_key_exists($header->getFieldName(), $this->_originalHeaders)) { + $header->setFieldBodyModel($this->_originalHeaders[$header->getFieldName()]); + } + } + $this->_originalHeaders = array(); + } + if (!empty($this->_originalChildBodies)) { + $children = (array) $message->getChildren(); + foreach ($children as $child) { + $id = $child->getId(); + if (array_key_exists($id, $this->_originalChildBodies)) { + $child->setBody($this->_originalChildBodies[$id]); + } + } + $this->_originalChildBodies = array(); + } + $this->_lastMessage = null; + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php new file mode 100644 index 0000000..7552b67 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php @@ -0,0 +1,69 @@ +_sender = $sender; + } + + /** + * Invoked immediately before the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $headers = $message->getHeaders(); + + // save current recipients + $headers->addPathHeader('X-Swift-Return-Path', $message->getReturnPath()); + + // replace them with the one to send to + $message->setReturnPath($this->_sender); + } + + /** + * Invoked immediately after the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + + // restore original headers + $headers = $message->getHeaders(); + + if ($headers->has('X-Swift-Return-Path')) { + $message->setReturnPath($headers->get('X-Swift-Return-Path')->getAddress()); + $headers->removeAll('X-Swift-Return-Path'); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php new file mode 100644 index 0000000..d9bce89 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php @@ -0,0 +1,36 @@ +_logger = $logger; + } + + /** + * Add a log entry. + * + * @param string $entry + */ + public function add($entry) + { + $this->_logger->add($entry); + } + + /** + * Clear the log contents. + */ + public function clear() + { + $this->_logger->clear(); + } + + /** + * Get this log as a string. + * + * @return string + */ + public function dump() + { + return $this->_logger->dump(); + } + + /** + * Invoked immediately following a command being sent. + * + * @param Swift_Events_CommandEvent $evt + */ + public function commandSent(Swift_Events_CommandEvent $evt) + { + $command = $evt->getCommand(); + $this->_logger->add(sprintf('>> %s', $command)); + } + + /** + * Invoked immediately following a response coming back. + * + * @param Swift_Events_ResponseEvent $evt + */ + public function responseReceived(Swift_Events_ResponseEvent $evt) + { + $response = $evt->getResponse(); + $this->_logger->add(sprintf('<< %s', $response)); + } + + /** + * Invoked just before a Transport is started. + * + * @param Swift_Events_TransportChangeEvent $evt + */ + public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) + { + $transportName = get_class($evt->getSource()); + $this->_logger->add(sprintf('++ Starting %s', $transportName)); + } + + /** + * Invoked immediately after the Transport is started. + * + * @param Swift_Events_TransportChangeEvent $evt + */ + public function transportStarted(Swift_Events_TransportChangeEvent $evt) + { + $transportName = get_class($evt->getSource()); + $this->_logger->add(sprintf('++ %s started', $transportName)); + } + + /** + * Invoked just before a Transport is stopped. + * + * @param Swift_Events_TransportChangeEvent $evt + */ + public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) + { + $transportName = get_class($evt->getSource()); + $this->_logger->add(sprintf('++ Stopping %s', $transportName)); + } + + /** + * Invoked immediately after the Transport is stopped. + * + * @param Swift_Events_TransportChangeEvent $evt + */ + public function transportStopped(Swift_Events_TransportChangeEvent $evt) + { + $transportName = get_class($evt->getSource()); + $this->_logger->add(sprintf('++ %s stopped', $transportName)); + } + + /** + * Invoked as a TransportException is thrown in the Transport system. + * + * @param Swift_Events_TransportExceptionEvent $evt + */ + public function exceptionThrown(Swift_Events_TransportExceptionEvent $evt) + { + $e = $evt->getException(); + $message = $e->getMessage(); + $code = $e->getCode(); + $this->_logger->add(sprintf('!! %s (code: %s)', $message, $code)); + $message .= PHP_EOL; + $message .= 'Log data:'.PHP_EOL; + $message .= $this->_logger->dump(); + $evt->cancelBubble(); + throw new Swift_TransportException($message, $code, $e->getPrevious()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php new file mode 100644 index 0000000..865bb0a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php @@ -0,0 +1,72 @@ +_size = $size; + } + + /** + * Add a log entry. + * + * @param string $entry + */ + public function add($entry) + { + $this->_log[] = $entry; + while (count($this->_log) > $this->_size) { + array_shift($this->_log); + } + } + + /** + * Clear the log contents. + */ + public function clear() + { + $this->_log = array(); + } + + /** + * Get this log as a string. + * + * @return string + */ + public function dump() + { + return implode(PHP_EOL, $this->_log); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php new file mode 100644 index 0000000..3583297 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php @@ -0,0 +1,58 @@ +_isHtml = $isHtml; + } + + /** + * Add a log entry. + * + * @param string $entry + */ + public function add($entry) + { + if ($this->_isHtml) { + printf('%s%s%s', htmlspecialchars($entry, ENT_QUOTES), '
', PHP_EOL); + } else { + printf('%s%s', $entry, PHP_EOL); + } + } + + /** + * Not implemented. + */ + public function clear() + { + } + + /** + * Not implemented. + */ + public function dump() + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php new file mode 100644 index 0000000..e622cb3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php @@ -0,0 +1,74 @@ +messages = array(); + } + + /** + * Get the message list. + * + * @return array + */ + public function getMessages() + { + return $this->messages; + } + + /** + * Get the message count. + * + * @return int count + */ + public function countMessages() + { + return count($this->messages); + } + + /** + * Empty the message list. + */ + public function clear() + { + $this->messages = array(); + } + + /** + * Invoked immediately before the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $this->messages[] = clone $evt->getMessage(); + } + + /** + * Invoked immediately after the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php new file mode 100644 index 0000000..fb99e4c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php @@ -0,0 +1,31 @@ +_host = $host; + $this->_port = $port; + $this->_crypto = $crypto; + } + + /** + * Create a new PopBeforeSmtpPlugin for $host and $port. + * + * @param string $host + * @param int $port + * @param string $crypto as "tls" or "ssl" + * + * @return Swift_Plugins_PopBeforeSmtpPlugin + */ + public static function newInstance($host, $port = 110, $crypto = null) + { + return new self($host, $port, $crypto); + } + + /** + * Set a Pop3Connection to delegate to instead of connecting directly. + * + * @param Swift_Plugins_Pop_Pop3Connection $connection + * + * @return Swift_Plugins_PopBeforeSmtpPlugin + */ + public function setConnection(Swift_Plugins_Pop_Pop3Connection $connection) + { + $this->_connection = $connection; + + return $this; + } + + /** + * Bind this plugin to a specific SMTP transport instance. + * + * @param Swift_Transport + */ + public function bindSmtp(Swift_Transport $smtp) + { + $this->_transport = $smtp; + } + + /** + * Set the connection timeout in seconds (default 10). + * + * @param int $timeout + * + * @return Swift_Plugins_PopBeforeSmtpPlugin + */ + public function setTimeout($timeout) + { + $this->_timeout = (int) $timeout; + + return $this; + } + + /** + * Set the username to use when connecting (if needed). + * + * @param string $username + * + * @return Swift_Plugins_PopBeforeSmtpPlugin + */ + public function setUsername($username) + { + $this->_username = $username; + + return $this; + } + + /** + * Set the password to use when connecting (if needed). + * + * @param string $password + * + * @return Swift_Plugins_PopBeforeSmtpPlugin + */ + public function setPassword($password) + { + $this->_password = $password; + + return $this; + } + + /** + * Connect to the POP3 host and authenticate. + * + * @throws Swift_Plugins_Pop_Pop3Exception if connection fails + */ + public function connect() + { + if (isset($this->_connection)) { + $this->_connection->connect(); + } else { + if (!isset($this->_socket)) { + if (!$socket = fsockopen( + $this->_getHostString(), $this->_port, $errno, $errstr, $this->_timeout)) { + throw new Swift_Plugins_Pop_Pop3Exception( + sprintf('Failed to connect to POP3 host [%s]: %s', $this->_host, $errstr) + ); + } + $this->_socket = $socket; + + if (false === $greeting = fgets($this->_socket)) { + throw new Swift_Plugins_Pop_Pop3Exception( + sprintf('Failed to connect to POP3 host [%s]', trim($greeting)) + ); + } + + $this->_assertOk($greeting); + + if ($this->_username) { + $this->_command(sprintf("USER %s\r\n", $this->_username)); + $this->_command(sprintf("PASS %s\r\n", $this->_password)); + } + } + } + } + + /** + * Disconnect from the POP3 host. + */ + public function disconnect() + { + if (isset($this->_connection)) { + $this->_connection->disconnect(); + } else { + $this->_command("QUIT\r\n"); + if (!fclose($this->_socket)) { + throw new Swift_Plugins_Pop_Pop3Exception( + sprintf('POP3 host [%s] connection could not be stopped', $this->_host) + ); + } + $this->_socket = null; + } + } + + /** + * Invoked just before a Transport is started. + * + * @param Swift_Events_TransportChangeEvent $evt + */ + public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) + { + if (isset($this->_transport)) { + if ($this->_transport !== $evt->getTransport()) { + return; + } + } + + $this->connect(); + $this->disconnect(); + } + + /** + * Not used. + */ + public function transportStarted(Swift_Events_TransportChangeEvent $evt) + { + } + + /** + * Not used. + */ + public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) + { + } + + /** + * Not used. + */ + public function transportStopped(Swift_Events_TransportChangeEvent $evt) + { + } + + private function _command($command) + { + if (!fwrite($this->_socket, $command)) { + throw new Swift_Plugins_Pop_Pop3Exception( + sprintf('Failed to write command [%s] to POP3 host', trim($command)) + ); + } + + if (false === $response = fgets($this->_socket)) { + throw new Swift_Plugins_Pop_Pop3Exception( + sprintf('Failed to read from POP3 host after command [%s]', trim($command)) + ); + } + + $this->_assertOk($response); + + return $response; + } + + private function _assertOk($response) + { + if (substr($response, 0, 3) != '+OK') { + throw new Swift_Plugins_Pop_Pop3Exception( + sprintf('POP3 command failed [%s]', trim($response)) + ); + } + } + + private function _getHostString() + { + $host = $this->_host; + switch (strtolower($this->_crypto)) { + case 'ssl': + $host = 'ssl://'.$host; + break; + + case 'tls': + $host = 'tls://'.$host; + break; + } + + return $host; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php new file mode 100644 index 0000000..c3a1f86 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php @@ -0,0 +1,213 @@ +_recipient = $recipient; + $this->_whitelist = $whitelist; + } + + /** + * Set the recipient of all messages. + * + * @param mixed $recipient + */ + public function setRecipient($recipient) + { + $this->_recipient = $recipient; + } + + /** + * Get the recipient of all messages. + * + * @return mixed + */ + public function getRecipient() + { + return $this->_recipient; + } + + /** + * Set a list of regular expressions to whitelist certain recipients. + * + * @param array $whitelist + */ + public function setWhitelist(array $whitelist) + { + $this->_whitelist = $whitelist; + } + + /** + * Get the whitelist. + * + * @return array + */ + public function getWhitelist() + { + return $this->_whitelist; + } + + /** + * Invoked immediately before the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $headers = $message->getHeaders(); + + // conditionally save current recipients + + if ($headers->has('to')) { + $headers->addMailboxHeader('X-Swift-To', $message->getTo()); + } + + if ($headers->has('cc')) { + $headers->addMailboxHeader('X-Swift-Cc', $message->getCc()); + } + + if ($headers->has('bcc')) { + $headers->addMailboxHeader('X-Swift-Bcc', $message->getBcc()); + } + + // Filter remaining headers against whitelist + $this->_filterHeaderSet($headers, 'To'); + $this->_filterHeaderSet($headers, 'Cc'); + $this->_filterHeaderSet($headers, 'Bcc'); + + // Add each hard coded recipient + $to = $message->getTo(); + if (null === $to) { + $to = array(); + } + + foreach ((array) $this->_recipient as $recipient) { + if (!array_key_exists($recipient, $to)) { + $message->addTo($recipient); + } + } + } + + /** + * Filter header set against a whitelist of regular expressions. + * + * @param Swift_Mime_HeaderSet $headerSet + * @param string $type + */ + private function _filterHeaderSet(Swift_Mime_HeaderSet $headerSet, $type) + { + foreach ($headerSet->getAll($type) as $headers) { + $headers->setNameAddresses($this->_filterNameAddresses($headers->getNameAddresses())); + } + } + + /** + * Filtered list of addresses => name pairs. + * + * @param array $recipients + * + * @return array + */ + private function _filterNameAddresses(array $recipients) + { + $filtered = array(); + + foreach ($recipients as $address => $name) { + if ($this->_isWhitelisted($address)) { + $filtered[$address] = $name; + } + } + + return $filtered; + } + + /** + * Matches address against whitelist of regular expressions. + * + * @param $recipient + * + * @return bool + */ + protected function _isWhitelisted($recipient) + { + if (in_array($recipient, (array) $this->_recipient)) { + return true; + } + + foreach ($this->_whitelist as $pattern) { + if (preg_match($pattern, $recipient)) { + return true; + } + } + + return false; + } + + /** + * Invoked immediately after the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $this->_restoreMessage($evt->getMessage()); + } + + private function _restoreMessage(Swift_Mime_Message $message) + { + // restore original headers + $headers = $message->getHeaders(); + + if ($headers->has('X-Swift-To')) { + $message->setTo($headers->get('X-Swift-To')->getNameAddresses()); + $headers->removeAll('X-Swift-To'); + } else { + $message->setTo(null); + } + + if ($headers->has('X-Swift-Cc')) { + $message->setCc($headers->get('X-Swift-Cc')->getNameAddresses()); + $headers->removeAll('X-Swift-Cc'); + } + + if ($headers->has('X-Swift-Bcc')) { + $message->setBcc($headers->get('X-Swift-Bcc')->getNameAddresses()); + $headers->removeAll('X-Swift-Bcc'); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php new file mode 100644 index 0000000..0f21b7d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php @@ -0,0 +1,32 @@ +_reporter = $reporter; + } + + /** + * Not used. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + } + + /** + * Invoked immediately after the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $failures = array_flip($evt->getFailedRecipients()); + foreach ((array) $message->getTo() as $address => $null) { + $this->_reporter->notify( + $message, $address, (array_key_exists($address, $failures) + ? Swift_Plugins_Reporter::RESULT_FAIL + : Swift_Plugins_Reporter::RESULT_PASS) + ); + } + foreach ((array) $message->getCc() as $address => $null) { + $this->_reporter->notify( + $message, $address, (array_key_exists($address, $failures) + ? Swift_Plugins_Reporter::RESULT_FAIL + : Swift_Plugins_Reporter::RESULT_PASS) + ); + } + foreach ((array) $message->getBcc() as $address => $null) { + $this->_reporter->notify( + $message, $address, (array_key_exists($address, $failures) + ? Swift_Plugins_Reporter::RESULT_FAIL + : Swift_Plugins_Reporter::RESULT_PASS) + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php new file mode 100644 index 0000000..cad9d16 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php @@ -0,0 +1,59 @@ +_failures_cache[$address])) { + $this->_failures[] = $address; + $this->_failures_cache[$address] = true; + } + } + + /** + * Get an array of addresses for which delivery failed. + * + * @return array + */ + public function getFailedRecipients() + { + return $this->_failures; + } + + /** + * Clear the buffer (empty the list). + */ + public function clear() + { + $this->_failures = $this->_failures_cache = array(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php new file mode 100644 index 0000000..c625935 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php @@ -0,0 +1,39 @@ +'.PHP_EOL; + echo 'PASS '.$address.PHP_EOL; + echo ''.PHP_EOL; + flush(); + } else { + echo '
'.PHP_EOL; + echo 'FAIL '.$address.PHP_EOL; + echo '
'.PHP_EOL; + flush(); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php new file mode 100644 index 0000000..595c0f6 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php @@ -0,0 +1,24 @@ +_rate = $rate; + $this->_mode = $mode; + $this->_sleeper = $sleeper; + $this->_timer = $timer; + } + + /** + * Invoked immediately before the Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $time = $this->getTimestamp(); + if (!isset($this->_start)) { + $this->_start = $time; + } + $duration = $time - $this->_start; + + switch ($this->_mode) { + case self::BYTES_PER_MINUTE : + $sleep = $this->_throttleBytesPerMinute($duration); + break; + case self::MESSAGES_PER_SECOND : + $sleep = $this->_throttleMessagesPerSecond($duration); + break; + case self::MESSAGES_PER_MINUTE : + $sleep = $this->_throttleMessagesPerMinute($duration); + break; + default : + $sleep = 0; + break; + } + + if ($sleep > 0) { + $this->sleep($sleep); + } + } + + /** + * Invoked when a Message is sent. + * + * @param Swift_Events_SendEvent $evt + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + parent::sendPerformed($evt); + ++$this->_messages; + } + + /** + * Sleep for $seconds. + * + * @param int $seconds + */ + public function sleep($seconds) + { + if (isset($this->_sleeper)) { + $this->_sleeper->sleep($seconds); + } else { + sleep($seconds); + } + } + + /** + * Get the current UNIX timestamp. + * + * @return int + */ + public function getTimestamp() + { + if (isset($this->_timer)) { + return $this->_timer->getTimestamp(); + } else { + return time(); + } + } + + /** + * Get a number of seconds to sleep for. + * + * @param int $timePassed + * + * @return int + */ + private function _throttleBytesPerMinute($timePassed) + { + $expectedDuration = $this->getBytesOut() / ($this->_rate / 60); + + return (int) ceil($expectedDuration - $timePassed); + } + + /** + * Get a number of seconds to sleep for. + * + * @param int $timePassed + * + * @return int + */ + private function _throttleMessagesPerSecond($timePassed) + { + $expectedDuration = $this->_messages / ($this->_rate); + + return (int) ceil($expectedDuration - $timePassed); + } + + /** + * Get a number of seconds to sleep for. + * + * @param int $timePassed + * + * @return int + */ + private function _throttleMessagesPerMinute($timePassed) + { + $expectedDuration = $this->_messages / ($this->_rate / 60); + + return (int) ceil($expectedDuration - $timePassed); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php new file mode 100644 index 0000000..9c8deb3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php @@ -0,0 +1,24 @@ +register('properties.charset')->asValue($charset); + + return $this; + } + + /** + * Set the directory where temporary files can be saved. + * + * @param string $dir + * + * @return Swift_Preferences + */ + public function setTempDir($dir) + { + Swift_DependencyContainer::getInstance() + ->register('tempdir')->asValue($dir); + + return $this; + } + + /** + * Set the type of cache to use (i.e. "disk" or "array"). + * + * @param string $type + * + * @return Swift_Preferences + */ + public function setCacheType($type) + { + Swift_DependencyContainer::getInstance() + ->register('cache')->asAliasOf(sprintf('cache.%s', $type)); + + return $this; + } + + /** + * Set the QuotedPrintable dot escaper preference. + * + * @param bool $dotEscape + * + * @return Swift_Preferences + */ + public function setQPDotEscape($dotEscape) + { + $dotEscape = !empty($dotEscape); + Swift_DependencyContainer::getInstance() + ->register('mime.qpcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoder') + ->withDependencies(array('mime.charstream', 'mime.bytecanonicalizer')) + ->addConstructorValue($dotEscape); + + return $this; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php new file mode 100644 index 0000000..2897474 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php @@ -0,0 +1,27 @@ +createDependenciesFor('transport.sendmail') + ); + + $this->setCommand($command); + } + + /** + * Create a new SendmailTransport instance. + * + * @param string $command + * + * @return Swift_SendmailTransport + */ + public static function newInstance($command = '/usr/sbin/sendmail -bs') + { + return new self($command); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SignedMessage.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SignedMessage.php new file mode 100644 index 0000000..2e7a872 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SignedMessage.php @@ -0,0 +1,23 @@ + + * + * @deprecated + */ +class Swift_SignedMessage extends Swift_Message +{ +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php new file mode 100644 index 0000000..2d8176d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php @@ -0,0 +1,20 @@ + + */ +interface Swift_Signer +{ + public function reset(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php new file mode 100644 index 0000000..9ffcef3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php @@ -0,0 +1,33 @@ + + */ +interface Swift_Signers_BodySigner extends Swift_Signer +{ + /** + * Change the Swift_Signed_Message to apply the singing. + * + * @param Swift_Message $message + * + * @return Swift_Signers_BodySigner + */ + public function signMessage(Swift_Message $message); + + /** + * Return the list of header a signer might tamper. + * + * @return array + */ + public function getAlteredHeaders(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php new file mode 100644 index 0000000..514b61a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php @@ -0,0 +1,702 @@ + + */ +class Swift_Signers_DKIMSigner implements Swift_Signers_HeaderSigner +{ + /** + * PrivateKey. + * + * @var string + */ + protected $_privateKey; + + /** + * DomainName. + * + * @var string + */ + protected $_domainName; + + /** + * Selector. + * + * @var string + */ + protected $_selector; + + /** + * Hash algorithm used. + * + * @var string + */ + protected $_hashAlgorithm = 'rsa-sha1'; + + /** + * Body canon method. + * + * @var string + */ + protected $_bodyCanon = 'simple'; + + /** + * Header canon method. + * + * @var string + */ + protected $_headerCanon = 'simple'; + + /** + * Headers not being signed. + * + * @var array + */ + protected $_ignoredHeaders = array(); + + /** + * Signer identity. + * + * @var unknown_type + */ + protected $_signerIdentity; + + /** + * BodyLength. + * + * @var int + */ + protected $_bodyLen = 0; + + /** + * Maximum signedLen. + * + * @var int + */ + protected $_maxLen = PHP_INT_MAX; + + /** + * Embbed bodyLen in signature. + * + * @var bool + */ + protected $_showLen = false; + + /** + * When the signature has been applied (true means time()), false means not embedded. + * + * @var mixed + */ + protected $_signatureTimestamp = true; + + /** + * When will the signature expires false means not embedded, if sigTimestamp is auto + * Expiration is relative, otherwhise it's absolute. + * + * @var int + */ + protected $_signatureExpiration = false; + + /** + * Must we embed signed headers? + * + * @var bool + */ + protected $_debugHeaders = false; + + // work variables + /** + * Headers used to generate hash. + * + * @var array + */ + protected $_signedHeaders = array(); + + /** + * If debugHeaders is set store debugDatas here. + * + * @var string + */ + private $_debugHeadersData = ''; + + /** + * Stores the bodyHash. + * + * @var string + */ + private $_bodyHash = ''; + + /** + * Stores the signature header. + * + * @var Swift_Mime_Headers_ParameterizedHeader + */ + protected $_dkimHeader; + + /** + * Hash Handler. + * + * @var hash_ressource + */ + private $_headerHashHandler; + + private $_bodyHashHandler; + + private $_headerHash; + + private $_headerCanonData = ''; + + private $_bodyCanonEmptyCounter = 0; + + private $_bodyCanonIgnoreStart = 2; + + private $_bodyCanonSpace = false; + + private $_bodyCanonLastChar = null; + + private $_bodyCanonLine = ''; + + private $_bound = array(); + + /** + * Constructor. + * + * @param string $privateKey + * @param string $domainName + * @param string $selector + */ + public function __construct($privateKey, $domainName, $selector) + { + $this->_privateKey = $privateKey; + $this->_domainName = $domainName; + $this->_signerIdentity = '@'.$domainName; + $this->_selector = $selector; + } + + /** + * Instanciate DKIMSigner. + * + * @param string $privateKey + * @param string $domainName + * @param string $selector + * + * @return Swift_Signers_DKIMSigner + */ + public static function newInstance($privateKey, $domainName, $selector) + { + return new static($privateKey, $domainName, $selector); + } + + /** + * Reset the Signer. + * + * @see Swift_Signer::reset() + */ + public function reset() + { + $this->_headerHash = null; + $this->_signedHeaders = array(); + $this->_headerHashHandler = null; + $this->_bodyHash = null; + $this->_bodyHashHandler = null; + $this->_bodyCanonIgnoreStart = 2; + $this->_bodyCanonEmptyCounter = 0; + $this->_bodyCanonLastChar = null; + $this->_bodyCanonSpace = false; + } + + /** + * Writes $bytes to the end of the stream. + * + * Writing may not happen immediately if the stream chooses to buffer. If + * you want to write these bytes with immediate effect, call {@link commit()} + * after calling write(). + * + * This method returns the sequence ID of the write (i.e. 1 for first, 2 for + * second, etc etc). + * + * @param string $bytes + * + * @throws Swift_IoException + * + * @return int + */ + public function write($bytes) + { + $this->_canonicalizeBody($bytes); + foreach ($this->_bound as $is) { + $is->write($bytes); + } + } + + /** + * For any bytes that are currently buffered inside the stream, force them + * off the buffer. + * + * @throws Swift_IoException + */ + public function commit() + { + // Nothing to do + return; + } + + /** + * Attach $is to this stream. + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + * + * @param Swift_InputByteStream $is + */ + public function bind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + $this->_bound[] = $is; + + return; + } + + /** + * Remove an already bound stream. + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + * + * @param Swift_InputByteStream $is + */ + public function unbind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + foreach ($this->_bound as $k => $stream) { + if ($stream === $is) { + unset($this->_bound[$k]); + + return; + } + } + + return; + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + * + * @throws Swift_IoException + */ + public function flushBuffers() + { + $this->reset(); + } + + /** + * Set hash_algorithm, must be one of rsa-sha256 | rsa-sha1 defaults to rsa-sha256. + * + * @param string $hash + * + * @return Swift_Signers_DKIMSigner + */ + public function setHashAlgorithm($hash) + { + // Unable to sign with rsa-sha256 + if ($hash == 'rsa-sha1') { + $this->_hashAlgorithm = 'rsa-sha1'; + } else { + $this->_hashAlgorithm = 'rsa-sha256'; + } + + return $this; + } + + /** + * Set the body canonicalization algorithm. + * + * @param string $canon + * + * @return Swift_Signers_DKIMSigner + */ + public function setBodyCanon($canon) + { + if ($canon == 'relaxed') { + $this->_bodyCanon = 'relaxed'; + } else { + $this->_bodyCanon = 'simple'; + } + + return $this; + } + + /** + * Set the header canonicalization algorithm. + * + * @param string $canon + * + * @return Swift_Signers_DKIMSigner + */ + public function setHeaderCanon($canon) + { + if ($canon == 'relaxed') { + $this->_headerCanon = 'relaxed'; + } else { + $this->_headerCanon = 'simple'; + } + + return $this; + } + + /** + * Set the signer identity. + * + * @param string $identity + * + * @return Swift_Signers_DKIMSigner + */ + public function setSignerIdentity($identity) + { + $this->_signerIdentity = $identity; + + return $this; + } + + /** + * Set the length of the body to sign. + * + * @param mixed $len (bool or int) + * + * @return Swift_Signers_DKIMSigner + */ + public function setBodySignedLen($len) + { + if ($len === true) { + $this->_showLen = true; + $this->_maxLen = PHP_INT_MAX; + } elseif ($len === false) { + $this->showLen = false; + $this->_maxLen = PHP_INT_MAX; + } else { + $this->_showLen = true; + $this->_maxLen = (int) $len; + } + + return $this; + } + + /** + * Set the signature timestamp. + * + * @param timestamp $time + * + * @return Swift_Signers_DKIMSigner + */ + public function setSignatureTimestamp($time) + { + $this->_signatureTimestamp = $time; + + return $this; + } + + /** + * Set the signature expiration timestamp. + * + * @param timestamp $time + * + * @return Swift_Signers_DKIMSigner + */ + public function setSignatureExpiration($time) + { + $this->_signatureExpiration = $time; + + return $this; + } + + /** + * Enable / disable the DebugHeaders. + * + * @param bool $debug + * + * @return Swift_Signers_DKIMSigner + */ + public function setDebugHeaders($debug) + { + $this->_debugHeaders = (bool) $debug; + + return $this; + } + + /** + * Start Body. + */ + public function startBody() + { + // Init + switch ($this->_hashAlgorithm) { + case 'rsa-sha256' : + $this->_bodyHashHandler = hash_init('sha256'); + break; + case 'rsa-sha1' : + $this->_bodyHashHandler = hash_init('sha1'); + break; + } + $this->_bodyCanonLine = ''; + } + + /** + * End Body. + */ + public function endBody() + { + $this->_endOfBody(); + } + + /** + * Returns the list of Headers Tampered by this plugin. + * + * @return array + */ + public function getAlteredHeaders() + { + if ($this->_debugHeaders) { + return array('DKIM-Signature', 'X-DebugHash'); + } else { + return array('DKIM-Signature'); + } + } + + /** + * Adds an ignored Header. + * + * @param string $header_name + * + * @return Swift_Signers_DKIMSigner + */ + public function ignoreHeader($header_name) + { + $this->_ignoredHeaders[strtolower($header_name)] = true; + + return $this; + } + + /** + * Set the headers to sign. + * + * @param Swift_Mime_HeaderSet $headers + * + * @return Swift_Signers_DKIMSigner + */ + public function setHeaders(Swift_Mime_HeaderSet $headers) + { + $this->_headerCanonData = ''; + // Loop through Headers + $listHeaders = $headers->listAll(); + foreach ($listHeaders as $hName) { + // Check if we need to ignore Header + if (!isset($this->_ignoredHeaders[strtolower($hName)])) { + if ($headers->has($hName)) { + $tmp = $headers->getAll($hName); + foreach ($tmp as $header) { + if ($header->getFieldBody() != '') { + $this->_addHeader($header->toString()); + $this->_signedHeaders[] = $header->getFieldName(); + } + } + } + } + } + + return $this; + } + + /** + * Add the signature to the given Headers. + * + * @param Swift_Mime_HeaderSet $headers + * + * @return Swift_Signers_DKIMSigner + */ + public function addSignature(Swift_Mime_HeaderSet $headers) + { + // Prepare the DKIM-Signature + $params = array('v' => '1', 'a' => $this->_hashAlgorithm, 'bh' => base64_encode($this->_bodyHash), 'd' => $this->_domainName, 'h' => implode(': ', $this->_signedHeaders), 'i' => $this->_signerIdentity, 's' => $this->_selector); + if ($this->_bodyCanon != 'simple') { + $params['c'] = $this->_headerCanon.'/'.$this->_bodyCanon; + } elseif ($this->_headerCanon != 'simple') { + $params['c'] = $this->_headerCanon; + } + if ($this->_showLen) { + $params['l'] = $this->_bodyLen; + } + if ($this->_signatureTimestamp === true) { + $params['t'] = time(); + if ($this->_signatureExpiration !== false) { + $params['x'] = $params['t'] + $this->_signatureExpiration; + } + } else { + if ($this->_signatureTimestamp !== false) { + $params['t'] = $this->_signatureTimestamp; + } + if ($this->_signatureExpiration !== false) { + $params['x'] = $this->_signatureExpiration; + } + } + if ($this->_debugHeaders) { + $params['z'] = implode('|', $this->_debugHeadersData); + } + $string = ''; + foreach ($params as $k => $v) { + $string .= $k.'='.$v.'; '; + } + $string = trim($string); + $headers->addTextHeader('DKIM-Signature', $string); + // Add the last DKIM-Signature + $tmp = $headers->getAll('DKIM-Signature'); + $this->_dkimHeader = end($tmp); + $this->_addHeader(trim($this->_dkimHeader->toString())."\r\n b=", true); + $this->_endOfHeaders(); + if ($this->_debugHeaders) { + $headers->addTextHeader('X-DebugHash', base64_encode($this->_headerHash)); + } + $this->_dkimHeader->setValue($string.' b='.trim(chunk_split(base64_encode($this->_getEncryptedHash()), 73, ' '))); + + return $this; + } + + /* Private helpers */ + + protected function _addHeader($header, $is_sig = false) + { + switch ($this->_headerCanon) { + case 'relaxed' : + // Prepare Header and cascade + $exploded = explode(':', $header, 2); + $name = strtolower(trim($exploded[0])); + $value = str_replace("\r\n", '', $exploded[1]); + $value = preg_replace("/[ \t][ \t]+/", ' ', $value); + $header = $name.':'.trim($value).($is_sig ? '' : "\r\n"); + case 'simple' : + // Nothing to do + } + $this->_addToHeaderHash($header); + } + + protected function _endOfHeaders() + { + //$this->_headerHash=hash_final($this->_headerHashHandler, true); + } + + protected function _canonicalizeBody($string) + { + $len = strlen($string); + $canon = ''; + $method = ($this->_bodyCanon == 'relaxed'); + for ($i = 0; $i < $len; ++$i) { + if ($this->_bodyCanonIgnoreStart > 0) { + --$this->_bodyCanonIgnoreStart; + continue; + } + switch ($string[$i]) { + case "\r" : + $this->_bodyCanonLastChar = "\r"; + break; + case "\n" : + if ($this->_bodyCanonLastChar == "\r") { + if ($method) { + $this->_bodyCanonSpace = false; + } + if ($this->_bodyCanonLine == '') { + ++$this->_bodyCanonEmptyCounter; + } else { + $this->_bodyCanonLine = ''; + $canon .= "\r\n"; + } + } else { + // Wooops Error + // todo handle it but should never happen + } + break; + case ' ' : + case "\t" : + if ($method) { + $this->_bodyCanonSpace = true; + break; + } + default : + if ($this->_bodyCanonEmptyCounter > 0) { + $canon .= str_repeat("\r\n", $this->_bodyCanonEmptyCounter); + $this->_bodyCanonEmptyCounter = 0; + } + if ($this->_bodyCanonSpace) { + $this->_bodyCanonLine .= ' '; + $canon .= ' '; + $this->_bodyCanonSpace = false; + } + $this->_bodyCanonLine .= $string[$i]; + $canon .= $string[$i]; + } + } + $this->_addToBodyHash($canon); + } + + protected function _endOfBody() + { + // Add trailing Line return if last line is non empty + if (strlen($this->_bodyCanonLine) > 0) { + $this->_addToBodyHash("\r\n"); + } + $this->_bodyHash = hash_final($this->_bodyHashHandler, true); + } + + private function _addToBodyHash($string) + { + $len = strlen($string); + if ($len > ($new_len = ($this->_maxLen - $this->_bodyLen))) { + $string = substr($string, 0, $new_len); + $len = $new_len; + } + hash_update($this->_bodyHashHandler, $string); + $this->_bodyLen += $len; + } + + private function _addToHeaderHash($header) + { + if ($this->_debugHeaders) { + $this->_debugHeadersData[] = trim($header); + } + $this->_headerCanonData .= $header; + } + + /** + * @throws Swift_SwiftException + * + * @return string + */ + private function _getEncryptedHash() + { + $signature = ''; + switch ($this->_hashAlgorithm) { + case 'rsa-sha1': + $algorithm = OPENSSL_ALGO_SHA1; + break; + case 'rsa-sha256': + $algorithm = OPENSSL_ALGO_SHA256; + break; + } + $pkeyId = openssl_get_privatekey($this->_privateKey); + if (!$pkeyId) { + throw new Swift_SwiftException('Unable to load DKIM Private Key ['.openssl_error_string().']'); + } + if (openssl_sign($this->_headerCanonData, $signature, $pkeyId, $algorithm)) { + return $signature; + } + throw new Swift_SwiftException('Unable to sign DKIM Hash ['.openssl_error_string().']'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php new file mode 100644 index 0000000..bceda3d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php @@ -0,0 +1,525 @@ + + */ +class Swift_Signers_DomainKeySigner implements Swift_Signers_HeaderSigner +{ + /** + * PrivateKey. + * + * @var string + */ + protected $_privateKey; + + /** + * DomainName. + * + * @var string + */ + protected $_domainName; + + /** + * Selector. + * + * @var string + */ + protected $_selector; + + /** + * Hash algorithm used. + * + * @var string + */ + protected $_hashAlgorithm = 'rsa-sha1'; + + /** + * Canonisation method. + * + * @var string + */ + protected $_canon = 'simple'; + + /** + * Headers not being signed. + * + * @var array + */ + protected $_ignoredHeaders = array(); + + /** + * Signer identity. + * + * @var string + */ + protected $_signerIdentity; + + /** + * Must we embed signed headers? + * + * @var bool + */ + protected $_debugHeaders = false; + + // work variables + /** + * Headers used to generate hash. + * + * @var array + */ + private $_signedHeaders = array(); + + /** + * Stores the signature header. + * + * @var Swift_Mime_Headers_ParameterizedHeader + */ + protected $_domainKeyHeader; + + /** + * Hash Handler. + * + * @var resource|null + */ + private $_hashHandler; + + private $_hash; + + private $_canonData = ''; + + private $_bodyCanonEmptyCounter = 0; + + private $_bodyCanonIgnoreStart = 2; + + private $_bodyCanonSpace = false; + + private $_bodyCanonLastChar = null; + + private $_bodyCanonLine = ''; + + private $_bound = array(); + + /** + * Constructor. + * + * @param string $privateKey + * @param string $domainName + * @param string $selector + */ + public function __construct($privateKey, $domainName, $selector) + { + $this->_privateKey = $privateKey; + $this->_domainName = $domainName; + $this->_signerIdentity = '@'.$domainName; + $this->_selector = $selector; + } + + /** + * Instanciate DomainKeySigner. + * + * @param string $privateKey + * @param string $domainName + * @param string $selector + * + * @return Swift_Signers_DomainKeySigner + */ + public static function newInstance($privateKey, $domainName, $selector) + { + return new static($privateKey, $domainName, $selector); + } + + /** + * Resets internal states. + * + * @return Swift_Signers_DomainKeysSigner + */ + public function reset() + { + $this->_hash = null; + $this->_hashHandler = null; + $this->_bodyCanonIgnoreStart = 2; + $this->_bodyCanonEmptyCounter = 0; + $this->_bodyCanonLastChar = null; + $this->_bodyCanonSpace = false; + + return $this; + } + + /** + * Writes $bytes to the end of the stream. + * + * Writing may not happen immediately if the stream chooses to buffer. If + * you want to write these bytes with immediate effect, call {@link commit()} + * after calling write(). + * + * This method returns the sequence ID of the write (i.e. 1 for first, 2 for + * second, etc etc). + * + * @param string $bytes + * + * @throws Swift_IoException + * + * @return int + * @return Swift_Signers_DomainKeysSigner + */ + public function write($bytes) + { + $this->_canonicalizeBody($bytes); + foreach ($this->_bound as $is) { + $is->write($bytes); + } + + return $this; + } + + /** + * For any bytes that are currently buffered inside the stream, force them + * off the buffer. + * + * @throws Swift_IoException + * + * @return Swift_Signers_DomainKeysSigner + */ + public function commit() + { + // Nothing to do + return $this; + } + + /** + * Attach $is to this stream. + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + * + * @param Swift_InputByteStream $is + * + * @return Swift_Signers_DomainKeysSigner + */ + public function bind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + $this->_bound[] = $is; + + return $this; + } + + /** + * Remove an already bound stream. + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + * + * @param Swift_InputByteStream $is + * + * @return Swift_Signers_DomainKeysSigner + */ + public function unbind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + foreach ($this->_bound as $k => $stream) { + if ($stream === $is) { + unset($this->_bound[$k]); + + return; + } + } + + return $this; + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + * + * @throws Swift_IoException + * + * @return Swift_Signers_DomainKeysSigner + */ + public function flushBuffers() + { + $this->reset(); + + return $this; + } + + /** + * Set hash_algorithm, must be one of rsa-sha256 | rsa-sha1 defaults to rsa-sha256. + * + * @param string $hash + * + * @return Swift_Signers_DomainKeysSigner + */ + public function setHashAlgorithm($hash) + { + $this->_hashAlgorithm = 'rsa-sha1'; + + return $this; + } + + /** + * Set the canonicalization algorithm. + * + * @param string $canon simple | nofws defaults to simple + * + * @return Swift_Signers_DomainKeysSigner + */ + public function setCanon($canon) + { + if ($canon == 'nofws') { + $this->_canon = 'nofws'; + } else { + $this->_canon = 'simple'; + } + + return $this; + } + + /** + * Set the signer identity. + * + * @param string $identity + * + * @return Swift_Signers_DomainKeySigner + */ + public function setSignerIdentity($identity) + { + $this->_signerIdentity = $identity; + + return $this; + } + + /** + * Enable / disable the DebugHeaders. + * + * @param bool $debug + * + * @return Swift_Signers_DomainKeySigner + */ + public function setDebugHeaders($debug) + { + $this->_debugHeaders = (bool) $debug; + + return $this; + } + + /** + * Start Body. + */ + public function startBody() + { + } + + /** + * End Body. + */ + public function endBody() + { + $this->_endOfBody(); + } + + /** + * Returns the list of Headers Tampered by this plugin. + * + * @return array + */ + public function getAlteredHeaders() + { + if ($this->_debugHeaders) { + return array('DomainKey-Signature', 'X-DebugHash'); + } else { + return array('DomainKey-Signature'); + } + } + + /** + * Adds an ignored Header. + * + * @param string $header_name + * + * @return Swift_Signers_DomainKeySigner + */ + public function ignoreHeader($header_name) + { + $this->_ignoredHeaders[strtolower($header_name)] = true; + + return $this; + } + + /** + * Set the headers to sign. + * + * @param Swift_Mime_HeaderSet $headers + * + * @return Swift_Signers_DomainKeySigner + */ + public function setHeaders(Swift_Mime_HeaderSet $headers) + { + $this->_startHash(); + $this->_canonData = ''; + // Loop through Headers + $listHeaders = $headers->listAll(); + foreach ($listHeaders as $hName) { + // Check if we need to ignore Header + if (!isset($this->_ignoredHeaders[strtolower($hName)])) { + if ($headers->has($hName)) { + $tmp = $headers->getAll($hName); + foreach ($tmp as $header) { + if ($header->getFieldBody() != '') { + $this->_addHeader($header->toString()); + $this->_signedHeaders[] = $header->getFieldName(); + } + } + } + } + } + $this->_endOfHeaders(); + + return $this; + } + + /** + * Add the signature to the given Headers. + * + * @param Swift_Mime_HeaderSet $headers + * + * @return Swift_Signers_DomainKeySigner + */ + public function addSignature(Swift_Mime_HeaderSet $headers) + { + // Prepare the DomainKey-Signature Header + $params = array('a' => $this->_hashAlgorithm, 'b' => chunk_split(base64_encode($this->_getEncryptedHash()), 73, ' '), 'c' => $this->_canon, 'd' => $this->_domainName, 'h' => implode(': ', $this->_signedHeaders), 'q' => 'dns', 's' => $this->_selector); + $string = ''; + foreach ($params as $k => $v) { + $string .= $k.'='.$v.'; '; + } + $string = trim($string); + $headers->addTextHeader('DomainKey-Signature', $string); + + return $this; + } + + /* Private helpers */ + + protected function _addHeader($header) + { + switch ($this->_canon) { + case 'nofws' : + // Prepare Header and cascade + $exploded = explode(':', $header, 2); + $name = strtolower(trim($exploded[0])); + $value = str_replace("\r\n", '', $exploded[1]); + $value = preg_replace("/[ \t][ \t]+/", ' ', $value); + $header = $name.':'.trim($value)."\r\n"; + case 'simple' : + // Nothing to do + } + $this->_addToHash($header); + } + + protected function _endOfHeaders() + { + $this->_bodyCanonEmptyCounter = 1; + } + + protected function _canonicalizeBody($string) + { + $len = strlen($string); + $canon = ''; + $nofws = ($this->_canon == 'nofws'); + for ($i = 0; $i < $len; ++$i) { + if ($this->_bodyCanonIgnoreStart > 0) { + --$this->_bodyCanonIgnoreStart; + continue; + } + switch ($string[$i]) { + case "\r" : + $this->_bodyCanonLastChar = "\r"; + break; + case "\n" : + if ($this->_bodyCanonLastChar == "\r") { + if ($nofws) { + $this->_bodyCanonSpace = false; + } + if ($this->_bodyCanonLine == '') { + ++$this->_bodyCanonEmptyCounter; + } else { + $this->_bodyCanonLine = ''; + $canon .= "\r\n"; + } + } else { + // Wooops Error + throw new Swift_SwiftException('Invalid new line sequence in mail found \n without preceding \r'); + } + break; + case ' ' : + case "\t" : + case "\x09": //HTAB + if ($nofws) { + $this->_bodyCanonSpace = true; + break; + } + default : + if ($this->_bodyCanonEmptyCounter > 0) { + $canon .= str_repeat("\r\n", $this->_bodyCanonEmptyCounter); + $this->_bodyCanonEmptyCounter = 0; + } + $this->_bodyCanonLine .= $string[$i]; + $canon .= $string[$i]; + } + } + $this->_addToHash($canon); + } + + protected function _endOfBody() + { + if (strlen($this->_bodyCanonLine) > 0) { + $this->_addToHash("\r\n"); + } + $this->_hash = hash_final($this->_hashHandler, true); + } + + private function _addToHash($string) + { + $this->_canonData .= $string; + hash_update($this->_hashHandler, $string); + } + + private function _startHash() + { + // Init + switch ($this->_hashAlgorithm) { + case 'rsa-sha1' : + $this->_hashHandler = hash_init('sha1'); + break; + } + $this->_canonLine = ''; + } + + /** + * @throws Swift_SwiftException + * + * @return string + */ + private function _getEncryptedHash() + { + $signature = ''; + $pkeyId = openssl_get_privatekey($this->_privateKey); + if (!$pkeyId) { + throw new Swift_SwiftException('Unable to load DomainKey Private Key ['.openssl_error_string().']'); + } + if (openssl_sign($this->_canonData, $signature, $pkeyId, OPENSSL_ALGO_SHA1)) { + return $signature; + } + throw new Swift_SwiftException('Unable to sign DomainKey Hash ['.openssl_error_string().']'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php new file mode 100644 index 0000000..c75cb08 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php @@ -0,0 +1,65 @@ + + */ +interface Swift_Signers_HeaderSigner extends Swift_Signer, Swift_InputByteStream +{ + /** + * Exclude an header from the signed headers. + * + * @param string $header_name + * + * @return Swift_Signers_HeaderSigner + */ + public function ignoreHeader($header_name); + + /** + * Prepare the Signer to get a new Body. + * + * @return Swift_Signers_HeaderSigner + */ + public function startBody(); + + /** + * Give the signal that the body has finished streaming. + * + * @return Swift_Signers_HeaderSigner + */ + public function endBody(); + + /** + * Give the headers already given. + * + * @param Swift_Mime_SimpleHeaderSet $headers + * + * @return Swift_Signers_HeaderSigner + */ + public function setHeaders(Swift_Mime_HeaderSet $headers); + + /** + * Add the header(s) to the headerSet. + * + * @param Swift_Mime_HeaderSet $headers + * + * @return Swift_Signers_HeaderSigner + */ + public function addSignature(Swift_Mime_HeaderSet $headers); + + /** + * Return the list of header a signer might tamper. + * + * @return array + */ + public function getAlteredHeaders(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php new file mode 100644 index 0000000..9f1022c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php @@ -0,0 +1,189 @@ + + */ +class Swift_Signers_OpenDKIMSigner extends Swift_Signers_DKIMSigner +{ + private $_peclLoaded = false; + + private $_dkimHandler = null; + + private $dropFirstLF = true; + + const CANON_RELAXED = 1; + const CANON_SIMPLE = 2; + const SIG_RSA_SHA1 = 3; + const SIG_RSA_SHA256 = 4; + + public function __construct($privateKey, $domainName, $selector) + { + if (extension_loaded('opendkim')) { + $this->_peclLoaded = true; + } else { + throw new Swift_SwiftException('php-opendkim extension not found'); + } + parent::__construct($privateKey, $domainName, $selector); + } + + public static function newInstance($privateKey, $domainName, $selector) + { + return new static($privateKey, $domainName, $selector); + } + + public function addSignature(Swift_Mime_HeaderSet $headers) + { + $header = new Swift_Mime_Headers_OpenDKIMHeader('DKIM-Signature'); + $headerVal = $this->_dkimHandler->getSignatureHeader(); + if (!$headerVal) { + throw new Swift_SwiftException('OpenDKIM Error: '.$this->_dkimHandler->getError()); + } + $header->setValue($headerVal); + $headers->set($header); + + return $this; + } + + public function setHeaders(Swift_Mime_HeaderSet $headers) + { + $bodyLen = $this->_bodyLen; + if (is_bool($bodyLen)) { + $bodyLen = -1; + } + $hash = ($this->_hashAlgorithm == 'rsa-sha1') ? OpenDKIMSign::ALG_RSASHA1 : OpenDKIMSign::ALG_RSASHA256; + $bodyCanon = ($this->_bodyCanon == 'simple') ? OpenDKIMSign::CANON_SIMPLE : OpenDKIMSign::CANON_RELAXED; + $headerCanon = ($this->_headerCanon == 'simple') ? OpenDKIMSign::CANON_SIMPLE : OpenDKIMSign::CANON_RELAXED; + $this->_dkimHandler = new OpenDKIMSign($this->_privateKey, $this->_selector, $this->_domainName, $headerCanon, $bodyCanon, $hash, $bodyLen); + // Hardcode signature Margin for now + $this->_dkimHandler->setMargin(78); + + if (!is_numeric($this->_signatureTimestamp)) { + OpenDKIM::setOption(OpenDKIM::OPTS_FIXEDTIME, time()); + } else { + if (!OpenDKIM::setOption(OpenDKIM::OPTS_FIXEDTIME, $this->_signatureTimestamp)) { + throw new Swift_SwiftException('Unable to force signature timestamp ['.openssl_error_string().']'); + } + } + if (isset($this->_signerIdentity)) { + $this->_dkimHandler->setSigner($this->_signerIdentity); + } + $listHeaders = $headers->listAll(); + foreach ($listHeaders as $hName) { + // Check if we need to ignore Header + if (!isset($this->_ignoredHeaders[strtolower($hName)])) { + $tmp = $headers->getAll($hName); + if ($headers->has($hName)) { + foreach ($tmp as $header) { + if ($header->getFieldBody() != '') { + $htosign = $header->toString(); + $this->_dkimHandler->header($htosign); + $this->_signedHeaders[] = $header->getFieldName(); + } + } + } + } + } + + return $this; + } + + public function startBody() + { + if (!$this->_peclLoaded) { + return parent::startBody(); + } + $this->dropFirstLF = true; + $this->_dkimHandler->eoh(); + + return $this; + } + + public function endBody() + { + if (!$this->_peclLoaded) { + return parent::endBody(); + } + $this->_dkimHandler->eom(); + + return $this; + } + + public function reset() + { + $this->_dkimHandler = null; + parent::reset(); + + return $this; + } + + /** + * Set the signature timestamp. + * + * @param timestamp $time + * + * @return Swift_Signers_DKIMSigner + */ + public function setSignatureTimestamp($time) + { + $this->_signatureTimestamp = $time; + + return $this; + } + + /** + * Set the signature expiration timestamp. + * + * @param timestamp $time + * + * @return Swift_Signers_DKIMSigner + */ + public function setSignatureExpiration($time) + { + $this->_signatureExpiration = $time; + + return $this; + } + + /** + * Enable / disable the DebugHeaders. + * + * @param bool $debug + * + * @return Swift_Signers_DKIMSigner + */ + public function setDebugHeaders($debug) + { + $this->_debugHeaders = (bool) $debug; + + return $this; + } + + // Protected + + protected function _canonicalizeBody($string) + { + if (!$this->_peclLoaded) { + return parent::_canonicalizeBody($string); + } + if (false && $this->dropFirstLF === true) { + if ($string[0] == "\r" && $string[1] == "\n") { + $string = substr($string, 2); + } + } + $this->dropFirstLF = false; + if (strlen($string)) { + $this->_dkimHandler->body($string); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php new file mode 100644 index 0000000..d4c77e7 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php @@ -0,0 +1,437 @@ + + */ +class Swift_Signers_SMimeSigner implements Swift_Signers_BodySigner +{ + protected $signCertificate; + protected $signPrivateKey; + protected $encryptCert; + protected $signThenEncrypt = true; + protected $signLevel; + protected $encryptLevel; + protected $signOptions; + protected $encryptOptions; + protected $encryptCipher; + protected $extraCerts = null; + + /** + * @var Swift_StreamFilters_StringReplacementFilterFactory + */ + protected $replacementFactory; + + /** + * @var Swift_Mime_HeaderFactory + */ + protected $headerFactory; + + /** + * Constructor. + * + * @param string $certificate + * @param string $privateKey + * @param string $encryptCertificate + */ + public function __construct($signCertificate = null, $signPrivateKey = null, $encryptCertificate = null) + { + if (null !== $signPrivateKey) { + $this->setSignCertificate($signCertificate, $signPrivateKey); + } + + if (null !== $encryptCertificate) { + $this->setEncryptCertificate($encryptCertificate); + } + + $this->replacementFactory = Swift_DependencyContainer::getInstance() + ->lookup('transport.replacementfactory'); + + $this->signOptions = PKCS7_DETACHED; + + // Supported since php5.4 + if (defined('OPENSSL_CIPHER_AES_128_CBC')) { + $this->encryptCipher = OPENSSL_CIPHER_AES_128_CBC; + } else { + $this->encryptCipher = OPENSSL_CIPHER_RC2_128; + } + } + + /** + * Returns an new Swift_Signers_SMimeSigner instance. + * + * @param string $certificate + * @param string $privateKey + * + * @return Swift_Signers_SMimeSigner + */ + public static function newInstance($certificate = null, $privateKey = null) + { + return new self($certificate, $privateKey); + } + + /** + * Set the certificate location to use for signing. + * + * @link http://www.php.net/manual/en/openssl.pkcs7.flags.php + * + * @param string $certificate + * @param string|array $privateKey If the key needs an passphrase use array('file-location', 'passphrase') instead + * @param int $signOptions Bitwise operator options for openssl_pkcs7_sign() + * @param string $extraCerts A file containing intermediate certificates needed by the signing certificate + * + * @return Swift_Signers_SMimeSigner + */ + public function setSignCertificate($certificate, $privateKey = null, $signOptions = PKCS7_DETACHED, $extraCerts = null) + { + $this->signCertificate = 'file://'.str_replace('\\', '/', realpath($certificate)); + + if (null !== $privateKey) { + if (is_array($privateKey)) { + $this->signPrivateKey = $privateKey; + $this->signPrivateKey[0] = 'file://'.str_replace('\\', '/', realpath($privateKey[0])); + } else { + $this->signPrivateKey = 'file://'.str_replace('\\', '/', realpath($privateKey)); + } + } + + $this->signOptions = $signOptions; + if (null !== $extraCerts) { + $this->extraCerts = str_replace('\\', '/', realpath($extraCerts)); + } + + return $this; + } + + /** + * Set the certificate location to use for encryption. + * + * @link http://www.php.net/manual/en/openssl.pkcs7.flags.php + * @link http://nl3.php.net/manual/en/openssl.ciphers.php + * + * @param string|array $recipientCerts Either an single X.509 certificate, or an assoc array of X.509 certificates. + * @param int $cipher + * + * @return Swift_Signers_SMimeSigner + */ + public function setEncryptCertificate($recipientCerts, $cipher = null) + { + if (is_array($recipientCerts)) { + $this->encryptCert = array(); + + foreach ($recipientCerts as $cert) { + $this->encryptCert[] = 'file://'.str_replace('\\', '/', realpath($cert)); + } + } else { + $this->encryptCert = 'file://'.str_replace('\\', '/', realpath($recipientCerts)); + } + + if (null !== $cipher) { + $this->encryptCipher = $cipher; + } + + return $this; + } + + /** + * @return string + */ + public function getSignCertificate() + { + return $this->signCertificate; + } + + /** + * @return string + */ + public function getSignPrivateKey() + { + return $this->signPrivateKey; + } + + /** + * Set perform signing before encryption. + * + * The default is to first sign the message and then encrypt. + * But some older mail clients, namely Microsoft Outlook 2000 will work when the message first encrypted. + * As this goes against the official specs, its recommended to only use 'encryption -> signing' when specifically targeting these 'broken' clients. + * + * @param string $signThenEncrypt + * + * @return Swift_Signers_SMimeSigner + */ + public function setSignThenEncrypt($signThenEncrypt = true) + { + $this->signThenEncrypt = $signThenEncrypt; + + return $this; + } + + /** + * @return bool + */ + public function isSignThenEncrypt() + { + return $this->signThenEncrypt; + } + + /** + * Resets internal states. + * + * @return Swift_Signers_SMimeSigner + */ + public function reset() + { + return $this; + } + + /** + * Change the Swift_Message to apply the signing. + * + * @param Swift_Message $message + * + * @return Swift_Signers_SMimeSigner + */ + public function signMessage(Swift_Message $message) + { + if (null === $this->signCertificate && null === $this->encryptCert) { + return $this; + } + + // Store the message using ByteStream to a file{1} + // Remove all Children + // Sign file{1}, parse the new MIME headers and set them on the primary MimeEntity + // Set the singed-body as the new body (without boundary) + + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $this->toSMimeByteStream($messageStream, $message); + $message->setEncoder(Swift_DependencyContainer::getInstance()->lookup('mime.rawcontentencoder')); + + $message->setChildren(array()); + $this->streamToMime($messageStream, $message); + } + + /** + * Return the list of header a signer might tamper. + * + * @return array + */ + public function getAlteredHeaders() + { + return array('Content-Type', 'Content-Transfer-Encoding', 'Content-Disposition'); + } + + /** + * @param Swift_InputByteStream $inputStream + * @param Swift_Message $mimeEntity + */ + protected function toSMimeByteStream(Swift_InputByteStream $inputStream, Swift_Message $message) + { + $mimeEntity = $this->createMessage($message); + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + $mimeEntity->toByteStream($messageStream); + $messageStream->commit(); + + if (null !== $this->signCertificate && null !== $this->encryptCert) { + $temporaryStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if ($this->signThenEncrypt) { + $this->messageStreamToSignedByteStream($messageStream, $temporaryStream); + $this->messageStreamToEncryptedByteStream($temporaryStream, $inputStream); + } else { + $this->messageStreamToEncryptedByteStream($messageStream, $temporaryStream); + $this->messageStreamToSignedByteStream($temporaryStream, $inputStream); + } + } elseif ($this->signCertificate !== null) { + $this->messageStreamToSignedByteStream($messageStream, $inputStream); + } else { + $this->messageStreamToEncryptedByteStream($messageStream, $inputStream); + } + } + + /** + * @param Swift_Message $message + * + * @return Swift_Message + */ + protected function createMessage(Swift_Message $message) + { + $mimeEntity = new Swift_Message('', $message->getBody(), $message->getContentType(), $message->getCharset()); + $mimeEntity->setChildren($message->getChildren()); + + $messageHeaders = $mimeEntity->getHeaders(); + $messageHeaders->remove('Message-ID'); + $messageHeaders->remove('Date'); + $messageHeaders->remove('Subject'); + $messageHeaders->remove('MIME-Version'); + $messageHeaders->remove('To'); + $messageHeaders->remove('From'); + + return $mimeEntity; + } + + /** + * @param Swift_FileStream $outputStream + * @param Swift_InputByteStream $inputStream + * + * @throws Swift_IoException + */ + protected function messageStreamToSignedByteStream(Swift_FileStream $outputStream, Swift_InputByteStream $inputStream) + { + $signedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + $args = array($outputStream->getPath(), $signedMessageStream->getPath(), $this->signCertificate, $this->signPrivateKey, array(), $this->signOptions); + if (null !== $this->extraCerts) { + $args[] = $this->extraCerts; + } + + if (!call_user_func_array('openssl_pkcs7_sign', $args)) { + throw new Swift_IoException(sprintf('Failed to sign S/Mime message. Error: "%s".', openssl_error_string())); + } + + $this->copyFromOpenSSLOutput($signedMessageStream, $inputStream); + } + + /** + * @param Swift_FileStream $outputStream + * @param Swift_InputByteStream $is + * + * @throws Swift_IoException + */ + protected function messageStreamToEncryptedByteStream(Swift_FileStream $outputStream, Swift_InputByteStream $is) + { + $encryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if (!openssl_pkcs7_encrypt($outputStream->getPath(), $encryptedMessageStream->getPath(), $this->encryptCert, array(), 0, $this->encryptCipher)) { + throw new Swift_IoException(sprintf('Failed to encrypt S/Mime message. Error: "%s".', openssl_error_string())); + } + + $this->copyFromOpenSSLOutput($encryptedMessageStream, $is); + } + + /** + * @param Swift_OutputByteStream $fromStream + * @param Swift_InputByteStream $toStream + */ + protected function copyFromOpenSSLOutput(Swift_OutputByteStream $fromStream, Swift_InputByteStream $toStream) + { + $bufferLength = 4096; + $filteredStream = new Swift_ByteStream_TemporaryFileByteStream(); + $filteredStream->addFilter($this->replacementFactory->createFilter("\r\n", "\n"), 'CRLF to LF'); + $filteredStream->addFilter($this->replacementFactory->createFilter("\n", "\r\n"), 'LF to CRLF'); + + while (false !== ($buffer = $fromStream->read($bufferLength))) { + $filteredStream->write($buffer); + } + + $filteredStream->flushBuffers(); + + while (false !== ($buffer = $filteredStream->read($bufferLength))) { + $toStream->write($buffer); + } + + $toStream->commit(); + } + + /** + * Merges an OutputByteStream to Swift_Message. + * + * @param Swift_OutputByteStream $fromStream + * @param Swift_Message $message + */ + protected function streamToMime(Swift_OutputByteStream $fromStream, Swift_Message $message) + { + $bufferLength = 78; + $headerData = ''; + + $fromStream->setReadPointer(0); + + while (($buffer = $fromStream->read($bufferLength)) !== false) { + $headerData .= $buffer; + + if (false !== strpos($buffer, "\r\n\r\n")) { + break; + } + } + + $headersPosEnd = strpos($headerData, "\r\n\r\n"); + $headerData = trim($headerData); + $headerData = substr($headerData, 0, $headersPosEnd); + $headerLines = explode("\r\n", $headerData); + unset($headerData); + + $headers = array(); + $currentHeaderName = ''; + + foreach ($headerLines as $headerLine) { + // Line separated + if (ctype_space($headerLines[0]) || false === strpos($headerLine, ':')) { + $headers[$currentHeaderName] .= ' '.trim($headerLine); + continue; + } + + $header = explode(':', $headerLine, 2); + $currentHeaderName = strtolower($header[0]); + $headers[$currentHeaderName] = trim($header[1]); + } + + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $messageStream->addFilter($this->replacementFactory->createFilter("\r\n", "\n"), 'CRLF to LF'); + $messageStream->addFilter($this->replacementFactory->createFilter("\n", "\r\n"), 'LF to CRLF'); + + $messageHeaders = $message->getHeaders(); + + // No need to check for 'application/pkcs7-mime', as this is always base64 + if ('multipart/signed;' === substr($headers['content-type'], 0, 17)) { + if (!preg_match('/boundary=("[^"]+"|(?:[^\s]+|$))/is', $headers['content-type'], $contentTypeData)) { + throw new Swift_SwiftException('Failed to find Boundary parameter'); + } + + $boundary = trim($contentTypeData['1'], '"'); + $boundaryLen = strlen($boundary); + + // Skip the header and CRLF CRLF + $fromStream->setReadPointer($headersPosEnd + 4); + + while (false !== ($buffer = $fromStream->read($bufferLength))) { + $messageStream->write($buffer); + } + + $messageStream->commit(); + + $messageHeaders->remove('Content-Transfer-Encoding'); + $message->setContentType($headers['content-type']); + $message->setBoundary($boundary); + $message->setBody($messageStream); + } else { + $fromStream->setReadPointer($headersPosEnd + 4); + + if (null === $this->headerFactory) { + $this->headerFactory = Swift_DependencyContainer::getInstance()->lookup('mime.headerfactory'); + } + + $message->setContentType($headers['content-type']); + $messageHeaders->set($this->headerFactory->createTextHeader('Content-Transfer-Encoding', $headers['content-transfer-encoding'])); + $messageHeaders->set($this->headerFactory->createTextHeader('Content-Disposition', $headers['content-disposition'])); + + while (false !== ($buffer = $fromStream->read($bufferLength))) { + $messageStream->write($buffer); + } + + $messageStream->commit(); + $message->setBody($messageStream); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php new file mode 100644 index 0000000..6251611 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php @@ -0,0 +1,58 @@ +createDependenciesFor('transport.smtp') + ); + + $this->setHost($host); + $this->setPort($port); + $this->setEncryption($security); + } + + /** + * Create a new SmtpTransport instance. + * + * @param string $host + * @param int $port + * @param string $security + * + * @return Swift_SmtpTransport + */ + public static function newInstance($host = 'localhost', $port = 25, $security = null) + { + return new self($host, $port, $security); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php new file mode 100644 index 0000000..c16ab4b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Interface for spools. + * + * @author Fabien Potencier + */ +interface Swift_Spool +{ + /** + * Starts this Spool mechanism. + */ + public function start(); + + /** + * Stops this Spool mechanism. + */ + public function stop(); + + /** + * Tests if this Spool mechanism has started. + * + * @return bool + */ + public function isStarted(); + + /** + * Queues a message. + * + * @param Swift_Mime_Message $message The message to store + * + * @return bool Whether the operation has succeeded + */ + public function queueMessage(Swift_Mime_Message $message); + + /** + * Sends messages using the given transport instance. + * + * @param Swift_Transport $transport A transport instance + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent emails + */ + public function flushQueue(Swift_Transport $transport, &$failedRecipients = null); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php new file mode 100644 index 0000000..cf9bf78 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages in a queue. + * + * @author Fabien Potencier + */ +class Swift_SpoolTransport extends Swift_Transport_SpoolTransport +{ + /** + * Create a new SpoolTransport. + * + * @param Swift_Spool $spool + */ + public function __construct(Swift_Spool $spool) + { + $arguments = Swift_DependencyContainer::getInstance() + ->createDependenciesFor('transport.spool'); + + $arguments[] = $spool; + + call_user_func_array( + array($this, 'Swift_Transport_SpoolTransport::__construct'), + $arguments + ); + } + + /** + * Create a new SpoolTransport instance. + * + * @param Swift_Spool $spool + * + * @return Swift_SpoolTransport + */ + public static function newInstance(Swift_Spool $spool) + { + return new self($spool); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php new file mode 100644 index 0000000..362be2e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php @@ -0,0 +1,35 @@ +_search = $search; + $this->_index = array(); + $this->_tree = array(); + $this->_replace = array(); + $this->_repSize = array(); + + $tree = null; + $i = null; + $last_size = $size = 0; + foreach ($search as $i => $search_element) { + if ($tree !== null) { + $tree[-1] = min(count($replace) - 1, $i - 1); + $tree[-2] = $last_size; + } + $tree = &$this->_tree; + if (is_array($search_element)) { + foreach ($search_element as $k => $char) { + $this->_index[$char] = true; + if (!isset($tree[$char])) { + $tree[$char] = array(); + } + $tree = &$tree[$char]; + } + $last_size = $k + 1; + $size = max($size, $last_size); + } else { + $last_size = 1; + if (!isset($tree[$search_element])) { + $tree[$search_element] = array(); + } + $tree = &$tree[$search_element]; + $size = max($last_size, $size); + $this->_index[$search_element] = true; + } + } + if ($i !== null) { + $tree[-1] = min(count($replace) - 1, $i); + $tree[-2] = $last_size; + $this->_treeMaxLen = $size; + } + foreach ($replace as $rep) { + if (!is_array($rep)) { + $rep = array($rep); + } + $this->_replace[] = $rep; + } + for ($i = count($this->_replace) - 1; $i >= 0; --$i) { + $this->_replace[$i] = $rep = $this->filter($this->_replace[$i], $i); + $this->_repSize[$i] = count($rep); + } + } + + /** + * Returns true if based on the buffer passed more bytes should be buffered. + * + * @param array $buffer + * + * @return bool + */ + public function shouldBuffer($buffer) + { + $endOfBuffer = end($buffer); + + return isset($this->_index[$endOfBuffer]); + } + + /** + * Perform the actual replacements on $buffer and return the result. + * + * @param array $buffer + * @param int $_minReplaces + * + * @return array + */ + public function filter($buffer, $_minReplaces = -1) + { + if ($this->_treeMaxLen == 0) { + return $buffer; + } + + $newBuffer = array(); + $buf_size = count($buffer); + for ($i = 0; $i < $buf_size; ++$i) { + $search_pos = $this->_tree; + $last_found = PHP_INT_MAX; + // We try to find if the next byte is part of a search pattern + for ($j = 0; $j <= $this->_treeMaxLen; ++$j) { + // We have a new byte for a search pattern + if (isset($buffer [$p = $i + $j]) && isset($search_pos[$buffer[$p]])) { + $search_pos = $search_pos[$buffer[$p]]; + // We have a complete pattern, save, in case we don't find a better match later + if (isset($search_pos[-1]) && $search_pos[-1] < $last_found + && $search_pos[-1] > $_minReplaces) { + $last_found = $search_pos[-1]; + $last_size = $search_pos[-2]; + } + } + // We got a complete pattern + elseif ($last_found !== PHP_INT_MAX) { + // Adding replacement datas to output buffer + $rep_size = $this->_repSize[$last_found]; + for ($j = 0; $j < $rep_size; ++$j) { + $newBuffer[] = $this->_replace[$last_found][$j]; + } + // We Move cursor forward + $i += $last_size - 1; + // Edge Case, last position in buffer + if ($i >= $buf_size) { + $newBuffer[] = $buffer[$i]; + } + + // We start the next loop + continue 2; + } else { + // this byte is not in a pattern and we haven't found another pattern + break; + } + } + // Normal byte, move it to output buffer + $newBuffer[] = $buffer[$i]; + } + + return $newBuffer; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php new file mode 100644 index 0000000..d0db8b9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php @@ -0,0 +1,66 @@ +_search = $search; + $this->_replace = $replace; + } + + /** + * Returns true if based on the buffer passed more bytes should be buffered. + * + * @param string $buffer + * + * @return bool + */ + public function shouldBuffer($buffer) + { + $endOfBuffer = substr($buffer, -1); + foreach ((array) $this->_search as $needle) { + if (false !== strpos($needle, $endOfBuffer)) { + return true; + } + } + + return false; + } + + /** + * Perform the actual replacements on $buffer and return the result. + * + * @param string $buffer + * + * @return string + */ + public function filter($buffer) + { + return str_replace($this->_search, $this->_replace, $buffer); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php new file mode 100644 index 0000000..e98240b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php @@ -0,0 +1,45 @@ +_filters[$search][$replace])) { + if (!isset($this->_filters[$search])) { + $this->_filters[$search] = array(); + } + + if (!isset($this->_filters[$search][$replace])) { + $this->_filters[$search][$replace] = array(); + } + + $this->_filters[$search][$replace] = new Swift_StreamFilters_StringReplacementFilter($search, $replace); + } + + return $this->_filters[$search][$replace]; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php new file mode 100644 index 0000000..db3d310 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php @@ -0,0 +1,29 @@ +_eventDispatcher = $dispatcher; + $this->_buffer = $buf; + $this->_lookupHostname(); + } + + /** + * Set the name of the local domain which Swift will identify itself as. + * + * This should be a fully-qualified domain name and should be truly the domain + * you're using. + * + * If your server doesn't have a domain name, use the IP in square + * brackets (i.e. [127.0.0.1]). + * + * @param string $domain + * + * @return Swift_Transport_AbstractSmtpTransport + */ + public function setLocalDomain($domain) + { + $this->_domain = $domain; + + return $this; + } + + /** + * Get the name of the domain Swift will identify as. + * + * @return string + */ + public function getLocalDomain() + { + return $this->_domain; + } + + /** + * Sets the source IP. + * + * @param string $source + */ + public function setSourceIp($source) + { + $this->_sourceIp = $source; + } + + /** + * Returns the IP used to connect to the destination. + * + * @return string + */ + public function getSourceIp() + { + return $this->_sourceIp; + } + + /** + * Start the SMTP connection. + */ + public function start() + { + if (!$this->_started) { + if ($evt = $this->_eventDispatcher->createTransportChangeEvent($this)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeTransportStarted'); + if ($evt->bubbleCancelled()) { + return; + } + } + + try { + $this->_buffer->initialize($this->_getBufferParams()); + } catch (Swift_TransportException $e) { + $this->_throwException($e); + } + $this->_readGreeting(); + $this->_doHeloCommand(); + + if ($evt) { + $this->_eventDispatcher->dispatchEvent($evt, 'transportStarted'); + } + + $this->_started = true; + } + } + + /** + * Test if an SMTP connection has been established. + * + * @return bool + */ + public function isStarted() + { + return $this->_started; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * @param Swift_Mime_Message $message + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + $sent = 0; + $failedRecipients = (array) $failedRecipients; + + if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + if (!$reversePath = $this->_getReversePath($message)) { + $this->_throwException(new Swift_TransportException( + 'Cannot send message without a sender address' + ) + ); + } + + $to = (array) $message->getTo(); + $cc = (array) $message->getCc(); + $tos = array_merge($to, $cc); + $bcc = (array) $message->getBcc(); + + $message->setBcc(array()); + + try { + $sent += $this->_sendTo($message, $reversePath, $tos, $failedRecipients); + $sent += $this->_sendBcc($message, $reversePath, $bcc, $failedRecipients); + } catch (Exception $e) { + $message->setBcc($bcc); + throw $e; + } + + $message->setBcc($bcc); + + if ($evt) { + if ($sent == count($to) + count($cc) + count($bcc)) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + } elseif ($sent > 0) { + $evt->setResult(Swift_Events_SendEvent::RESULT_TENTATIVE); + } else { + $evt->setResult(Swift_Events_SendEvent::RESULT_FAILED); + } + $evt->setFailedRecipients($failedRecipients); + $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $message->generateId(); //Make sure a new Message ID is used + + return $sent; + } + + /** + * Stop the SMTP connection. + */ + public function stop() + { + if ($this->_started) { + if ($evt = $this->_eventDispatcher->createTransportChangeEvent($this)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeTransportStopped'); + if ($evt->bubbleCancelled()) { + return; + } + } + + try { + $this->executeCommand("QUIT\r\n", array(221)); + } catch (Swift_TransportException $e) { + } + + try { + $this->_buffer->terminate(); + + if ($evt) { + $this->_eventDispatcher->dispatchEvent($evt, 'transportStopped'); + } + } catch (Swift_TransportException $e) { + $this->_throwException($e); + } + } + $this->_started = false; + } + + /** + * Register a plugin. + * + * @param Swift_Events_EventListener $plugin + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->_eventDispatcher->bindEventListener($plugin); + } + + /** + * Reset the current mail transaction. + */ + public function reset() + { + $this->executeCommand("RSET\r\n", array(250)); + } + + /** + * Get the IoBuffer where read/writes are occurring. + * + * @return Swift_Transport_IoBuffer + */ + public function getBuffer() + { + return $this->_buffer; + } + + /** + * Run a command against the buffer, expecting the given response codes. + * + * If no response codes are given, the response will not be validated. + * If codes are given, an exception will be thrown on an invalid response. + * + * @param string $command + * @param int[] $codes + * @param string[] $failures An array of failures by-reference + * + * @return string + */ + public function executeCommand($command, $codes = array(), &$failures = null) + { + $failures = (array) $failures; + $seq = $this->_buffer->write($command); + $response = $this->_getFullResponse($seq); + if ($evt = $this->_eventDispatcher->createCommandEvent($this, $command, $codes)) { + $this->_eventDispatcher->dispatchEvent($evt, 'commandSent'); + } + $this->_assertResponseCode($response, $codes); + + return $response; + } + + /** Read the opening SMTP greeting */ + protected function _readGreeting() + { + $this->_assertResponseCode($this->_getFullResponse(0), array(220)); + } + + /** Send the HELO welcome */ + protected function _doHeloCommand() + { + $this->executeCommand( + sprintf("HELO %s\r\n", $this->_domain), array(250) + ); + } + + /** Send the MAIL FROM command */ + protected function _doMailFromCommand($address) + { + $this->executeCommand( + sprintf("MAIL FROM:<%s>\r\n", $address), array(250) + ); + } + + /** Send the RCPT TO command */ + protected function _doRcptToCommand($address) + { + $this->executeCommand( + sprintf("RCPT TO:<%s>\r\n", $address), array(250, 251, 252) + ); + } + + /** Send the DATA command */ + protected function _doDataCommand() + { + $this->executeCommand("DATA\r\n", array(354)); + } + + /** Stream the contents of the message over the buffer */ + protected function _streamMessage(Swift_Mime_Message $message) + { + $this->_buffer->setWriteTranslations(array("\r\n." => "\r\n..")); + try { + $message->toByteStream($this->_buffer); + $this->_buffer->flushBuffers(); + } catch (Swift_TransportException $e) { + $this->_throwException($e); + } + $this->_buffer->setWriteTranslations(array()); + $this->executeCommand("\r\n.\r\n", array(250)); + } + + /** Determine the best-use reverse path for this message */ + protected function _getReversePath(Swift_Mime_Message $message) + { + $return = $message->getReturnPath(); + $sender = $message->getSender(); + $from = $message->getFrom(); + $path = null; + if (!empty($return)) { + $path = $return; + } elseif (!empty($sender)) { + // Don't use array_keys + reset($sender); // Reset Pointer to first pos + $path = key($sender); // Get key + } elseif (!empty($from)) { + reset($from); // Reset Pointer to first pos + $path = key($from); // Get key + } + + return $path; + } + + /** Throw a TransportException, first sending it to any listeners */ + protected function _throwException(Swift_TransportException $e) + { + if ($evt = $this->_eventDispatcher->createTransportExceptionEvent($this, $e)) { + $this->_eventDispatcher->dispatchEvent($evt, 'exceptionThrown'); + if (!$evt->bubbleCancelled()) { + throw $e; + } + } else { + throw $e; + } + } + + /** Throws an Exception if a response code is incorrect */ + protected function _assertResponseCode($response, $wanted) + { + list($code) = sscanf($response, '%3d'); + $valid = (empty($wanted) || in_array($code, $wanted)); + + if ($evt = $this->_eventDispatcher->createResponseEvent($this, $response, + $valid)) { + $this->_eventDispatcher->dispatchEvent($evt, 'responseReceived'); + } + + if (!$valid) { + $this->_throwException( + new Swift_TransportException( + 'Expected response code '.implode('/', $wanted).' but got code '. + '"'.$code.'", with message "'.$response.'"', + $code) + ); + } + } + + /** Get an entire multi-line response using its sequence number */ + protected function _getFullResponse($seq) + { + $response = ''; + try { + do { + $line = $this->_buffer->readLine($seq); + $response .= $line; + } while (null !== $line && false !== $line && ' ' != $line{3}); + } catch (Swift_TransportException $e) { + $this->_throwException($e); + } catch (Swift_IoException $e) { + $this->_throwException( + new Swift_TransportException( + $e->getMessage()) + ); + } + + return $response; + } + + /** Send an email to the given recipients from the given reverse path */ + private function _doMailTransaction($message, $reversePath, array $recipients, array &$failedRecipients) + { + $sent = 0; + $this->_doMailFromCommand($reversePath); + foreach ($recipients as $forwardPath) { + try { + $this->_doRcptToCommand($forwardPath); + $sent++; + } catch (Swift_TransportException $e) { + $failedRecipients[] = $forwardPath; + } + } + + if ($sent != 0) { + $this->_doDataCommand(); + $this->_streamMessage($message); + } else { + $this->reset(); + } + + return $sent; + } + + /** Send a message to the given To: recipients */ + private function _sendTo(Swift_Mime_Message $message, $reversePath, array $to, array &$failedRecipients) + { + if (empty($to)) { + return 0; + } + + return $this->_doMailTransaction($message, $reversePath, array_keys($to), + $failedRecipients); + } + + /** Send a message to all Bcc: recipients */ + private function _sendBcc(Swift_Mime_Message $message, $reversePath, array $bcc, array &$failedRecipients) + { + $sent = 0; + foreach ($bcc as $forwardPath => $name) { + $message->setBcc(array($forwardPath => $name)); + $sent += $this->_doMailTransaction( + $message, $reversePath, array($forwardPath), $failedRecipients + ); + } + + return $sent; + } + + /** Try to determine the hostname of the server this is run on */ + private function _lookupHostname() + { + if (!empty($_SERVER['SERVER_NAME']) + && $this->_isFqdn($_SERVER['SERVER_NAME'])) { + $this->_domain = $_SERVER['SERVER_NAME']; + } elseif (!empty($_SERVER['SERVER_ADDR'])) { + $this->_domain = sprintf('[%s]', $_SERVER['SERVER_ADDR']); + } + } + + /** Determine is the $hostname is a fully-qualified name */ + private function _isFqdn($hostname) + { + // We could do a really thorough check, but there's really no point + if (false !== $dotPos = strpos($hostname, '.')) { + return ($dotPos > 0) && ($dotPos != strlen($hostname) - 1); + } else { + return false; + } + } + + /** + * Destructor. + */ + public function __destruct() + { + $this->stop(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php new file mode 100644 index 0000000..53f721d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php @@ -0,0 +1,81 @@ +executeCommand("AUTH CRAM-MD5\r\n", array(334)); + $challenge = base64_decode(substr($challenge, 4)); + $message = base64_encode( + $username.' '.$this->_getResponse($password, $challenge) + ); + $agent->executeCommand(sprintf("%s\r\n", $message), array(235)); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", array(250)); + + return false; + } + } + + /** + * Generate a CRAM-MD5 response from a server challenge. + * + * @param string $secret + * @param string $challenge + * + * @return string + */ + private function _getResponse($secret, $challenge) + { + if (strlen($secret) > 64) { + $secret = pack('H32', md5($secret)); + } + + if (strlen($secret) < 64) { + $secret = str_pad($secret, 64, chr(0)); + } + + $k_ipad = substr($secret, 0, 64) ^ str_repeat(chr(0x36), 64); + $k_opad = substr($secret, 0, 64) ^ str_repeat(chr(0x5C), 64); + + $inner = pack('H32', md5($k_ipad.$challenge)); + $digest = md5($k_opad.$inner); + + return $digest; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php new file mode 100644 index 0000000..6ab6e33 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php @@ -0,0 +1,51 @@ +executeCommand("AUTH LOGIN\r\n", array(334)); + $agent->executeCommand(sprintf("%s\r\n", base64_encode($username)), array(334)); + $agent->executeCommand(sprintf("%s\r\n", base64_encode($password)), array(235)); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", array(250)); + + return false; + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php new file mode 100644 index 0000000..f1102bb --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php @@ -0,0 +1,726 @@ + + */ +class Swift_Transport_Esmtp_Auth_NTLMAuthenticator implements Swift_Transport_Esmtp_Authenticator +{ + const NTLMSIG = "NTLMSSP\x00"; + const DESCONST = 'KGS!@#$%'; + + /** + * Get the name of the AUTH mechanism this Authenticator handles. + * + * @return string + */ + public function getAuthKeyword() + { + return 'NTLM'; + } + + /** + * Try to authenticate the user with $username and $password. + * + * @param Swift_Transport_SmtpAgent $agent + * @param string $username + * @param string $password + * + * @return bool + */ + public function authenticate(Swift_Transport_SmtpAgent $agent, $username, $password) + { + if (!function_exists('mcrypt_module_open')) { + throw new LogicException('The mcrypt functions need to be enabled to use the NTLM authenticator.'); + } + + if (!function_exists('openssl_random_pseudo_bytes')) { + throw new LogicException('The OpenSSL extension must be enabled to use the NTLM authenticator.'); + } + + if (!function_exists('bcmul')) { + throw new LogicException('The BCMatch functions must be enabled to use the NTLM authenticator.'); + } + + try { + // execute AUTH command and filter out the code at the beginning + // AUTH NTLM xxxx + $response = base64_decode(substr(trim($this->sendMessage1($agent)), 4)); + + // extra parameters for our unit cases + $timestamp = func_num_args() > 3 ? func_get_arg(3) : $this->getCorrectTimestamp(bcmul(microtime(true), '1000')); + $client = func_num_args() > 4 ? func_get_arg(4) : $this->getRandomBytes(8); + + // Message 3 response + $this->sendMessage3($response, $username, $password, $timestamp, $client, $agent); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", array(250)); + + return false; + } + } + + protected function si2bin($si, $bits = 32) + { + $bin = null; + if ($si >= -pow(2, $bits - 1) && ($si <= pow(2, $bits - 1))) { + // positive or zero + if ($si >= 0) { + $bin = base_convert($si, 10, 2); + // pad to $bits bit + $bin_length = strlen($bin); + if ($bin_length < $bits) { + $bin = str_repeat('0', $bits - $bin_length).$bin; + } + } else { + // negative + $si = -$si - pow(2, $bits); + $bin = base_convert($si, 10, 2); + $bin_length = strlen($bin); + if ($bin_length > $bits) { + $bin = str_repeat('1', $bits - $bin_length).$bin; + } + } + } + + return $bin; + } + + /** + * Send our auth message and returns the response. + * + * @param Swift_Transport_SmtpAgent $agent + * + * @return string SMTP Response + */ + protected function sendMessage1(Swift_Transport_SmtpAgent $agent) + { + $message = $this->createMessage1(); + + return $agent->executeCommand(sprintf("AUTH %s %s\r\n", $this->getAuthKeyword(), base64_encode($message)), array(334)); + } + + /** + * Fetch all details of our response (message 2). + * + * @param string $response + * + * @return array our response parsed + */ + protected function parseMessage2($response) + { + $responseHex = bin2hex($response); + $length = floor(hexdec(substr($responseHex, 28, 4)) / 256) * 2; + $offset = floor(hexdec(substr($responseHex, 32, 4)) / 256) * 2; + $challenge = $this->hex2bin(substr($responseHex, 48, 16)); + $context = $this->hex2bin(substr($responseHex, 64, 16)); + $targetInfoH = $this->hex2bin(substr($responseHex, 80, 16)); + $targetName = $this->hex2bin(substr($responseHex, $offset, $length)); + $offset = floor(hexdec(substr($responseHex, 88, 4)) / 256) * 2; + $targetInfoBlock = substr($responseHex, $offset); + list($domainName, $serverName, $DNSDomainName, $DNSServerName, $terminatorByte) = $this->readSubBlock($targetInfoBlock); + + return array( + $challenge, + $context, + $targetInfoH, + $targetName, + $domainName, + $serverName, + $DNSDomainName, + $DNSServerName, + $this->hex2bin($targetInfoBlock), + $terminatorByte, + ); + } + + /** + * Read the blob information in from message2. + * + * @param $block + * + * @return array + */ + protected function readSubBlock($block) + { + // remove terminatorByte cause it's always the same + $block = substr($block, 0, -8); + + $length = strlen($block); + $offset = 0; + $data = array(); + while ($offset < $length) { + $blockLength = hexdec(substr(substr($block, $offset, 8), -4)) / 256; + $offset += 8; + $data[] = $this->hex2bin(substr($block, $offset, $blockLength * 2)); + $offset += $blockLength * 2; + } + + if (count($data) == 3) { + $data[] = $data[2]; + $data[2] = ''; + } + + $data[] = $this->createByte('00'); + + return $data; + } + + /** + * Send our final message with all our data. + * + * @param string $response Message 1 response (message 2) + * @param string $username + * @param string $password + * @param string $timestamp + * @param string $client + * @param Swift_Transport_SmtpAgent $agent + * @param bool $v2 Use version2 of the protocol + * + * @return string + */ + protected function sendMessage3($response, $username, $password, $timestamp, $client, Swift_Transport_SmtpAgent $agent, $v2 = true) + { + list($domain, $username) = $this->getDomainAndUsername($username); + //$challenge, $context, $targetInfoH, $targetName, $domainName, $workstation, $DNSDomainName, $DNSServerName, $blob, $ter + list($challenge, , , , , $workstation, , , $blob) = $this->parseMessage2($response); + + if (!$v2) { + // LMv1 + $lmResponse = $this->createLMPassword($password, $challenge); + // NTLMv1 + $ntlmResponse = $this->createNTLMPassword($password, $challenge); + } else { + // LMv2 + $lmResponse = $this->createLMv2Password($password, $username, $domain, $challenge, $client); + // NTLMv2 + $ntlmResponse = $this->createNTLMv2Hash($password, $username, $domain, $challenge, $blob, $timestamp, $client); + } + + $message = $this->createMessage3($domain, $username, $workstation, $lmResponse, $ntlmResponse); + + return $agent->executeCommand(sprintf("%s\r\n", base64_encode($message)), array(235)); + } + + /** + * Create our message 1. + * + * @return string + */ + protected function createMessage1() + { + return self::NTLMSIG + .$this->createByte('01') // Message 1 +.$this->createByte('0702'); // Flags + } + + /** + * Create our message 3. + * + * @param string $domain + * @param string $username + * @param string $workstation + * @param string $lmResponse + * @param string $ntlmResponse + * + * @return string + */ + protected function createMessage3($domain, $username, $workstation, $lmResponse, $ntlmResponse) + { + // Create security buffers + $domainSec = $this->createSecurityBuffer($domain, 64); + $domainInfo = $this->readSecurityBuffer(bin2hex($domainSec)); + $userSec = $this->createSecurityBuffer($username, ($domainInfo[0] + $domainInfo[1]) / 2); + $userInfo = $this->readSecurityBuffer(bin2hex($userSec)); + $workSec = $this->createSecurityBuffer($workstation, ($userInfo[0] + $userInfo[1]) / 2); + $workInfo = $this->readSecurityBuffer(bin2hex($workSec)); + $lmSec = $this->createSecurityBuffer($lmResponse, ($workInfo[0] + $workInfo[1]) / 2, true); + $lmInfo = $this->readSecurityBuffer(bin2hex($lmSec)); + $ntlmSec = $this->createSecurityBuffer($ntlmResponse, ($lmInfo[0] + $lmInfo[1]) / 2, true); + + return self::NTLMSIG + .$this->createByte('03') // TYPE 3 message +.$lmSec // LM response header +.$ntlmSec // NTLM response header +.$domainSec // Domain header +.$userSec // User header +.$workSec // Workstation header +.$this->createByte('000000009a', 8) // session key header (empty) +.$this->createByte('01020000') // FLAGS +.$this->convertTo16bit($domain) // domain name +.$this->convertTo16bit($username) // username +.$this->convertTo16bit($workstation) // workstation +.$lmResponse + .$ntlmResponse; + } + + /** + * @param string $timestamp Epoch timestamp in microseconds + * @param string $client Random bytes + * @param string $targetInfo + * + * @return string + */ + protected function createBlob($timestamp, $client, $targetInfo) + { + return $this->createByte('0101') + .$this->createByte('00') + .$timestamp + .$client + .$this->createByte('00') + .$targetInfo + .$this->createByte('00'); + } + + /** + * Get domain and username from our username. + * + * @example DOMAIN\username + * + * @param string $name + * + * @return array + */ + protected function getDomainAndUsername($name) + { + if (strpos($name, '\\') !== false) { + return explode('\\', $name); + } + + list($user, $domain) = explode('@', $name); + + return array($domain, $user); + } + + /** + * Create LMv1 response. + * + * @param string $password + * @param string $challenge + * + * @return string + */ + protected function createLMPassword($password, $challenge) + { + // FIRST PART + $password = $this->createByte(strtoupper($password), 14, false); + list($key1, $key2) = str_split($password, 7); + + $desKey1 = $this->createDesKey($key1); + $desKey2 = $this->createDesKey($key2); + + $constantDecrypt = $this->createByte($this->desEncrypt(self::DESCONST, $desKey1).$this->desEncrypt(self::DESCONST, $desKey2), 21, false); + + // SECOND PART + list($key1, $key2, $key3) = str_split($constantDecrypt, 7); + + $desKey1 = $this->createDesKey($key1); + $desKey2 = $this->createDesKey($key2); + $desKey3 = $this->createDesKey($key3); + + return $this->desEncrypt($challenge, $desKey1).$this->desEncrypt($challenge, $desKey2).$this->desEncrypt($challenge, $desKey3); + } + + /** + * Create NTLMv1 response. + * + * @param string $password + * @param string $challenge + * + * @return string + */ + protected function createNTLMPassword($password, $challenge) + { + // FIRST PART + $ntlmHash = $this->createByte($this->md4Encrypt($password), 21, false); + list($key1, $key2, $key3) = str_split($ntlmHash, 7); + + $desKey1 = $this->createDesKey($key1); + $desKey2 = $this->createDesKey($key2); + $desKey3 = $this->createDesKey($key3); + + return $this->desEncrypt($challenge, $desKey1).$this->desEncrypt($challenge, $desKey2).$this->desEncrypt($challenge, $desKey3); + } + + /** + * Convert a normal timestamp to a tenth of a microtime epoch time. + * + * @param string $time + * + * @return string + */ + protected function getCorrectTimestamp($time) + { + // Get our timestamp (tricky!) + bcscale(0); + + $time = number_format($time, 0, '.', ''); // save microtime to string + $time = bcadd($time, '11644473600000'); // add epoch time + $time = bcmul($time, 10000); // tenths of a microsecond. + + $binary = $this->si2bin($time, 64); // create 64 bit binary string + $timestamp = ''; + for ($i = 0; $i < 8; $i++) { + $timestamp .= chr(bindec(substr($binary, -(($i + 1) * 8), 8))); + } + + return $timestamp; + } + + /** + * Create LMv2 response. + * + * @param string $password + * @param string $username + * @param string $domain + * @param string $challenge NTLM Challenge + * @param string $client Random string + * + * @return string + */ + protected function createLMv2Password($password, $username, $domain, $challenge, $client) + { + $lmPass = '00'; // by default 00 + // if $password > 15 than we can't use this method + if (strlen($password) <= 15) { + $ntlmHash = $this->md4Encrypt($password); + $ntml2Hash = $this->md5Encrypt($ntlmHash, $this->convertTo16bit(strtoupper($username).$domain)); + + $lmPass = bin2hex($this->md5Encrypt($ntml2Hash, $challenge.$client).$client); + } + + return $this->createByte($lmPass, 24); + } + + /** + * Create NTLMv2 response. + * + * @param string $password + * @param string $username + * @param string $domain + * @param string $challenge Hex values + * @param string $targetInfo Hex values + * @param string $timestamp + * @param string $client Random bytes + * + * @return string + * + * @see http://davenport.sourceforge.net/ntlm.html#theNtlmResponse + */ + protected function createNTLMv2Hash($password, $username, $domain, $challenge, $targetInfo, $timestamp, $client) + { + $ntlmHash = $this->md4Encrypt($password); + $ntml2Hash = $this->md5Encrypt($ntlmHash, $this->convertTo16bit(strtoupper($username).$domain)); + + // create blob + $blob = $this->createBlob($timestamp, $client, $targetInfo); + + $ntlmv2Response = $this->md5Encrypt($ntml2Hash, $challenge.$blob); + + return $ntlmv2Response.$blob; + } + + protected function createDesKey($key) + { + $material = array(bin2hex($key[0])); + $len = strlen($key); + for ($i = 1; $i < $len; $i++) { + list($high, $low) = str_split(bin2hex($key[$i])); + $v = $this->castToByte(ord($key[$i - 1]) << (7 + 1 - $i) | $this->uRShift(hexdec(dechex(hexdec($high) & 0xf).dechex(hexdec($low) & 0xf)), $i)); + $material[] = str_pad(substr(dechex($v), -2), 2, '0', STR_PAD_LEFT); // cast to byte + } + $material[] = str_pad(substr(dechex($this->castToByte(ord($key[6]) << 1)), -2), 2, '0'); + + // odd parity + foreach ($material as $k => $v) { + $b = $this->castToByte(hexdec($v)); + $needsParity = (($this->uRShift($b, 7) ^ $this->uRShift($b, 6) ^ $this->uRShift($b, 5) + ^ $this->uRShift($b, 4) ^ $this->uRShift($b, 3) ^ $this->uRShift($b, 2) + ^ $this->uRShift($b, 1)) & 0x01) == 0; + + list($high, $low) = str_split($v); + if ($needsParity) { + $material[$k] = dechex(hexdec($high) | 0x0).dechex(hexdec($low) | 0x1); + } else { + $material[$k] = dechex(hexdec($high) & 0xf).dechex(hexdec($low) & 0xe); + } + } + + return $this->hex2bin(implode('', $material)); + } + + /** HELPER FUNCTIONS */ + /** + * Create our security buffer depending on length and offset. + * + * @param string $value Value we want to put in + * @param int $offset start of value + * @param bool $is16 Do we 16bit string or not? + * + * @return string + */ + protected function createSecurityBuffer($value, $offset, $is16 = false) + { + $length = strlen(bin2hex($value)); + $length = $is16 ? $length / 2 : $length; + $length = $this->createByte(str_pad(dechex($length), 2, '0', STR_PAD_LEFT), 2); + + return $length.$length.$this->createByte(dechex($offset), 4); + } + + /** + * Read our security buffer to fetch length and offset of our value. + * + * @param string $value Securitybuffer in hex + * + * @return array array with length and offset + */ + protected function readSecurityBuffer($value) + { + $length = floor(hexdec(substr($value, 0, 4)) / 256) * 2; + $offset = floor(hexdec(substr($value, 8, 4)) / 256) * 2; + + return array($length, $offset); + } + + /** + * Cast to byte java equivalent to (byte). + * + * @param int $v + * + * @return int + */ + protected function castToByte($v) + { + return (($v + 128) % 256) - 128; + } + + /** + * Java unsigned right bitwise + * $a >>> $b. + * + * @param int $a + * @param int $b + * + * @return int + */ + protected function uRShift($a, $b) + { + if ($b == 0) { + return $a; + } + + return ($a >> $b) & ~(1 << (8 * PHP_INT_SIZE - 1) >> ($b - 1)); + } + + /** + * Right padding with 0 to certain length. + * + * @param string $input + * @param int $bytes Length of bytes + * @param bool $isHex Did we provided hex value + * + * @return string + */ + protected function createByte($input, $bytes = 4, $isHex = true) + { + if ($isHex) { + $byte = $this->hex2bin(str_pad($input, $bytes * 2, '00')); + } else { + $byte = str_pad($input, $bytes, "\x00"); + } + + return $byte; + } + + /** + * Create random bytes. + * + * @param $length + * + * @return string + */ + protected function getRandomBytes($length) + { + $bytes = openssl_random_pseudo_bytes($length, $strong); + + if (false !== $bytes && true === $strong) { + return $bytes; + } + + throw new RuntimeException('OpenSSL did not produce a secure random number.'); + } + + /** ENCRYPTION ALGORITHMS */ + /** + * DES Encryption. + * + * @param string $value + * @param string $key + * + * @return string + */ + protected function desEncrypt($value, $key) + { + $cipher = mcrypt_module_open(MCRYPT_DES, '', 'ecb', ''); + mcrypt_generic_init($cipher, $key, mcrypt_create_iv(mcrypt_enc_get_iv_size($cipher), MCRYPT_DEV_RANDOM)); + + return mcrypt_generic($cipher, $value); + } + + /** + * MD5 Encryption. + * + * @param string $key Encryption key + * @param string $msg Message to encrypt + * + * @return string + */ + protected function md5Encrypt($key, $msg) + { + $blocksize = 64; + if (strlen($key) > $blocksize) { + $key = pack('H*', md5($key)); + } + + $key = str_pad($key, $blocksize, "\0"); + $ipadk = $key ^ str_repeat("\x36", $blocksize); + $opadk = $key ^ str_repeat("\x5c", $blocksize); + + return pack('H*', md5($opadk.pack('H*', md5($ipadk.$msg)))); + } + + /** + * MD4 Encryption. + * + * @param string $input + * + * @return string + * + * @see http://php.net/manual/en/ref.hash.php + */ + protected function md4Encrypt($input) + { + $input = $this->convertTo16bit($input); + + return function_exists('hash') ? $this->hex2bin(hash('md4', $input)) : mhash(MHASH_MD4, $input); + } + + /** + * Convert UTF-8 to UTF-16. + * + * @param string $input + * + * @return string + */ + protected function convertTo16bit($input) + { + return iconv('UTF-8', 'UTF-16LE', $input); + } + + /** + * Hex2bin replacement for < PHP 5.4. + * + * @param string $hex + * + * @return string Binary + */ + protected function hex2bin($hex) + { + if (function_exists('hex2bin')) { + return hex2bin($hex); + } else { + return pack('H*', $hex); + } + } + + /** + * @param string $message + */ + protected function debug($message) + { + $message = bin2hex($message); + $messageId = substr($message, 16, 8); + echo substr($message, 0, 16)." NTLMSSP Signature
\n"; + echo $messageId." Type Indicator
\n"; + + if ($messageId == '02000000') { + $map = array( + 'Challenge', + 'Context', + 'Target Information Security Buffer', + 'Target Name Data', + 'NetBIOS Domain Name', + 'NetBIOS Server Name', + 'DNS Domain Name', + 'DNS Server Name', + 'BLOB', + 'Target Information Terminator', + ); + + $data = $this->parseMessage2($this->hex2bin($message)); + + foreach ($map as $key => $value) { + echo bin2hex($data[$key]).' - '.$data[$key].' ||| '.$value."
\n"; + } + } elseif ($messageId == '03000000') { + $i = 0; + $data[$i++] = substr($message, 24, 16); + list($lmLength, $lmOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 40, 16); + list($ntmlLength, $ntmlOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 56, 16); + list($targetLength, $targetOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 72, 16); + list($userLength, $userOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 88, 16); + list($workLength, $workOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 104, 16); + $data[$i++] = substr($message, 120, 8); + $data[$i++] = substr($message, $targetOffset, $targetLength); + $data[$i++] = substr($message, $userOffset, $userLength); + $data[$i++] = substr($message, $workOffset, $workLength); + $data[$i++] = substr($message, $lmOffset, $lmLength); + $data[$i] = substr($message, $ntmlOffset, $ntmlLength); + + $map = array( + 'LM Response Security Buffer', + 'NTLM Response Security Buffer', + 'Target Name Security Buffer', + 'User Name Security Buffer', + 'Workstation Name Security Buffer', + 'Session Key Security Buffer', + 'Flags', + 'Target Name Data', + 'User Name Data', + 'Workstation Name Data', + 'LM Response Data', + 'NTLM Response Data', + ); + + foreach ($map as $key => $value) { + echo $data[$key].' - '.$this->hex2bin($data[$key]).' ||| '.$value."
\n"; + } + } + + echo '

'; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php new file mode 100644 index 0000000..43219f9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php @@ -0,0 +1,50 @@ +executeCommand(sprintf("AUTH PLAIN %s\r\n", $message), array(235)); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", array(250)); + + return false; + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php new file mode 100644 index 0000000..ca35e7b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php @@ -0,0 +1,70 @@ + + * $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls') + * ->setAuthMode('XOAUTH2') + * ->setUsername('YOUR_EMAIL_ADDRESS') + * ->setPassword('YOUR_ACCESS_TOKEN'); + * + * + * @author xu.li + * + * @see https://developers.google.com/google-apps/gmail/xoauth2_protocol + */ +class Swift_Transport_Esmtp_Auth_XOAuth2Authenticator implements Swift_Transport_Esmtp_Authenticator +{ + /** + * Get the name of the AUTH mechanism this Authenticator handles. + * + * @return string + */ + public function getAuthKeyword() + { + return 'XOAUTH2'; + } + + /** + * Try to authenticate the user with $email and $token. + * + * @param Swift_Transport_SmtpAgent $agent + * @param string $email + * @param string $token + * + * @return bool + */ + public function authenticate(Swift_Transport_SmtpAgent $agent, $email, $token) + { + try { + $param = $this->constructXOAuth2Params($email, $token); + $agent->executeCommand('AUTH XOAUTH2 '.$param."\r\n", array(235)); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", array(250)); + + return false; + } + } + + /** + * Construct the auth parameter. + * + * @see https://developers.google.com/google-apps/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism + */ + protected function constructXOAuth2Params($email, $token) + { + return base64_encode("user=$email\1auth=Bearer $token\1\1"); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php new file mode 100644 index 0000000..2b0e682 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php @@ -0,0 +1,263 @@ +setAuthenticators($authenticators); + } + + /** + * Set the Authenticators which can process a login request. + * + * @param Swift_Transport_Esmtp_Authenticator[] $authenticators + */ + public function setAuthenticators(array $authenticators) + { + $this->_authenticators = $authenticators; + } + + /** + * Get the Authenticators which can process a login request. + * + * @return Swift_Transport_Esmtp_Authenticator[] + */ + public function getAuthenticators() + { + return $this->_authenticators; + } + + /** + * Set the username to authenticate with. + * + * @param string $username + */ + public function setUsername($username) + { + $this->_username = $username; + } + + /** + * Get the username to authenticate with. + * + * @return string + */ + public function getUsername() + { + return $this->_username; + } + + /** + * Set the password to authenticate with. + * + * @param string $password + */ + public function setPassword($password) + { + $this->_password = $password; + } + + /** + * Get the password to authenticate with. + * + * @return string + */ + public function getPassword() + { + return $this->_password; + } + + /** + * Set the auth mode to use to authenticate. + * + * @param string $mode + */ + public function setAuthMode($mode) + { + $this->_auth_mode = $mode; + } + + /** + * Get the auth mode to use to authenticate. + * + * @return string + */ + public function getAuthMode() + { + return $this->_auth_mode; + } + + /** + * Get the name of the ESMTP extension this handles. + * + * @return bool + */ + public function getHandledKeyword() + { + return 'AUTH'; + } + + /** + * Set the parameters which the EHLO greeting indicated. + * + * @param string[] $parameters + */ + public function setKeywordParams(array $parameters) + { + $this->_esmtpParams = $parameters; + } + + /** + * Runs immediately after a EHLO has been issued. + * + * @param Swift_Transport_SmtpAgent $agent to read/write + */ + public function afterEhlo(Swift_Transport_SmtpAgent $agent) + { + if ($this->_username) { + $count = 0; + foreach ($this->_getAuthenticatorsForAgent() as $authenticator) { + if (in_array(strtolower($authenticator->getAuthKeyword()), + array_map('strtolower', $this->_esmtpParams))) { + $count++; + if ($authenticator->authenticate($agent, $this->_username, $this->_password)) { + return; + } + } + } + throw new Swift_TransportException( + 'Failed to authenticate on SMTP server with username "'. + $this->_username.'" using '.$count.' possible authenticators' + ); + } + } + + /** + * Not used. + */ + public function getMailParams() + { + return array(); + } + + /** + * Not used. + */ + public function getRcptParams() + { + return array(); + } + + /** + * Not used. + */ + public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = array(), &$failedRecipients = null, &$stop = false) + { + } + + /** + * Returns +1, -1 or 0 according to the rules for usort(). + * + * This method is called to ensure extensions can be execute in an appropriate order. + * + * @param string $esmtpKeyword to compare with + * + * @return int + */ + public function getPriorityOver($esmtpKeyword) + { + return 0; + } + + /** + * Returns an array of method names which are exposed to the Esmtp class. + * + * @return string[] + */ + public function exposeMixinMethods() + { + return array('setUsername', 'getUsername', 'setPassword', 'getPassword', 'setAuthMode', 'getAuthMode'); + } + + /** + * Not used. + */ + public function resetState() + { + } + + /** + * Returns the authenticator list for the given agent. + * + * @param Swift_Transport_SmtpAgent $agent + * + * @return array + */ + protected function _getAuthenticatorsForAgent() + { + if (!$mode = strtolower($this->_auth_mode)) { + return $this->_authenticators; + } + + foreach ($this->_authenticators as $authenticator) { + if (strtolower($authenticator->getAuthKeyword()) == $mode) { + return array($authenticator); + } + } + + throw new Swift_TransportException('Auth mode '.$mode.' is invalid'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php new file mode 100644 index 0000000..12a9abf --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php @@ -0,0 +1,35 @@ +. + * + * @return string[] + */ + public function getMailParams(); + + /** + * Get params which are appended to RCPT TO:<>. + * + * @return string[] + */ + public function getRcptParams(); + + /** + * Runs when a command is due to be sent. + * + * @param Swift_Transport_SmtpAgent $agent to read/write + * @param string $command to send + * @param int[] $codes expected in response + * @param string[] $failedRecipients to collect failures + * @param bool $stop to be set true by-reference if the command is now sent + */ + public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = array(), &$failedRecipients = null, &$stop = false); + + /** + * Returns +1, -1 or 0 according to the rules for usort(). + * + * This method is called to ensure extensions can be execute in an appropriate order. + * + * @param string $esmtpKeyword to compare with + * + * @return int + */ + public function getPriorityOver($esmtpKeyword); + + /** + * Returns an array of method names which are exposed to the Esmtp class. + * + * @return string[] + */ + public function exposeMixinMethods(); + + /** + * Tells this handler to clear any buffers and reset its state. + */ + public function resetState(); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php new file mode 100644 index 0000000..5b4f50c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php @@ -0,0 +1,386 @@ + 'tcp', + 'host' => 'localhost', + 'port' => 25, + 'timeout' => 30, + 'blocking' => 1, + 'tls' => false, + 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET, + ); + + /** + * Creates a new EsmtpTransport using the given I/O buffer. + * + * @param Swift_Transport_IoBuffer $buf + * @param Swift_Transport_EsmtpHandler[] $extensionHandlers + * @param Swift_Events_EventDispatcher $dispatcher + */ + public function __construct(Swift_Transport_IoBuffer $buf, array $extensionHandlers, Swift_Events_EventDispatcher $dispatcher) + { + parent::__construct($buf, $dispatcher); + $this->setExtensionHandlers($extensionHandlers); + } + + /** + * Set the host to connect to. + * + * @param string $host + * + * @return Swift_Transport_EsmtpTransport + */ + public function setHost($host) + { + $this->_params['host'] = $host; + + return $this; + } + + /** + * Get the host to connect to. + * + * @return string + */ + public function getHost() + { + return $this->_params['host']; + } + + /** + * Set the port to connect to. + * + * @param int $port + * + * @return Swift_Transport_EsmtpTransport + */ + public function setPort($port) + { + $this->_params['port'] = (int) $port; + + return $this; + } + + /** + * Get the port to connect to. + * + * @return int + */ + public function getPort() + { + return $this->_params['port']; + } + + /** + * Set the connection timeout. + * + * @param int $timeout seconds + * + * @return Swift_Transport_EsmtpTransport + */ + public function setTimeout($timeout) + { + $this->_params['timeout'] = (int) $timeout; + $this->_buffer->setParam('timeout', (int) $timeout); + + return $this; + } + + /** + * Get the connection timeout. + * + * @return int + */ + public function getTimeout() + { + return $this->_params['timeout']; + } + + /** + * Set the encryption type (tls or ssl). + * + * @param string $encryption + * + * @return Swift_Transport_EsmtpTransport + */ + public function setEncryption($encryption) + { + if ('tls' == $encryption) { + $this->_params['protocol'] = 'tcp'; + $this->_params['tls'] = true; + } else { + $this->_params['protocol'] = $encryption; + $this->_params['tls'] = false; + } + + return $this; + } + + /** + * Get the encryption type. + * + * @return string + */ + public function getEncryption() + { + return $this->_params['tls'] ? 'tls' : $this->_params['protocol']; + } + + /** + * Sets the source IP. + * + * @param string $source + * + * @return Swift_Transport_EsmtpTransport + */ + public function setSourceIp($source) + { + $this->_params['sourceIp'] = $source; + + return $this; + } + + /** + * Returns the IP used to connect to the destination. + * + * @return string + */ + public function getSourceIp() + { + return isset($this->_params['sourceIp']) ? $this->_params['sourceIp'] : null; + } + + /** + * Set ESMTP extension handlers. + * + * @param Swift_Transport_EsmtpHandler[] $handlers + * + * @return Swift_Transport_EsmtpTransport + */ + public function setExtensionHandlers(array $handlers) + { + $assoc = array(); + foreach ($handlers as $handler) { + $assoc[$handler->getHandledKeyword()] = $handler; + } + uasort($assoc, array($this, '_sortHandlers')); + $this->_handlers = $assoc; + $this->_setHandlerParams(); + + return $this; + } + + /** + * Get ESMTP extension handlers. + * + * @return Swift_Transport_EsmtpHandler[] + */ + public function getExtensionHandlers() + { + return array_values($this->_handlers); + } + + /** + * Run a command against the buffer, expecting the given response codes. + * + * If no response codes are given, the response will not be validated. + * If codes are given, an exception will be thrown on an invalid response. + * + * @param string $command + * @param int[] $codes + * @param string[] $failures An array of failures by-reference + * + * @return string + */ + public function executeCommand($command, $codes = array(), &$failures = null) + { + $failures = (array) $failures; + $stopSignal = false; + $response = null; + foreach ($this->_getActiveHandlers() as $handler) { + $response = $handler->onCommand( + $this, $command, $codes, $failures, $stopSignal + ); + if ($stopSignal) { + return $response; + } + } + + return parent::executeCommand($command, $codes, $failures); + } + + // -- Mixin invocation code + + /** Mixin handling method for ESMTP handlers */ + public function __call($method, $args) + { + foreach ($this->_handlers as $handler) { + if (in_array(strtolower($method), + array_map('strtolower', (array) $handler->exposeMixinMethods()) + )) { + $return = call_user_func_array(array($handler, $method), $args); + // Allow fluid method calls + if (is_null($return) && substr($method, 0, 3) == 'set') { + return $this; + } else { + return $return; + } + } + } + trigger_error('Call to undefined method '.$method, E_USER_ERROR); + } + + /** Get the params to initialize the buffer */ + protected function _getBufferParams() + { + return $this->_params; + } + + /** Overridden to perform EHLO instead */ + protected function _doHeloCommand() + { + try { + $response = $this->executeCommand( + sprintf("EHLO %s\r\n", $this->_domain), array(250) + ); + } catch (Swift_TransportException $e) { + return parent::_doHeloCommand(); + } + + if ($this->_params['tls']) { + try { + $this->executeCommand("STARTTLS\r\n", array(220)); + + if (!$this->_buffer->startTLS()) { + throw new Swift_TransportException('Unable to connect with TLS encryption'); + } + + try { + $response = $this->executeCommand( + sprintf("EHLO %s\r\n", $this->_domain), array(250) + ); + } catch (Swift_TransportException $e) { + return parent::_doHeloCommand(); + } + } catch (Swift_TransportException $e) { + $this->_throwException($e); + } + } + + $this->_capabilities = $this->_getCapabilities($response); + $this->_setHandlerParams(); + foreach ($this->_getActiveHandlers() as $handler) { + $handler->afterEhlo($this); + } + } + + /** Overridden to add Extension support */ + protected function _doMailFromCommand($address) + { + $handlers = $this->_getActiveHandlers(); + $params = array(); + foreach ($handlers as $handler) { + $params = array_merge($params, (array) $handler->getMailParams()); + } + $paramStr = !empty($params) ? ' '.implode(' ', $params) : ''; + $this->executeCommand( + sprintf("MAIL FROM:<%s>%s\r\n", $address, $paramStr), array(250) + ); + } + + /** Overridden to add Extension support */ + protected function _doRcptToCommand($address) + { + $handlers = $this->_getActiveHandlers(); + $params = array(); + foreach ($handlers as $handler) { + $params = array_merge($params, (array) $handler->getRcptParams()); + } + $paramStr = !empty($params) ? ' '.implode(' ', $params) : ''; + $this->executeCommand( + sprintf("RCPT TO:<%s>%s\r\n", $address, $paramStr), array(250, 251, 252) + ); + } + + /** Determine ESMTP capabilities by function group */ + private function _getCapabilities($ehloResponse) + { + $capabilities = array(); + $ehloResponse = trim($ehloResponse); + $lines = explode("\r\n", $ehloResponse); + array_shift($lines); + foreach ($lines as $line) { + if (preg_match('/^[0-9]{3}[ -]([A-Z0-9-]+)((?:[ =].*)?)$/Di', $line, $matches)) { + $keyword = strtoupper($matches[1]); + $paramStr = strtoupper(ltrim($matches[2], ' =')); + $params = !empty($paramStr) ? explode(' ', $paramStr) : array(); + $capabilities[$keyword] = $params; + } + } + + return $capabilities; + } + + /** Set parameters which are used by each extension handler */ + private function _setHandlerParams() + { + foreach ($this->_handlers as $keyword => $handler) { + if (array_key_exists($keyword, $this->_capabilities)) { + $handler->setKeywordParams($this->_capabilities[$keyword]); + } + } + } + + /** Get ESMTP handlers which are currently ok to use */ + private function _getActiveHandlers() + { + $handlers = array(); + foreach ($this->_handlers as $keyword => $handler) { + if (array_key_exists($keyword, $this->_capabilities)) { + $handlers[] = $handler; + } + } + + return $handlers; + } + + /** Custom sort for extension handler ordering */ + private function _sortHandlers($a, $b) + { + return $a->getPriorityOver($b->getHandledKeyword()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php new file mode 100644 index 0000000..59c7302 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php @@ -0,0 +1,85 @@ +_transports); + $sent = 0; + + for ($i = 0; $i < $maxTransports + && $transport = $this->_getNextTransport(); ++$i) { + try { + if (!$transport->isStarted()) { + $transport->start(); + } + + return $transport->send($message, $failedRecipients); + } catch (Swift_TransportException $e) { + $this->_killCurrentTransport(); + } + } + + if (count($this->_transports) == 0) { + throw new Swift_TransportException( + 'All Transports in FailoverTransport failed, or no Transports available' + ); + } + + return $sent; + } + + protected function _getNextTransport() + { + if (!isset($this->_currentTransport)) { + $this->_currentTransport = parent::_getNextTransport(); + } + + return $this->_currentTransport; + } + + protected function _killCurrentTransport() + { + $this->_currentTransport = null; + parent::_killCurrentTransport(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php new file mode 100644 index 0000000..af97adf --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php @@ -0,0 +1,67 @@ +_transports = $transports; + $this->_deadTransports = array(); + } + + /** + * Get $transports to delegate to. + * + * @return Swift_Transport[] + */ + public function getTransports() + { + return array_merge($this->_transports, $this->_deadTransports); + } + + /** + * Test if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return count($this->_transports) > 0; + } + + /** + * Start this Transport mechanism. + */ + public function start() + { + $this->_transports = array_merge($this->_transports, $this->_deadTransports); + } + + /** + * Stop this Transport mechanism. + */ + public function stop() + { + foreach ($this->_transports as $transport) { + $transport->stop(); + } + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * @param Swift_Mime_Message $message + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + $maxTransports = count($this->_transports); + $sent = 0; + + for ($i = 0; $i < $maxTransports + && $transport = $this->_getNextTransport(); ++$i) { + try { + if (!$transport->isStarted()) { + $transport->start(); + } + if ($sent = $transport->send($message, $failedRecipients)) { + break; + } + } catch (Swift_TransportException $e) { + $this->_killCurrentTransport(); + } + } + + if (count($this->_transports) == 0) { + throw new Swift_TransportException( + 'All Transports in LoadBalancedTransport failed, or no Transports available' + ); + } + + return $sent; + } + + /** + * Register a plugin. + * + * @param Swift_Events_EventListener $plugin + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + foreach ($this->_transports as $transport) { + $transport->registerPlugin($plugin); + } + } + + /** + * Rotates the transport list around and returns the first instance. + * + * @return Swift_Transport + */ + protected function _getNextTransport() + { + if ($next = array_shift($this->_transports)) { + $this->_transports[] = $next; + } + + return $next; + } + + /** + * Tag the currently used (top of stack) transport as dead/useless. + */ + protected function _killCurrentTransport() + { + if ($transport = array_pop($this->_transports)) { + try { + $transport->stop(); + } catch (Exception $e) { + } + $this->_deadTransports[] = $transport; + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/MailInvoker.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/MailInvoker.php new file mode 100644 index 0000000..77489ce --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/MailInvoker.php @@ -0,0 +1,32 @@ +_invoker = $invoker; + $this->_eventDispatcher = $eventDispatcher; + } + + /** + * Not used. + */ + public function isStarted() + { + return false; + } + + /** + * Not used. + */ + public function start() + { + } + + /** + * Not used. + */ + public function stop() + { + } + + /** + * Set the additional parameters used on the mail() function. + * + * This string is formatted for sprintf() where %s is the sender address. + * + * @param string $params + * + * @return Swift_Transport_MailTransport + */ + public function setExtraParams($params) + { + $this->_extraParams = $params; + + return $this; + } + + /** + * Get the additional parameters used on the mail() function. + * + * This string is formatted for sprintf() where %s is the sender address. + * + * @return string + */ + public function getExtraParams() + { + return $this->_extraParams; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * @param Swift_Mime_Message $message + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + $failedRecipients = (array) $failedRecipients; + + if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + $count = ( + count((array) $message->getTo()) + + count((array) $message->getCc()) + + count((array) $message->getBcc()) + ); + + $toHeader = $message->getHeaders()->get('To'); + $subjectHeader = $message->getHeaders()->get('Subject'); + + if (!$toHeader) { + $this->_throwException(new Swift_TransportException('Cannot send message without a recipient')); + } + $to = $toHeader->getFieldBody(); + $subject = $subjectHeader ? $subjectHeader->getFieldBody() : ''; + + $reversePath = $this->_getReversePath($message); + + // Remove headers that would otherwise be duplicated + $message->getHeaders()->remove('To'); + $message->getHeaders()->remove('Subject'); + + $messageStr = $message->toString(); + + $message->getHeaders()->set($toHeader); + $message->getHeaders()->set($subjectHeader); + + // Separate headers from body + if (false !== $endHeaders = strpos($messageStr, "\r\n\r\n")) { + $headers = substr($messageStr, 0, $endHeaders)."\r\n"; //Keep last EOL + $body = substr($messageStr, $endHeaders + 4); + } else { + $headers = $messageStr."\r\n"; + $body = ''; + } + + unset($messageStr); + + if ("\r\n" != PHP_EOL) { + // Non-windows (not using SMTP) + $headers = str_replace("\r\n", PHP_EOL, $headers); + $body = str_replace("\r\n", PHP_EOL, $body); + } else { + // Windows, using SMTP + $headers = str_replace("\r\n.", "\r\n..", $headers); + $body = str_replace("\r\n.", "\r\n..", $body); + } + + if ($this->_invoker->mail($to, $subject, $body, $headers, + sprintf($this->_extraParams, $reversePath))) { + if ($evt) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + $evt->setFailedRecipients($failedRecipients); + $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + } else { + $failedRecipients = array_merge( + $failedRecipients, + array_keys((array) $message->getTo()), + array_keys((array) $message->getCc()), + array_keys((array) $message->getBcc()) + ); + + if ($evt) { + $evt->setResult(Swift_Events_SendEvent::RESULT_FAILED); + $evt->setFailedRecipients($failedRecipients); + $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $message->generateId(); + + $count = 0; + } + + return $count; + } + + /** + * Register a plugin. + * + * @param Swift_Events_EventListener $plugin + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->_eventDispatcher->bindEventListener($plugin); + } + + /** Throw a TransportException, first sending it to any listeners */ + protected function _throwException(Swift_TransportException $e) + { + if ($evt = $this->_eventDispatcher->createTransportExceptionEvent($this, $e)) { + $this->_eventDispatcher->dispatchEvent($evt, 'exceptionThrown'); + if (!$evt->bubbleCancelled()) { + throw $e; + } + } else { + throw $e; + } + } + + /** Determine the best-use reverse path for this message */ + private function _getReversePath(Swift_Mime_Message $message) + { + $return = $message->getReturnPath(); + $sender = $message->getSender(); + $from = $message->getFrom(); + $path = null; + if (!empty($return)) { + $path = $return; + } elseif (!empty($sender)) { + $keys = array_keys($sender); + $path = array_shift($keys); + } elseif (!empty($from)) { + $keys = array_keys($from); + $path = array_shift($keys); + } + + return $path; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php new file mode 100644 index 0000000..ad20e0e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Pretends messages have been sent, but just ignores them. + * + * @author Fabien Potencier + */ +class Swift_Transport_NullTransport implements Swift_Transport +{ + /** The event dispatcher from the plugin API */ + private $_eventDispatcher; + + /** + * Constructor. + */ + public function __construct(Swift_Events_EventDispatcher $eventDispatcher) + { + $this->_eventDispatcher = $eventDispatcher; + } + + /** + * Tests if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Transport mechanism. + */ + public function start() + { + } + + /** + * Stops this Transport mechanism. + */ + public function stop() + { + } + + /** + * Sends the given message. + * + * @param Swift_Mime_Message $message + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent emails + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + if ($evt) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $count = ( + count((array) $message->getTo()) + + count((array) $message->getCc()) + + count((array) $message->getBcc()) + ); + + return $count; + } + + /** + * Register a plugin. + * + * @param Swift_Events_EventListener $plugin + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->_eventDispatcher->bindEventListener($plugin); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php new file mode 100644 index 0000000..3ef7dec --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php @@ -0,0 +1,159 @@ + 30, + 'blocking' => 1, + 'command' => '/usr/sbin/sendmail -bs', + 'type' => Swift_Transport_IoBuffer::TYPE_PROCESS, + ); + + /** + * Create a new SendmailTransport with $buf for I/O. + * + * @param Swift_Transport_IoBuffer $buf + * @param Swift_Events_EventDispatcher $dispatcher + */ + public function __construct(Swift_Transport_IoBuffer $buf, Swift_Events_EventDispatcher $dispatcher) + { + parent::__construct($buf, $dispatcher); + } + + /** + * Start the standalone SMTP session if running in -bs mode. + */ + public function start() + { + if (false !== strpos($this->getCommand(), ' -bs')) { + parent::start(); + } + } + + /** + * Set the command to invoke. + * + * If using -t mode you are strongly advised to include -oi or -i in the flags. + * For example: /usr/sbin/sendmail -oi -t + * Swift will append a -f flag if one is not present. + * + * The recommended mode is "-bs" since it is interactive and failure notifications + * are hence possible. + * + * @param string $command + * + * @return Swift_Transport_SendmailTransport + */ + public function setCommand($command) + { + $this->_params['command'] = $command; + + return $this; + } + + /** + * Get the sendmail command which will be invoked. + * + * @return string + */ + public function getCommand() + { + return $this->_params['command']; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * + * The return value is the number of recipients who were accepted for delivery. + * NOTE: If using 'sendmail -t' you will not be aware of any failures until + * they bounce (i.e. send() will always return 100% success). + * + * @param Swift_Mime_Message $message + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + $failedRecipients = (array) $failedRecipients; + $command = $this->getCommand(); + $buffer = $this->getBuffer(); + + if (false !== strpos($command, ' -t')) { + if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + if (false === strpos($command, ' -f')) { + $command .= ' -f'.escapeshellarg($this->_getReversePath($message)); + } + + $buffer->initialize(array_merge($this->_params, array('command' => $command))); + + if (false === strpos($command, ' -i') && false === strpos($command, ' -oi')) { + $buffer->setWriteTranslations(array("\r\n" => "\n", "\n." => "\n..")); + } else { + $buffer->setWriteTranslations(array("\r\n" => "\n")); + } + + $count = count((array) $message->getTo()) + + count((array) $message->getCc()) + + count((array) $message->getBcc()) + ; + $message->toByteStream($buffer); + $buffer->flushBuffers(); + $buffer->setWriteTranslations(array()); + $buffer->terminate(); + + if ($evt) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + $evt->setFailedRecipients($failedRecipients); + $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $message->generateId(); + } elseif (false !== strpos($command, ' -bs')) { + $count = parent::send($message, $failedRecipients); + } else { + $this->_throwException(new Swift_TransportException( + 'Unsupported sendmail command flags ['.$command.']. '. + 'Must be one of "-bs" or "-t" but can include additional flags.' + )); + } + + return $count; + } + + /** Get the params to initialize the buffer */ + protected function _getBufferParams() + { + return $this->_params; + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SimpleMailInvoker.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SimpleMailInvoker.php new file mode 100644 index 0000000..21e629a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SimpleMailInvoker.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages in a queue. + * + * @author Fabien Potencier + */ +class Swift_Transport_SpoolTransport implements Swift_Transport +{ + /** The spool instance */ + private $_spool; + + /** The event dispatcher from the plugin API */ + private $_eventDispatcher; + + /** + * Constructor. + */ + public function __construct(Swift_Events_EventDispatcher $eventDispatcher, Swift_Spool $spool = null) + { + $this->_eventDispatcher = $eventDispatcher; + $this->_spool = $spool; + } + + /** + * Sets the spool object. + * + * @param Swift_Spool $spool + * + * @return Swift_Transport_SpoolTransport + */ + public function setSpool(Swift_Spool $spool) + { + $this->_spool = $spool; + + return $this; + } + + /** + * Get the spool object. + * + * @return Swift_Spool + */ + public function getSpool() + { + return $this->_spool; + } + + /** + * Tests if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Transport mechanism. + */ + public function start() + { + } + + /** + * Stops this Transport mechanism. + */ + public function stop() + { + } + + /** + * Sends the given message. + * + * @param Swift_Mime_Message $message + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent e-mail's + */ + public function send(Swift_Mime_Message $message, &$failedRecipients = null) + { + if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { + $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + $success = $this->_spool->queueMessage($message); + + if ($evt) { + $evt->setResult($success ? Swift_Events_SendEvent::RESULT_SPOOLED : Swift_Events_SendEvent::RESULT_FAILED); + $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + return 1; + } + + /** + * Register a plugin. + * + * @param Swift_Events_EventListener $plugin + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->_eventDispatcher->bindEventListener($plugin); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php new file mode 100644 index 0000000..84ebbee --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php @@ -0,0 +1,321 @@ +_replacementFactory = $replacementFactory; + } + + /** + * Perform any initialization needed, using the given $params. + * + * Parameters will vary depending upon the type of IoBuffer used. + * + * @param array $params + */ + public function initialize(array $params) + { + $this->_params = $params; + switch ($params['type']) { + case self::TYPE_PROCESS: + $this->_establishProcessConnection(); + break; + case self::TYPE_SOCKET: + default: + $this->_establishSocketConnection(); + break; + } + } + + /** + * Set an individual param on the buffer (e.g. switching to SSL). + * + * @param string $param + * @param mixed $value + */ + public function setParam($param, $value) + { + if (isset($this->_stream)) { + switch ($param) { + case 'timeout': + if ($this->_stream) { + stream_set_timeout($this->_stream, $value); + } + break; + + case 'blocking': + if ($this->_stream) { + stream_set_blocking($this->_stream, 1); + } + + } + } + $this->_params[$param] = $value; + } + + public function startTLS() + { + return stream_socket_enable_crypto($this->_stream, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); + } + + /** + * Perform any shutdown logic needed. + */ + public function terminate() + { + if (isset($this->_stream)) { + switch ($this->_params['type']) { + case self::TYPE_PROCESS: + fclose($this->_in); + fclose($this->_out); + proc_close($this->_stream); + break; + case self::TYPE_SOCKET: + default: + fclose($this->_stream); + break; + } + } + $this->_stream = null; + $this->_out = null; + $this->_in = null; + } + + /** + * Set an array of string replacements which should be made on data written + * to the buffer. + * + * This could replace LF with CRLF for example. + * + * @param string[] $replacements + */ + public function setWriteTranslations(array $replacements) + { + foreach ($this->_translations as $search => $replace) { + if (!isset($replacements[$search])) { + $this->removeFilter($search); + unset($this->_translations[$search]); + } + } + + foreach ($replacements as $search => $replace) { + if (!isset($this->_translations[$search])) { + $this->addFilter( + $this->_replacementFactory->createFilter($search, $replace), $search + ); + $this->_translations[$search] = true; + } + } + } + + /** + * Get a line of output (including any CRLF). + * + * The $sequence number comes from any writes and may or may not be used + * depending upon the implementation. + * + * @param int $sequence of last write to scan from + * + * @throws Swift_IoException + * + * @return string + */ + public function readLine($sequence) + { + if (isset($this->_out) && !feof($this->_out)) { + $line = fgets($this->_out); + if (strlen($line) == 0) { + $metas = stream_get_meta_data($this->_out); + if ($metas['timed_out']) { + throw new Swift_IoException( + 'Connection to '. + $this->_getReadConnectionDescription(). + ' Timed Out' + ); + } + } + + return $line; + } + } + + /** + * Reads $length bytes from the stream into a string and moves the pointer + * through the stream by $length. + * + * If less bytes exist than are requested the remaining bytes are given instead. + * If no bytes are remaining at all, boolean false is returned. + * + * @param int $length + * + * @throws Swift_IoException + * + * @return string|bool + */ + public function read($length) + { + if (isset($this->_out) && !feof($this->_out)) { + $ret = fread($this->_out, $length); + if (strlen($ret) == 0) { + $metas = stream_get_meta_data($this->_out); + if ($metas['timed_out']) { + throw new Swift_IoException( + 'Connection to '. + $this->_getReadConnectionDescription(). + ' Timed Out' + ); + } + } + + return $ret; + } + } + + /** Not implemented */ + public function setReadPointer($byteOffset) + { + } + + /** Flush the stream contents */ + protected function _flush() + { + if (isset($this->_in)) { + fflush($this->_in); + } + } + + /** Write this bytes to the stream */ + protected function _commit($bytes) + { + if (isset($this->_in)) { + $bytesToWrite = strlen($bytes); + $totalBytesWritten = 0; + + while ($totalBytesWritten < $bytesToWrite) { + $bytesWritten = fwrite($this->_in, substr($bytes, $totalBytesWritten)); + if (false === $bytesWritten || 0 === $bytesWritten) { + break; + } + + $totalBytesWritten += $bytesWritten; + } + + if ($totalBytesWritten > 0) { + return ++$this->_sequence; + } + } + } + + /** + * Establishes a connection to a remote server. + */ + private function _establishSocketConnection() + { + $host = $this->_params['host']; + if (!empty($this->_params['protocol'])) { + $host = $this->_params['protocol'].'://'.$host; + } + $timeout = 15; + if (!empty($this->_params['timeout'])) { + $timeout = $this->_params['timeout']; + } + $options = array(); + if (!empty($this->_params['sourceIp'])) { + $options['socket']['bindto'] = $this->_params['sourceIp'].':0'; + } + $this->_stream = @stream_socket_client($host.':'.$this->_params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, stream_context_create($options)); + if (false === $this->_stream) { + throw new Swift_TransportException( + 'Connection could not be established with host '.$this->_params['host']. + ' ['.$errstr.' #'.$errno.']' + ); + } + if (!empty($this->_params['blocking'])) { + stream_set_blocking($this->_stream, 1); + } else { + stream_set_blocking($this->_stream, 0); + } + stream_set_timeout($this->_stream, $timeout); + $this->_in = &$this->_stream; + $this->_out = &$this->_stream; + } + + /** + * Opens a process for input/output. + */ + private function _establishProcessConnection() + { + $command = $this->_params['command']; + $descriptorSpec = array( + 0 => array('pipe', 'r'), + 1 => array('pipe', 'w'), + 2 => array('pipe', 'w'), + ); + $this->_stream = proc_open($command, $descriptorSpec, $pipes); + stream_set_blocking($pipes[2], 0); + if ($err = stream_get_contents($pipes[2])) { + throw new Swift_TransportException( + 'Process could not be started ['.$err.']' + ); + } + $this->_in = &$pipes[0]; + $this->_out = &$pipes[1]; + } + + private function _getReadConnectionDescription() + { + switch ($this->_params['type']) { + case self::TYPE_PROCESS: + return 'Process '.$this->_params['command']; + break; + + case self::TYPE_SOCKET: + default: + $host = $this->_params['host']; + if (!empty($this->_params['protocol'])) { + $host = $this->_params['protocol'].'://'.$host; + } + $host .= ':'.$this->_params['port']; + + return $host; + break; + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php new file mode 100644 index 0000000..4ae2412 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php @@ -0,0 +1,29 @@ + + */ +class Swift_Validate +{ + /** + * Grammar Object. + * + * @var Swift_Mime_Grammar + */ + private static $grammar = null; + + /** + * Checks if an e-mail address matches the current grammars. + * + * @param string $email + * + * @return bool + */ + public static function email($email) + { + if (self::$grammar === null) { + self::$grammar = Swift_DependencyContainer::getInstance() + ->lookup('mime.grammar'); + } + + return (bool) preg_match( + '/^'.self::$grammar->getDefinition('addr-spec').'$/D', + $email + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php new file mode 100644 index 0000000..6023448 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php @@ -0,0 +1,23 @@ +register('cache') + ->asAliasOf('cache.array') + + ->register('tempdir') + ->asValue('/tmp') + + ->register('cache.null') + ->asSharedInstanceOf('Swift_KeyCache_NullKeyCache') + + ->register('cache.array') + ->asSharedInstanceOf('Swift_KeyCache_ArrayKeyCache') + ->withDependencies(array('cache.inputstream')) + + ->register('cache.disk') + ->asSharedInstanceOf('Swift_KeyCache_DiskKeyCache') + ->withDependencies(array('cache.inputstream', 'tempdir')) + + ->register('cache.inputstream') + ->asNewInstanceOf('Swift_KeyCache_SimpleKeyCacheInputStream') +; diff --git a/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php new file mode 100644 index 0000000..64d69d2 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php @@ -0,0 +1,9 @@ +register('message.message') + ->asNewInstanceOf('Swift_Message') + + ->register('message.mimepart') + ->asNewInstanceOf('Swift_MimePart') +; diff --git a/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php new file mode 100644 index 0000000..04f394b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php @@ -0,0 +1,123 @@ +register('properties.charset') + ->asValue('utf-8') + + ->register('mime.grammar') + ->asSharedInstanceOf('Swift_Mime_Grammar') + + ->register('mime.message') + ->asNewInstanceOf('Swift_Mime_SimpleMessage') + ->withDependencies(array( + 'mime.headerset', + 'mime.qpcontentencoder', + 'cache', + 'mime.grammar', + 'properties.charset', + )) + + ->register('mime.part') + ->asNewInstanceOf('Swift_Mime_MimePart') + ->withDependencies(array( + 'mime.headerset', + 'mime.qpcontentencoder', + 'cache', + 'mime.grammar', + 'properties.charset', + )) + + ->register('mime.attachment') + ->asNewInstanceOf('Swift_Mime_Attachment') + ->withDependencies(array( + 'mime.headerset', + 'mime.base64contentencoder', + 'cache', + 'mime.grammar', + )) + ->addConstructorValue($swift_mime_types) + + ->register('mime.embeddedfile') + ->asNewInstanceOf('Swift_Mime_EmbeddedFile') + ->withDependencies(array( + 'mime.headerset', + 'mime.base64contentencoder', + 'cache', + 'mime.grammar', + )) + ->addConstructorValue($swift_mime_types) + + ->register('mime.headerfactory') + ->asNewInstanceOf('Swift_Mime_SimpleHeaderFactory') + ->withDependencies(array( + 'mime.qpheaderencoder', + 'mime.rfc2231encoder', + 'mime.grammar', + 'properties.charset', + )) + + ->register('mime.headerset') + ->asNewInstanceOf('Swift_Mime_SimpleHeaderSet') + ->withDependencies(array('mime.headerfactory', 'properties.charset')) + + ->register('mime.qpheaderencoder') + ->asNewInstanceOf('Swift_Mime_HeaderEncoder_QpHeaderEncoder') + ->withDependencies(array('mime.charstream')) + + ->register('mime.base64headerencoder') + ->asNewInstanceOf('Swift_Mime_HeaderEncoder_Base64HeaderEncoder') + ->withDependencies(array('mime.charstream')) + + ->register('mime.charstream') + ->asNewInstanceOf('Swift_CharacterStream_NgCharacterStream') + ->withDependencies(array('mime.characterreaderfactory', 'properties.charset')) + + ->register('mime.bytecanonicalizer') + ->asSharedInstanceOf('Swift_StreamFilters_ByteArrayReplacementFilter') + ->addConstructorValue(array(array(0x0D, 0x0A), array(0x0D), array(0x0A))) + ->addConstructorValue(array(array(0x0A), array(0x0A), array(0x0D, 0x0A))) + + ->register('mime.characterreaderfactory') + ->asSharedInstanceOf('Swift_CharacterReaderFactory_SimpleCharacterReaderFactory') + + ->register('mime.safeqpcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoder') + ->withDependencies(array('mime.charstream', 'mime.bytecanonicalizer')) + + ->register('mime.rawcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_RawContentEncoder') + + ->register('mime.nativeqpcontentencoder') + ->withDependencies(array('properties.charset')) + ->asNewInstanceOf('Swift_Mime_ContentEncoder_NativeQpContentEncoder') + + ->register('mime.qpcontentencoderproxy') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoderProxy') + ->withDependencies(array('mime.safeqpcontentencoder', 'mime.nativeqpcontentencoder', 'properties.charset')) + + ->register('mime.7bitcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_PlainContentEncoder') + ->addConstructorValue('7bit') + ->addConstructorValue(true) + + ->register('mime.8bitcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_PlainContentEncoder') + ->addConstructorValue('8bit') + ->addConstructorValue(true) + + ->register('mime.base64contentencoder') + ->asSharedInstanceOf('Swift_Mime_ContentEncoder_Base64ContentEncoder') + + ->register('mime.rfc2231encoder') + ->asNewInstanceOf('Swift_Encoder_Rfc2231Encoder') + ->withDependencies(array('mime.charstream')) + + // As of PHP 5.4.7, the quoted_printable_encode() function behaves correctly. + // see https://github.com/php/php-src/commit/18bb426587d62f93c54c40bf8535eb8416603629 + ->register('mime.qpcontentencoder') + ->asAliasOf(version_compare(phpversion(), '5.4.7', '>=') ? 'mime.qpcontentencoderproxy' : 'mime.safeqpcontentencoder') +; + +unset($swift_mime_types); diff --git a/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php new file mode 100644 index 0000000..77e432c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php @@ -0,0 +1,76 @@ +register('transport.smtp') + ->asNewInstanceOf('Swift_Transport_EsmtpTransport') + ->withDependencies(array( + 'transport.buffer', + array('transport.authhandler'), + 'transport.eventdispatcher', + )) + + ->register('transport.sendmail') + ->asNewInstanceOf('Swift_Transport_SendmailTransport') + ->withDependencies(array( + 'transport.buffer', + 'transport.eventdispatcher', + )) + + ->register('transport.mail') + ->asNewInstanceOf('Swift_Transport_MailTransport') + ->withDependencies(array('transport.mailinvoker', 'transport.eventdispatcher')) + + ->register('transport.loadbalanced') + ->asNewInstanceOf('Swift_Transport_LoadBalancedTransport') + + ->register('transport.failover') + ->asNewInstanceOf('Swift_Transport_FailoverTransport') + + ->register('transport.spool') + ->asNewInstanceOf('Swift_Transport_SpoolTransport') + ->withDependencies(array('transport.eventdispatcher')) + + ->register('transport.null') + ->asNewInstanceOf('Swift_Transport_NullTransport') + ->withDependencies(array('transport.eventdispatcher')) + + ->register('transport.mailinvoker') + ->asSharedInstanceOf('Swift_Transport_SimpleMailInvoker') + + ->register('transport.buffer') + ->asNewInstanceOf('Swift_Transport_StreamBuffer') + ->withDependencies(array('transport.replacementfactory')) + + ->register('transport.authhandler') + ->asNewInstanceOf('Swift_Transport_Esmtp_AuthHandler') + ->withDependencies(array( + array( + 'transport.crammd5auth', + 'transport.loginauth', + 'transport.plainauth', + 'transport.ntlmauth', + 'transport.xoauth2auth', + ), + )) + + ->register('transport.crammd5auth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_CramMd5Authenticator') + + ->register('transport.loginauth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_LoginAuthenticator') + + ->register('transport.plainauth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_PlainAuthenticator') + + ->register('transport.xoauth2auth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_XOAuth2Authenticator') + + ->register('transport.ntlmauth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_NTLMAuthenticator') + + ->register('transport.eventdispatcher') + ->asNewInstanceOf('Swift_Events_SimpleEventDispatcher') + + ->register('transport.replacementfactory') + ->asSharedInstanceOf('Swift_StreamFilters_StringReplacementFilterFactory') +; diff --git a/vendor/swiftmailer/swiftmailer/lib/mime_types.php b/vendor/swiftmailer/swiftmailer/lib/mime_types.php new file mode 100644 index 0000000..2d7b98d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/mime_types.php @@ -0,0 +1,1007 @@ + 'text/vnd.in3d.3dml', + '3ds' => 'image/x-3ds', + '3g2' => 'video/3gpp2', + '3gp' => 'video/3gpp', + '7z' => 'application/x-7z-compressed', + 'aab' => 'application/x-authorware-bin', + 'aac' => 'audio/x-aac', + 'aam' => 'application/x-authorware-map', + 'aas' => 'application/x-authorware-seg', + 'abw' => 'application/x-abiword', + 'ac' => 'application/pkix-attr-cert', + 'acc' => 'application/vnd.americandynamics.acc', + 'ace' => 'application/x-ace-compressed', + 'acu' => 'application/vnd.acucobol', + 'acutc' => 'application/vnd.acucorp', + 'adp' => 'audio/adpcm', + 'aep' => 'application/vnd.audiograph', + 'afm' => 'application/x-font-type1', + 'afp' => 'application/vnd.ibm.modcap', + 'ahead' => 'application/vnd.ahead.space', + 'ai' => 'application/postscript', + 'aif' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'air' => 'application/vnd.adobe.air-application-installer-package+zip', + 'ait' => 'application/vnd.dvb.ait', + 'ami' => 'application/vnd.amiga.ami', + 'apk' => 'application/vnd.android.package-archive', + 'appcache' => 'text/cache-manifest', + 'apr' => 'application/vnd.lotus-approach', + 'aps' => 'application/postscript', + 'arc' => 'application/x-freearc', + 'asc' => 'application/pgp-signature', + 'asf' => 'video/x-ms-asf', + 'asm' => 'text/x-asm', + 'aso' => 'application/vnd.accpac.simply.aso', + 'asx' => 'video/x-ms-asf', + 'atc' => 'application/vnd.acucorp', + 'atom' => 'application/atom+xml', + 'atomcat' => 'application/atomcat+xml', + 'atomsvc' => 'application/atomsvc+xml', + 'atx' => 'application/vnd.antix.game-component', + 'au' => 'audio/basic', + 'avi' => 'video/x-msvideo', + 'aw' => 'application/applixware', + 'azf' => 'application/vnd.airzip.filesecure.azf', + 'azs' => 'application/vnd.airzip.filesecure.azs', + 'azw' => 'application/vnd.amazon.ebook', + 'bat' => 'application/x-msdownload', + 'bcpio' => 'application/x-bcpio', + 'bdf' => 'application/x-font-bdf', + 'bdm' => 'application/vnd.syncml.dm+wbxml', + 'bed' => 'application/vnd.realvnc.bed', + 'bh2' => 'application/vnd.fujitsu.oasysprs', + 'bin' => 'application/octet-stream', + 'blb' => 'application/x-blorb', + 'blorb' => 'application/x-blorb', + 'bmi' => 'application/vnd.bmi', + 'bmp' => 'image/bmp', + 'book' => 'application/vnd.framemaker', + 'box' => 'application/vnd.previewsystems.box', + 'boz' => 'application/x-bzip2', + 'bpk' => 'application/octet-stream', + 'btif' => 'image/prs.btif', + 'bz' => 'application/x-bzip', + 'bz2' => 'application/x-bzip2', + 'c' => 'text/x-c', + 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', + 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', + 'c4d' => 'application/vnd.clonk.c4group', + 'c4f' => 'application/vnd.clonk.c4group', + 'c4g' => 'application/vnd.clonk.c4group', + 'c4p' => 'application/vnd.clonk.c4group', + 'c4u' => 'application/vnd.clonk.c4group', + 'cab' => 'application/vnd.ms-cab-compressed', + 'caf' => 'audio/x-caf', + 'cap' => 'application/vnd.tcpdump.pcap', + 'car' => 'application/vnd.curl.car', + 'cat' => 'application/vnd.ms-pki.seccat', + 'cb7' => 'application/x-cbr', + 'cba' => 'application/x-cbr', + 'cbr' => 'application/x-cbr', + 'cbt' => 'application/x-cbr', + 'cbz' => 'application/x-cbr', + 'cc' => 'text/x-c', + 'cct' => 'application/x-director', + 'ccxml' => 'application/ccxml+xml', + 'cdbcmsg' => 'application/vnd.contact.cmsg', + 'cdf' => 'application/x-netcdf', + 'cdkey' => 'application/vnd.mediastation.cdkey', + 'cdmia' => 'application/cdmi-capability', + 'cdmic' => 'application/cdmi-container', + 'cdmid' => 'application/cdmi-domain', + 'cdmio' => 'application/cdmi-object', + 'cdmiq' => 'application/cdmi-queue', + 'cdx' => 'chemical/x-cdx', + 'cdxml' => 'application/vnd.chemdraw+xml', + 'cdy' => 'application/vnd.cinderella', + 'cer' => 'application/pkix-cert', + 'cfs' => 'application/x-cfs-compressed', + 'cgm' => 'image/cgm', + 'chat' => 'application/x-chat', + 'chm' => 'application/vnd.ms-htmlhelp', + 'chrt' => 'application/vnd.kde.kchart', + 'cif' => 'chemical/x-cif', + 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', + 'cil' => 'application/vnd.ms-artgalry', + 'cla' => 'application/vnd.claymore', + 'class' => 'application/java-vm', + 'clkk' => 'application/vnd.crick.clicker.keyboard', + 'clkp' => 'application/vnd.crick.clicker.palette', + 'clkt' => 'application/vnd.crick.clicker.template', + 'clkw' => 'application/vnd.crick.clicker.wordbank', + 'clkx' => 'application/vnd.crick.clicker', + 'clp' => 'application/x-msclip', + 'cmc' => 'application/vnd.cosmocaller', + 'cmdf' => 'chemical/x-cmdf', + 'cml' => 'chemical/x-cml', + 'cmp' => 'application/vnd.yellowriver-custom-menu', + 'cmx' => 'image/x-cmx', + 'cod' => 'application/vnd.rim.cod', + 'com' => 'application/x-msdownload', + 'conf' => 'text/plain', + 'cpio' => 'application/x-cpio', + 'cpp' => 'text/x-c', + 'cpt' => 'application/mac-compactpro', + 'crd' => 'application/x-mscardfile', + 'crl' => 'application/pkix-crl', + 'crt' => 'application/x-x509-ca-cert', + 'csh' => 'application/x-csh', + 'csml' => 'chemical/x-csml', + 'csp' => 'application/vnd.commonspace', + 'css' => 'text/css', + 'cst' => 'application/x-director', + 'csv' => 'text/csv', + 'cu' => 'application/cu-seeme', + 'curl' => 'text/vnd.curl', + 'cww' => 'application/prs.cww', + 'cxt' => 'application/x-director', + 'cxx' => 'text/x-c', + 'dae' => 'model/vnd.collada+xml', + 'daf' => 'application/vnd.mobius.daf', + 'dart' => 'application/vnd.dart', + 'dataless' => 'application/vnd.fdsn.seed', + 'davmount' => 'application/davmount+xml', + 'dbk' => 'application/docbook+xml', + 'dcr' => 'application/x-director', + 'dcurl' => 'text/vnd.curl.dcurl', + 'dd2' => 'application/vnd.oma.dd2+xml', + 'ddd' => 'application/vnd.fujixerox.ddd', + 'deb' => 'application/x-debian-package', + 'def' => 'text/plain', + 'deploy' => 'application/octet-stream', + 'der' => 'application/x-x509-ca-cert', + 'dfac' => 'application/vnd.dreamfactory', + 'dgc' => 'application/x-dgc-compressed', + 'dic' => 'text/x-c', + 'dir' => 'application/x-director', + 'dis' => 'application/vnd.mobius.dis', + 'dist' => 'application/octet-stream', + 'distz' => 'application/octet-stream', + 'djv' => 'image/vnd.djvu', + 'djvu' => 'image/vnd.djvu', + 'dll' => 'application/x-msdownload', + 'dmg' => 'application/x-apple-diskimage', + 'dmp' => 'application/vnd.tcpdump.pcap', + 'dms' => 'application/octet-stream', + 'dna' => 'application/vnd.dna', + 'doc' => 'application/msword', + 'docm' => 'application/vnd.ms-word.document.macroenabled.12', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'dot' => 'application/msword', + 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', + 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', + 'dp' => 'application/vnd.osgi.dp', + 'dpg' => 'application/vnd.dpgraph', + 'dra' => 'audio/vnd.dra', + 'dsc' => 'text/prs.lines.tag', + 'dssc' => 'application/dssc+der', + 'dtb' => 'application/x-dtbook+xml', + 'dtd' => 'application/xml-dtd', + 'dts' => 'audio/vnd.dts', + 'dtshd' => 'audio/vnd.dts.hd', + 'dump' => 'application/octet-stream', + 'dvb' => 'video/vnd.dvb.file', + 'dvi' => 'application/x-dvi', + 'dwf' => 'model/vnd.dwf', + 'dwg' => 'image/vnd.dwg', + 'dxf' => 'image/vnd.dxf', + 'dxp' => 'application/vnd.spotfire.dxp', + 'dxr' => 'application/x-director', + 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', + 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', + 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', + 'ecma' => 'application/ecmascript', + 'edm' => 'application/vnd.novadigm.edm', + 'edx' => 'application/vnd.novadigm.edx', + 'efif' => 'application/vnd.picsel', + 'ei6' => 'application/vnd.pg.osasli', + 'elc' => 'application/octet-stream', + 'emf' => 'application/x-msmetafile', + 'eml' => 'message/rfc822', + 'emma' => 'application/emma+xml', + 'emz' => 'application/x-msmetafile', + 'eol' => 'audio/vnd.digital-winds', + 'eot' => 'application/vnd.ms-fontobject', + 'eps' => 'application/postscript', + 'epub' => 'application/epub+zip', + 'es3' => 'application/vnd.eszigno3+xml', + 'esa' => 'application/vnd.osgi.subsystem', + 'esf' => 'application/vnd.epson.esf', + 'et3' => 'application/vnd.eszigno3+xml', + 'etx' => 'text/x-setext', + 'eva' => 'application/x-eva', + 'evy' => 'application/x-envoy', + 'exe' => 'application/x-msdownload', + 'exi' => 'application/exi', + 'ext' => 'application/vnd.novadigm.ext', + 'ez' => 'application/andrew-inset', + 'ez2' => 'application/vnd.ezpix-album', + 'ez3' => 'application/vnd.ezpix-package', + 'f' => 'text/x-fortran', + 'f4v' => 'video/x-f4v', + 'f77' => 'text/x-fortran', + 'f90' => 'text/x-fortran', + 'fbs' => 'image/vnd.fastbidsheet', + 'fcdt' => 'application/vnd.adobe.formscentral.fcdt', + 'fcs' => 'application/vnd.isac.fcs', + 'fdf' => 'application/vnd.fdf', + 'fe_launch' => 'application/vnd.denovo.fcselayout-link', + 'fg5' => 'application/vnd.fujitsu.oasysgp', + 'fgd' => 'application/x-director', + 'fh' => 'image/x-freehand', + 'fh4' => 'image/x-freehand', + 'fh5' => 'image/x-freehand', + 'fh7' => 'image/x-freehand', + 'fhc' => 'image/x-freehand', + 'fig' => 'application/x-xfig', + 'flac' => 'audio/x-flac', + 'fli' => 'video/x-fli', + 'flo' => 'application/vnd.micrografx.flo', + 'flv' => 'video/x-flv', + 'flw' => 'application/vnd.kde.kivio', + 'flx' => 'text/vnd.fmi.flexstor', + 'fly' => 'text/vnd.fly', + 'fm' => 'application/vnd.framemaker', + 'fnc' => 'application/vnd.frogans.fnc', + 'for' => 'text/x-fortran', + 'fpx' => 'image/vnd.fpx', + 'frame' => 'application/vnd.framemaker', + 'fsc' => 'application/vnd.fsc.weblaunch', + 'fst' => 'image/vnd.fst', + 'ftc' => 'application/vnd.fluxtime.clip', + 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', + 'fvt' => 'video/vnd.fvt', + 'fxp' => 'application/vnd.adobe.fxp', + 'fxpl' => 'application/vnd.adobe.fxp', + 'fzs' => 'application/vnd.fuzzysheet', + 'g2w' => 'application/vnd.geoplan', + 'g3' => 'image/g3fax', + 'g3w' => 'application/vnd.geospace', + 'gac' => 'application/vnd.groove-account', + 'gam' => 'application/x-tads', + 'gbr' => 'application/rpki-ghostbusters', + 'gca' => 'application/x-gca-compressed', + 'gdl' => 'model/vnd.gdl', + 'geo' => 'application/vnd.dynageo', + 'gex' => 'application/vnd.geometry-explorer', + 'ggb' => 'application/vnd.geogebra.file', + 'ggt' => 'application/vnd.geogebra.tool', + 'ghf' => 'application/vnd.groove-help', + 'gif' => 'image/gif', + 'gim' => 'application/vnd.groove-identity-message', + 'gml' => 'application/gml+xml', + 'gmx' => 'application/vnd.gmx', + 'gnumeric' => 'application/x-gnumeric', + 'gph' => 'application/vnd.flographit', + 'gpx' => 'application/gpx+xml', + 'gqf' => 'application/vnd.grafeq', + 'gqs' => 'application/vnd.grafeq', + 'gram' => 'application/srgs', + 'gramps' => 'application/x-gramps-xml', + 'gre' => 'application/vnd.geometry-explorer', + 'grv' => 'application/vnd.groove-injector', + 'grxml' => 'application/srgs+xml', + 'gsf' => 'application/x-font-ghostscript', + 'gtar' => 'application/x-gtar', + 'gtm' => 'application/vnd.groove-tool-message', + 'gtw' => 'model/vnd.gtw', + 'gv' => 'text/vnd.graphviz', + 'gxf' => 'application/gxf', + 'gxt' => 'application/vnd.geonext', + 'gz' => 'application/x-gzip', + 'h' => 'text/x-c', + 'h261' => 'video/h261', + 'h263' => 'video/h263', + 'h264' => 'video/h264', + 'hal' => 'application/vnd.hal+xml', + 'hbci' => 'application/vnd.hbci', + 'hdf' => 'application/x-hdf', + 'hh' => 'text/x-c', + 'hlp' => 'application/winhlp', + 'hpgl' => 'application/vnd.hp-hpgl', + 'hpid' => 'application/vnd.hp-hpid', + 'hps' => 'application/vnd.hp-hps', + 'hqx' => 'application/mac-binhex40', + 'htke' => 'application/vnd.kenameaapp', + 'htm' => 'text/html', + 'html' => 'text/html', + 'hvd' => 'application/vnd.yamaha.hv-dic', + 'hvp' => 'application/vnd.yamaha.hv-voice', + 'hvs' => 'application/vnd.yamaha.hv-script', + 'i2g' => 'application/vnd.intergeo', + 'icc' => 'application/vnd.iccprofile', + 'ice' => 'x-conference/x-cooltalk', + 'icm' => 'application/vnd.iccprofile', + 'ico' => 'image/x-icon', + 'ics' => 'text/calendar', + 'ief' => 'image/ief', + 'ifb' => 'text/calendar', + 'ifm' => 'application/vnd.shana.informed.formdata', + 'iges' => 'model/iges', + 'igl' => 'application/vnd.igloader', + 'igm' => 'application/vnd.insors.igm', + 'igs' => 'model/iges', + 'igx' => 'application/vnd.micrografx.igx', + 'iif' => 'application/vnd.shana.informed.interchange', + 'imp' => 'application/vnd.accpac.simply.imp', + 'ims' => 'application/vnd.ms-ims', + 'in' => 'text/plain', + 'ink' => 'application/inkml+xml', + 'inkml' => 'application/inkml+xml', + 'install' => 'application/x-install-instructions', + 'iota' => 'application/vnd.astraea-software.iota', + 'ipfix' => 'application/ipfix', + 'ipk' => 'application/vnd.shana.informed.package', + 'irm' => 'application/vnd.ibm.rights-management', + 'irp' => 'application/vnd.irepository.package+xml', + 'iso' => 'application/x-iso9660-image', + 'itp' => 'application/vnd.shana.informed.formtemplate', + 'ivp' => 'application/vnd.immervision-ivp', + 'ivu' => 'application/vnd.immervision-ivu', + 'jad' => 'text/vnd.sun.j2me.app-descriptor', + 'jam' => 'application/vnd.jam', + 'jar' => 'application/java-archive', + 'java' => 'text/x-java-source', + 'jisp' => 'application/vnd.jisp', + 'jlt' => 'application/vnd.hp-jlyt', + 'jnlp' => 'application/x-java-jnlp-file', + 'joda' => 'application/vnd.joost.joda-archive', + 'jpe' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'jpgm' => 'video/jpm', + 'jpgv' => 'video/jpeg', + 'jpm' => 'video/jpm', + 'js' => 'application/javascript', + 'json' => 'application/json', + 'jsonml' => 'application/jsonml+json', + 'kar' => 'audio/midi', + 'karbon' => 'application/vnd.kde.karbon', + 'kfo' => 'application/vnd.kde.kformula', + 'kia' => 'application/vnd.kidspiration', + 'kml' => 'application/vnd.google-earth.kml+xml', + 'kmz' => 'application/vnd.google-earth.kmz', + 'kne' => 'application/vnd.kinar', + 'knp' => 'application/vnd.kinar', + 'kon' => 'application/vnd.kde.kontour', + 'kpr' => 'application/vnd.kde.kpresenter', + 'kpt' => 'application/vnd.kde.kpresenter', + 'kpxx' => 'application/vnd.ds-keypoint', + 'ksp' => 'application/vnd.kde.kspread', + 'ktr' => 'application/vnd.kahootz', + 'ktx' => 'image/ktx', + 'ktz' => 'application/vnd.kahootz', + 'kwd' => 'application/vnd.kde.kword', + 'kwt' => 'application/vnd.kde.kword', + 'lasxml' => 'application/vnd.las.las+xml', + 'latex' => 'application/x-latex', + 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', + 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', + 'les' => 'application/vnd.hhe.lesson-player', + 'lha' => 'application/x-lzh-compressed', + 'link66' => 'application/vnd.route66.link66+xml', + 'list' => 'text/plain', + 'list3820' => 'application/vnd.ibm.modcap', + 'listafp' => 'application/vnd.ibm.modcap', + 'lnk' => 'application/x-ms-shortcut', + 'log' => 'text/plain', + 'lostxml' => 'application/lost+xml', + 'lrf' => 'application/octet-stream', + 'lrm' => 'application/vnd.ms-lrm', + 'ltf' => 'application/vnd.frogans.ltf', + 'lvp' => 'audio/vnd.lucent.voice', + 'lwp' => 'application/vnd.lotus-wordpro', + 'lzh' => 'application/x-lzh-compressed', + 'm13' => 'application/x-msmediaview', + 'm14' => 'application/x-msmediaview', + 'm1v' => 'video/mpeg', + 'm21' => 'application/mp21', + 'm2a' => 'audio/mpeg', + 'm2v' => 'video/mpeg', + 'm3a' => 'audio/mpeg', + 'm3u' => 'audio/x-mpegurl', + 'm3u8' => 'application/vnd.apple.mpegurl', + 'm4a' => 'audio/mp4', + 'm4u' => 'video/vnd.mpegurl', + 'm4v' => 'video/x-m4v', + 'ma' => 'application/mathematica', + 'mads' => 'application/mads+xml', + 'mag' => 'application/vnd.ecowin.chart', + 'maker' => 'application/vnd.framemaker', + 'man' => 'text/troff', + 'mar' => 'application/octet-stream', + 'mathml' => 'application/mathml+xml', + 'mb' => 'application/mathematica', + 'mbk' => 'application/vnd.mobius.mbk', + 'mbox' => 'application/mbox', + 'mc1' => 'application/vnd.medcalcdata', + 'mcd' => 'application/vnd.mcd', + 'mcurl' => 'text/vnd.curl.mcurl', + 'mdb' => 'application/x-msaccess', + 'mdi' => 'image/vnd.ms-modi', + 'me' => 'text/troff', + 'mesh' => 'model/mesh', + 'meta4' => 'application/metalink4+xml', + 'metalink' => 'application/metalink+xml', + 'mets' => 'application/mets+xml', + 'mfm' => 'application/vnd.mfmp', + 'mft' => 'application/rpki-manifest', + 'mgp' => 'application/vnd.osgeo.mapguide.package', + 'mgz' => 'application/vnd.proteus.magazine', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mie' => 'application/x-mie', + 'mif' => 'application/vnd.mif', + 'mime' => 'message/rfc822', + 'mj2' => 'video/mj2', + 'mjp2' => 'video/mj2', + 'mk3d' => 'video/x-matroska', + 'mka' => 'audio/x-matroska', + 'mks' => 'video/x-matroska', + 'mkv' => 'video/x-matroska', + 'mlp' => 'application/vnd.dolby.mlp', + 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', + 'mmf' => 'application/vnd.smaf', + 'mmr' => 'image/vnd.fujixerox.edmics-mmr', + 'mng' => 'video/x-mng', + 'mny' => 'application/x-msmoney', + 'mobi' => 'application/x-mobipocket-ebook', + 'mods' => 'application/mods+xml', + 'mov' => 'video/quicktime', + 'movie' => 'video/x-sgi-movie', + 'mp2' => 'audio/mpeg', + 'mp21' => 'application/mp21', + 'mp2a' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', + 'mp4a' => 'audio/mp4', + 'mp4s' => 'application/mp4', + 'mp4v' => 'video/mp4', + 'mpc' => 'application/vnd.mophun.certificate', + 'mpe' => 'video/mpeg', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpg4' => 'video/mp4', + 'mpga' => 'audio/mpeg', + 'mpkg' => 'application/vnd.apple.installer+xml', + 'mpm' => 'application/vnd.blueice.multipass', + 'mpn' => 'application/vnd.mophun.application', + 'mpp' => 'application/vnd.ms-project', + 'mpt' => 'application/vnd.ms-project', + 'mpy' => 'application/vnd.ibm.minipay', + 'mqy' => 'application/vnd.mobius.mqy', + 'mrc' => 'application/marc', + 'mrcx' => 'application/marcxml+xml', + 'ms' => 'text/troff', + 'mscml' => 'application/mediaservercontrol+xml', + 'mseed' => 'application/vnd.fdsn.mseed', + 'mseq' => 'application/vnd.mseq', + 'msf' => 'application/vnd.epson.msf', + 'msh' => 'model/mesh', + 'msi' => 'application/x-msdownload', + 'msl' => 'application/vnd.mobius.msl', + 'msty' => 'application/vnd.muvee.style', + 'mts' => 'model/vnd.mts', + 'mus' => 'application/vnd.musician', + 'musicxml' => 'application/vnd.recordare.musicxml+xml', + 'mvb' => 'application/x-msmediaview', + 'mwf' => 'application/vnd.mfer', + 'mxf' => 'application/mxf', + 'mxl' => 'application/vnd.recordare.musicxml', + 'mxml' => 'application/xv+xml', + 'mxs' => 'application/vnd.triscape.mxs', + 'mxu' => 'video/vnd.mpegurl', + 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', + 'n3' => 'text/n3', + 'nb' => 'application/mathematica', + 'nbp' => 'application/vnd.wolfram.player', + 'nc' => 'application/x-netcdf', + 'ncx' => 'application/x-dtbncx+xml', + 'nfo' => 'text/x-nfo', + 'ngdat' => 'application/vnd.nokia.n-gage.data', + 'nitf' => 'application/vnd.nitf', + 'nlu' => 'application/vnd.neurolanguage.nlu', + 'nml' => 'application/vnd.enliven', + 'nnd' => 'application/vnd.noblenet-directory', + 'nns' => 'application/vnd.noblenet-sealer', + 'nnw' => 'application/vnd.noblenet-web', + 'npx' => 'image/vnd.net-fpx', + 'nsc' => 'application/x-conference', + 'nsf' => 'application/vnd.lotus-notes', + 'ntf' => 'application/vnd.nitf', + 'nzb' => 'application/x-nzb', + 'oa2' => 'application/vnd.fujitsu.oasys2', + 'oa3' => 'application/vnd.fujitsu.oasys3', + 'oas' => 'application/vnd.fujitsu.oasys', + 'obd' => 'application/x-msbinder', + 'obj' => 'application/x-tgif', + 'oda' => 'application/oda', + 'odb' => 'application/vnd.oasis.opendocument.database', + 'odc' => 'application/vnd.oasis.opendocument.chart', + 'odf' => 'application/vnd.oasis.opendocument.formula', + 'odft' => 'application/vnd.oasis.opendocument.formula-template', + 'odg' => 'application/vnd.oasis.opendocument.graphics', + 'odi' => 'application/vnd.oasis.opendocument.image', + 'odm' => 'application/vnd.oasis.opendocument.text-master', + 'odp' => 'application/vnd.oasis.opendocument.presentation', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'odt' => 'application/vnd.oasis.opendocument.text', + 'oga' => 'audio/ogg', + 'ogg' => 'audio/ogg', + 'ogv' => 'video/ogg', + 'ogx' => 'application/ogg', + 'omdoc' => 'application/omdoc+xml', + 'onepkg' => 'application/onenote', + 'onetmp' => 'application/onenote', + 'onetoc' => 'application/onenote', + 'onetoc2' => 'application/onenote', + 'opf' => 'application/oebps-package+xml', + 'opml' => 'text/x-opml', + 'oprc' => 'application/vnd.palm', + 'org' => 'application/vnd.lotus-organizer', + 'osf' => 'application/vnd.yamaha.openscoreformat', + 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', + 'otc' => 'application/vnd.oasis.opendocument.chart-template', + 'otf' => 'application/x-font-otf', + 'otg' => 'application/vnd.oasis.opendocument.graphics-template', + 'oth' => 'application/vnd.oasis.opendocument.text-web', + 'oti' => 'application/vnd.oasis.opendocument.image-template', + 'otp' => 'application/vnd.oasis.opendocument.presentation-template', + 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', + 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'oxps' => 'application/oxps', + 'oxt' => 'application/vnd.openofficeorg.extension', + 'p' => 'text/x-pascal', + 'p10' => 'application/pkcs10', + 'p12' => 'application/x-pkcs12', + 'p7b' => 'application/x-pkcs7-certificates', + 'p7c' => 'application/pkcs7-mime', + 'p7m' => 'application/pkcs7-mime', + 'p7r' => 'application/x-pkcs7-certreqresp', + 'p7s' => 'application/pkcs7-signature', + 'p8' => 'application/pkcs8', + 'pas' => 'text/x-pascal', + 'paw' => 'application/vnd.pawaafile', + 'pbd' => 'application/vnd.powerbuilder6', + 'pbm' => 'image/x-portable-bitmap', + 'pcap' => 'application/vnd.tcpdump.pcap', + 'pcf' => 'application/x-font-pcf', + 'pcl' => 'application/vnd.hp-pcl', + 'pclxl' => 'application/vnd.hp-pclxl', + 'pct' => 'image/x-pict', + 'pcurl' => 'application/vnd.curl.pcurl', + 'pcx' => 'image/x-pcx', + 'pdb' => 'application/vnd.palm', + 'pdf' => 'application/pdf', + 'pfa' => 'application/x-font-type1', + 'pfb' => 'application/x-font-type1', + 'pfm' => 'application/x-font-type1', + 'pfr' => 'application/font-tdpfr', + 'pfx' => 'application/x-pkcs12', + 'pgm' => 'image/x-portable-graymap', + 'pgn' => 'application/x-chess-pgn', + 'pgp' => 'application/pgp-encrypted', + 'php' => 'application/x-php', + 'php3' => 'application/x-php', + 'php4' => 'application/x-php', + 'php5' => 'application/x-php', + 'pic' => 'image/x-pict', + 'pkg' => 'application/octet-stream', + 'pki' => 'application/pkixcmp', + 'pkipath' => 'application/pkix-pkipath', + 'plb' => 'application/vnd.3gpp.pic-bw-large', + 'plc' => 'application/vnd.mobius.plc', + 'plf' => 'application/vnd.pocketlearn', + 'pls' => 'application/pls+xml', + 'pml' => 'application/vnd.ctc-posml', + 'png' => 'image/png', + 'pnm' => 'image/x-portable-anymap', + 'portpkg' => 'application/vnd.macports.portpkg', + 'pot' => 'application/vnd.ms-powerpoint', + 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', + 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', + 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', + 'ppd' => 'application/vnd.cups-ppd', + 'ppm' => 'image/x-portable-pixmap', + 'pps' => 'application/vnd.ms-powerpoint', + 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', + 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'pqa' => 'application/vnd.palm', + 'prc' => 'application/x-mobipocket-ebook', + 'pre' => 'application/vnd.lotus-freelance', + 'prf' => 'application/pics-rules', + 'ps' => 'application/postscript', + 'psb' => 'application/vnd.3gpp.pic-bw-small', + 'psd' => 'image/vnd.adobe.photoshop', + 'psf' => 'application/x-font-linux-psf', + 'pskcxml' => 'application/pskc+xml', + 'ptid' => 'application/vnd.pvi.ptid1', + 'pub' => 'application/x-mspublisher', + 'pvb' => 'application/vnd.3gpp.pic-bw-var', + 'pwn' => 'application/vnd.3m.post-it-notes', + 'pya' => 'audio/vnd.ms-playready.media.pya', + 'pyv' => 'video/vnd.ms-playready.media.pyv', + 'qam' => 'application/vnd.epson.quickanime', + 'qbo' => 'application/vnd.intu.qbo', + 'qfx' => 'application/vnd.intu.qfx', + 'qps' => 'application/vnd.publishare-delta-tree', + 'qt' => 'video/quicktime', + 'qwd' => 'application/vnd.quark.quarkxpress', + 'qwt' => 'application/vnd.quark.quarkxpress', + 'qxb' => 'application/vnd.quark.quarkxpress', + 'qxd' => 'application/vnd.quark.quarkxpress', + 'qxl' => 'application/vnd.quark.quarkxpress', + 'qxt' => 'application/vnd.quark.quarkxpress', + 'ra' => 'audio/x-pn-realaudio', + 'ram' => 'audio/x-pn-realaudio', + 'rar' => 'application/x-rar-compressed', + 'ras' => 'image/x-cmu-raster', + 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', + 'rdf' => 'application/rdf+xml', + 'rdz' => 'application/vnd.data-vision.rdz', + 'rep' => 'application/vnd.businessobjects', + 'res' => 'application/x-dtbresource+xml', + 'rgb' => 'image/x-rgb', + 'rif' => 'application/reginfo+xml', + 'rip' => 'audio/vnd.rip', + 'ris' => 'application/x-research-info-systems', + 'rl' => 'application/resource-lists+xml', + 'rlc' => 'image/vnd.fujixerox.edmics-rlc', + 'rld' => 'application/resource-lists-diff+xml', + 'rm' => 'application/vnd.rn-realmedia', + 'rmi' => 'audio/midi', + 'rmp' => 'audio/x-pn-realaudio-plugin', + 'rms' => 'application/vnd.jcp.javame.midlet-rms', + 'rmvb' => 'application/vnd.rn-realmedia-vbr', + 'rnc' => 'application/relax-ng-compact-syntax', + 'roa' => 'application/rpki-roa', + 'roff' => 'text/troff', + 'rp9' => 'application/vnd.cloanto.rp9', + 'rpss' => 'application/vnd.nokia.radio-presets', + 'rpst' => 'application/vnd.nokia.radio-preset', + 'rq' => 'application/sparql-query', + 'rs' => 'application/rls-services+xml', + 'rsd' => 'application/rsd+xml', + 'rss' => 'application/rss+xml', + 'rtf' => 'application/rtf', + 'rtx' => 'text/richtext', + 's' => 'text/x-asm', + 's3m' => 'audio/s3m', + 'saf' => 'application/vnd.yamaha.smaf-audio', + 'sbml' => 'application/sbml+xml', + 'sc' => 'application/vnd.ibm.secure-container', + 'scd' => 'application/x-msschedule', + 'scm' => 'application/vnd.lotus-screencam', + 'scq' => 'application/scvp-cv-request', + 'scs' => 'application/scvp-cv-response', + 'scurl' => 'text/vnd.curl.scurl', + 'sda' => 'application/vnd.stardivision.draw', + 'sdc' => 'application/vnd.stardivision.calc', + 'sdd' => 'application/vnd.stardivision.impress', + 'sdkd' => 'application/vnd.solent.sdkm+xml', + 'sdkm' => 'application/vnd.solent.sdkm+xml', + 'sdp' => 'application/sdp', + 'sdw' => 'application/vnd.stardivision.writer', + 'see' => 'application/vnd.seemail', + 'seed' => 'application/vnd.fdsn.seed', + 'sema' => 'application/vnd.sema', + 'semd' => 'application/vnd.semd', + 'semf' => 'application/vnd.semf', + 'ser' => 'application/java-serialized-object', + 'setpay' => 'application/set-payment-initiation', + 'setreg' => 'application/set-registration-initiation', + 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', + 'sfs' => 'application/vnd.spotfire.sfs', + 'sfv' => 'text/x-sfv', + 'sgi' => 'image/sgi', + 'sgl' => 'application/vnd.stardivision.writer-global', + 'sgm' => 'text/sgml', + 'sgml' => 'text/sgml', + 'sh' => 'application/x-sh', + 'shar' => 'application/x-shar', + 'shf' => 'application/shf+xml', + 'sid' => 'image/x-mrsid-image', + 'sig' => 'application/pgp-signature', + 'sil' => 'audio/silk', + 'silo' => 'model/mesh', + 'sis' => 'application/vnd.symbian.install', + 'sisx' => 'application/vnd.symbian.install', + 'sit' => 'application/x-stuffit', + 'sitx' => 'application/x-stuffitx', + 'skd' => 'application/vnd.koan', + 'skm' => 'application/vnd.koan', + 'skp' => 'application/vnd.koan', + 'skt' => 'application/vnd.koan', + 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', + 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', + 'slt' => 'application/vnd.epson.salt', + 'sm' => 'application/vnd.stepmania.stepchart', + 'smf' => 'application/vnd.stardivision.math', + 'smi' => 'application/smil+xml', + 'smil' => 'application/smil+xml', + 'smv' => 'video/x-smv', + 'smzip' => 'application/vnd.stepmania.package', + 'snd' => 'audio/basic', + 'snf' => 'application/x-font-snf', + 'so' => 'application/octet-stream', + 'spc' => 'application/x-pkcs7-certificates', + 'spf' => 'application/vnd.yamaha.smaf-phrase', + 'spl' => 'application/x-futuresplash', + 'spot' => 'text/vnd.in3d.spot', + 'spp' => 'application/scvp-vp-response', + 'spq' => 'application/scvp-vp-request', + 'spx' => 'audio/ogg', + 'sql' => 'application/x-sql', + 'src' => 'application/x-wais-source', + 'srt' => 'application/x-subrip', + 'sru' => 'application/sru+xml', + 'srx' => 'application/sparql-results+xml', + 'ssdl' => 'application/ssdl+xml', + 'sse' => 'application/vnd.kodak-descriptor', + 'ssf' => 'application/vnd.epson.ssf', + 'ssml' => 'application/ssml+xml', + 'st' => 'application/vnd.sailingtracker.track', + 'stc' => 'application/vnd.sun.xml.calc.template', + 'std' => 'application/vnd.sun.xml.draw.template', + 'stf' => 'application/vnd.wt.stf', + 'sti' => 'application/vnd.sun.xml.impress.template', + 'stk' => 'application/hyperstudio', + 'stl' => 'application/vnd.ms-pki.stl', + 'str' => 'application/vnd.pg.format', + 'stw' => 'application/vnd.sun.xml.writer.template', + 'sub' => 'text/vnd.dvb.subtitle', + 'sus' => 'application/vnd.sus-calendar', + 'susp' => 'application/vnd.sus-calendar', + 'sv4cpio' => 'application/x-sv4cpio', + 'sv4crc' => 'application/x-sv4crc', + 'svc' => 'application/vnd.dvb.service', + 'svd' => 'application/vnd.svd', + 'svg' => 'image/svg+xml', + 'svgz' => 'image/svg+xml', + 'swa' => 'application/x-director', + 'swf' => 'application/x-shockwave-flash', + 'swi' => 'application/vnd.aristanetworks.swi', + 'sxc' => 'application/vnd.sun.xml.calc', + 'sxd' => 'application/vnd.sun.xml.draw', + 'sxg' => 'application/vnd.sun.xml.writer.global', + 'sxi' => 'application/vnd.sun.xml.impress', + 'sxm' => 'application/vnd.sun.xml.math', + 'sxw' => 'application/vnd.sun.xml.writer', + 't' => 'text/troff', + 't3' => 'application/x-t3vm-image', + 'taglet' => 'application/vnd.mynfc', + 'tao' => 'application/vnd.tao.intent-module-archive', + 'tar' => 'application/x-tar', + 'tcap' => 'application/vnd.3gpp2.tcap', + 'tcl' => 'application/x-tcl', + 'teacher' => 'application/vnd.smart.teacher', + 'tei' => 'application/tei+xml', + 'teicorpus' => 'application/tei+xml', + 'tex' => 'application/x-tex', + 'texi' => 'application/x-texinfo', + 'texinfo' => 'application/x-texinfo', + 'text' => 'text/plain', + 'tfi' => 'application/thraud+xml', + 'tfm' => 'application/x-tex-tfm', + 'tga' => 'image/x-tga', + 'thmx' => 'application/vnd.ms-officetheme', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'tmo' => 'application/vnd.tmobile-livetv', + 'torrent' => 'application/x-bittorrent', + 'tpl' => 'application/vnd.groove-tool-template', + 'tpt' => 'application/vnd.trid.tpt', + 'tr' => 'text/troff', + 'tra' => 'application/vnd.trueapp', + 'trm' => 'application/x-msterminal', + 'tsd' => 'application/timestamped-data', + 'tsv' => 'text/tab-separated-values', + 'ttc' => 'application/x-font-ttf', + 'ttf' => 'application/x-font-ttf', + 'ttl' => 'text/turtle', + 'twd' => 'application/vnd.simtech-mindmapper', + 'twds' => 'application/vnd.simtech-mindmapper', + 'txd' => 'application/vnd.genomatix.tuxedo', + 'txf' => 'application/vnd.mobius.txf', + 'txt' => 'text/plain', + 'u32' => 'application/x-authorware-bin', + 'udeb' => 'application/x-debian-package', + 'ufd' => 'application/vnd.ufdl', + 'ufdl' => 'application/vnd.ufdl', + 'ulx' => 'application/x-glulx', + 'umj' => 'application/vnd.umajin', + 'unityweb' => 'application/vnd.unity', + 'uoml' => 'application/vnd.uoml+xml', + 'uri' => 'text/uri-list', + 'uris' => 'text/uri-list', + 'urls' => 'text/uri-list', + 'ustar' => 'application/x-ustar', + 'utz' => 'application/vnd.uiq.theme', + 'uu' => 'text/x-uuencode', + 'uva' => 'audio/vnd.dece.audio', + 'uvd' => 'application/vnd.dece.data', + 'uvf' => 'application/vnd.dece.data', + 'uvg' => 'image/vnd.dece.graphic', + 'uvh' => 'video/vnd.dece.hd', + 'uvi' => 'image/vnd.dece.graphic', + 'uvm' => 'video/vnd.dece.mobile', + 'uvp' => 'video/vnd.dece.pd', + 'uvs' => 'video/vnd.dece.sd', + 'uvt' => 'application/vnd.dece.ttml+xml', + 'uvu' => 'video/vnd.uvvu.mp4', + 'uvv' => 'video/vnd.dece.video', + 'uvva' => 'audio/vnd.dece.audio', + 'uvvd' => 'application/vnd.dece.data', + 'uvvf' => 'application/vnd.dece.data', + 'uvvg' => 'image/vnd.dece.graphic', + 'uvvh' => 'video/vnd.dece.hd', + 'uvvi' => 'image/vnd.dece.graphic', + 'uvvm' => 'video/vnd.dece.mobile', + 'uvvp' => 'video/vnd.dece.pd', + 'uvvs' => 'video/vnd.dece.sd', + 'uvvt' => 'application/vnd.dece.ttml+xml', + 'uvvu' => 'video/vnd.uvvu.mp4', + 'uvvv' => 'video/vnd.dece.video', + 'uvvx' => 'application/vnd.dece.unspecified', + 'uvvz' => 'application/vnd.dece.zip', + 'uvx' => 'application/vnd.dece.unspecified', + 'uvz' => 'application/vnd.dece.zip', + 'vcard' => 'text/vcard', + 'vcd' => 'application/x-cdlink', + 'vcf' => 'text/x-vcard', + 'vcg' => 'application/vnd.groove-vcard', + 'vcs' => 'text/x-vcalendar', + 'vcx' => 'application/vnd.vcx', + 'vis' => 'application/vnd.visionary', + 'viv' => 'video/vnd.vivo', + 'vob' => 'video/x-ms-vob', + 'vor' => 'application/vnd.stardivision.writer', + 'vox' => 'application/x-authorware-bin', + 'vrml' => 'model/vrml', + 'vsd' => 'application/vnd.visio', + 'vsf' => 'application/vnd.vsf', + 'vss' => 'application/vnd.visio', + 'vst' => 'application/vnd.visio', + 'vsw' => 'application/vnd.visio', + 'vtu' => 'model/vnd.vtu', + 'vxml' => 'application/voicexml+xml', + 'w3d' => 'application/x-director', + 'wad' => 'application/x-doom', + 'wav' => 'audio/x-wav', + 'wax' => 'audio/x-ms-wax', + 'wbmp' => 'image/vnd.wap.wbmp', + 'wbs' => 'application/vnd.criticaltools.wbs+xml', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wcm' => 'application/vnd.ms-works', + 'wdb' => 'application/vnd.ms-works', + 'wdp' => 'image/vnd.ms-photo', + 'weba' => 'audio/webm', + 'webm' => 'video/webm', + 'webp' => 'image/webp', + 'wg' => 'application/vnd.pmi.widget', + 'wgt' => 'application/widget', + 'wks' => 'application/vnd.ms-works', + 'wm' => 'video/x-ms-wm', + 'wma' => 'audio/x-ms-wma', + 'wmd' => 'application/x-ms-wmd', + 'wmf' => 'application/x-msmetafile', + 'wml' => 'text/vnd.wap.wml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'wmls' => 'text/vnd.wap.wmlscript', + 'wmlsc' => 'application/vnd.wap.wmlscriptc', + 'wmv' => 'video/x-ms-wmv', + 'wmx' => 'video/x-ms-wmx', + 'wmz' => 'application/x-msmetafile', + 'woff' => 'application/font-woff', + 'wpd' => 'application/vnd.wordperfect', + 'wpl' => 'application/vnd.ms-wpl', + 'wps' => 'application/vnd.ms-works', + 'wqd' => 'application/vnd.wqd', + 'wri' => 'application/x-mswrite', + 'wrl' => 'model/vrml', + 'wsdl' => 'application/wsdl+xml', + 'wspolicy' => 'application/wspolicy+xml', + 'wtb' => 'application/vnd.webturbo', + 'wvx' => 'video/x-ms-wvx', + 'x32' => 'application/x-authorware-bin', + 'x3d' => 'model/x3d+xml', + 'x3db' => 'model/x3d+binary', + 'x3dbz' => 'model/x3d+binary', + 'x3dv' => 'model/x3d+vrml', + 'x3dvz' => 'model/x3d+vrml', + 'x3dz' => 'model/x3d+xml', + 'xaml' => 'application/xaml+xml', + 'xap' => 'application/x-silverlight-app', + 'xar' => 'application/vnd.xara', + 'xbap' => 'application/x-ms-xbap', + 'xbd' => 'application/vnd.fujixerox.docuworks.binder', + 'xbm' => 'image/x-xbitmap', + 'xdf' => 'application/xcap-diff+xml', + 'xdm' => 'application/vnd.syncml.dm+xml', + 'xdp' => 'application/vnd.adobe.xdp+xml', + 'xdssc' => 'application/dssc+xml', + 'xdw' => 'application/vnd.fujixerox.docuworks', + 'xenc' => 'application/xenc+xml', + 'xer' => 'application/patch-ops-error+xml', + 'xfdf' => 'application/vnd.adobe.xfdf', + 'xfdl' => 'application/vnd.xfdl', + 'xht' => 'application/xhtml+xml', + 'xhtml' => 'application/xhtml+xml', + 'xhvml' => 'application/xv+xml', + 'xif' => 'image/vnd.xiff', + 'xla' => 'application/vnd.ms-excel', + 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', + 'xlc' => 'application/vnd.ms-excel', + 'xlf' => 'application/x-xliff+xml', + 'xlm' => 'application/vnd.ms-excel', + 'xls' => 'application/vnd.ms-excel', + 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', + 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xlt' => 'application/vnd.ms-excel', + 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', + 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', + 'xlw' => 'application/vnd.ms-excel', + 'xm' => 'audio/xm', + 'xml' => 'application/xml', + 'xo' => 'application/vnd.olpc-sugar', + 'xop' => 'application/xop+xml', + 'xpi' => 'application/x-xpinstall', + 'xpl' => 'application/xproc+xml', + 'xpm' => 'image/x-xpixmap', + 'xpr' => 'application/vnd.is-xpr', + 'xps' => 'application/vnd.ms-xpsdocument', + 'xpw' => 'application/vnd.intercon.formnet', + 'xpx' => 'application/vnd.intercon.formnet', + 'xsl' => 'application/xml', + 'xslt' => 'application/xslt+xml', + 'xsm' => 'application/vnd.syncml+xml', + 'xspf' => 'application/xspf+xml', + 'xul' => 'application/vnd.mozilla.xul+xml', + 'xvm' => 'application/xv+xml', + 'xvml' => 'application/xv+xml', + 'xwd' => 'image/x-xwindowdump', + 'xyz' => 'chemical/x-xyz', + 'xz' => 'application/x-xz', + 'yang' => 'application/yang', + 'yin' => 'application/yin+xml', + 'z1' => 'application/x-zmachine', + 'z2' => 'application/x-zmachine', + 'z3' => 'application/x-zmachine', + 'z4' => 'application/x-zmachine', + 'z5' => 'application/x-zmachine', + 'z6' => 'application/x-zmachine', + 'z7' => 'application/x-zmachine', + 'z8' => 'application/x-zmachine', + 'zaz' => 'application/vnd.zzazz.deck+xml', + 'zip' => 'application/zip', + 'zir' => 'application/vnd.zul', + 'zirz' => 'application/vnd.zul', + 'zmm' => 'application/vnd.handheld-entertainment+xml', + '123' => 'application/vnd.lotus-1-2-3', +); diff --git a/vendor/swiftmailer/swiftmailer/lib/preferences.php b/vendor/swiftmailer/swiftmailer/lib/preferences.php new file mode 100644 index 0000000..e519501 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/preferences.php @@ -0,0 +1,25 @@ +setCharset('utf-8'); + +// Without these lines the default caching mechanism is "array" but this uses a lot of memory. +// If possible, use a disk cache to enable attaching large attachments etc. +// You can override the default temporary directory by setting the TMPDIR environment variable. +if (@is_writable($tmpDir = sys_get_temp_dir())) { + $preferences->setTempDir($tmpDir)->setCacheType('disk'); +} + +// this should only be done when Swiftmailer won't use the native QP content encoder +// see mime_deps.php +if (version_compare(phpversion(), '5.4.7', '<')) { + $preferences->setQPDotEscape(false); +} diff --git a/vendor/swiftmailer/swiftmailer/lib/swift_init.php b/vendor/swiftmailer/swiftmailer/lib/swift_init.php new file mode 100644 index 0000000..5c4bae4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/lib/swift_init.php @@ -0,0 +1,28 @@ + 'application/x-php', + 'php3' => 'application/x-php', + 'php4' => 'application/x-php', + 'php5' => 'application/x-php', + 'zip' => 'application/zip', + 'gif' => 'image/gif', + 'png' => 'image/png', + 'css' => 'text/css', + 'js' => 'text/javascript', + 'txt' => 'text/plain', + 'aif' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'avi' => 'video/avi', + 'bmp' => 'image/bmp', + 'bz2' => 'application/x-bz2', + 'csv' => 'text/csv', + 'dmg' => 'application/x-apple-diskimage', + 'doc' => 'application/msword', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'eml' => 'message/rfc822', + 'aps' => 'application/postscript', + 'exe' => 'application/x-ms-dos-executable', + 'flv' => 'video/x-flv', + 'gz' => 'application/x-gzip', + 'hqx' => 'application/stuffit', + 'htm' => 'text/html', + 'html' => 'text/html', + 'jar' => 'application/x-java-archive', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'm3u' => 'audio/x-mpegurl', + 'm4a' => 'audio/mp4', + 'mdb' => 'application/x-msaccess', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mov' => 'video/quicktime', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'odg' => 'vnd.oasis.opendocument.graphics', + 'odp' => 'vnd.oasis.opendocument.presentation', + 'odt' => 'vnd.oasis.opendocument.text', + 'ods' => 'vnd.oasis.opendocument.spreadsheet', + 'ogg' => 'audio/ogg', + 'pdf' => 'application/pdf', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'ps' => 'application/postscript', + 'rar' => 'application/x-rar-compressed', + 'rtf' => 'application/rtf', + 'tar' => 'application/x-tar', + 'sit' => 'application/x-stuffit', + 'svg' => 'image/svg+xml', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'ttf' => 'application/x-font-truetype', + 'vcf' => 'text/x-vcard', + 'wav' => 'audio/wav', + 'wma' => 'audio/x-ms-wma', + 'wmv' => 'audio/x-ms-wmv', + 'xls' => 'application/excel', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xml' => 'application/xml', + ); + + // wrap array for generating file + foreach ($valid_mime_types_preset as $extension => $mime_type) { + // generate array for mimetype to extension resolver (only first match) + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; + } + + // collect extensions + $valid_extensions = array(); + + // all extensions from second match + foreach ($matches[2] as $i => $extensions) { + // explode multiple extensions from string + $extensions = explode(' ', strtolower($extensions)); + + // force array for foreach + if (!is_array($extensions)) { + $extensions = array($extensions); + } + + foreach ($extensions as $extension) { + // get mime type + $mime_type = $matches[1][$i]; + + // check if string length lower than 10 + if (strlen($extension) < 10) { + // add extension + $valid_extensions[] = $extension; + + if (!isset($valid_mime_types[$mime_type])) { + // generate array for mimetype to extension resolver (only first match) + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; + } + } + } + } + } + + $xml = simplexml_load_string($mime_xml); + + foreach ($xml as $node) { + // check if there is no pattern + if (!isset($node->glob['pattern'])) { + continue; + } + + // get all matching extensions from match + foreach ((array) $node->glob['pattern'] as $extension) { + // skip none glob extensions + if (strpos($extension, '.') === false) { + continue; + } + + // remove get only last part + $extension = explode('.', strtolower($extension)); + $extension = end($extension); + + // maximum length in database column + if (strlen($extension) <= 9) { + $valid_extensions[] = $extension; + } + } + + if (isset($node->glob['pattern'][0])) { + // mime type + $mime_type = strtolower((string) $node['type']); + + // get first extension + $extension = strtolower(trim($node->glob['ddpattern'][0], '*.')); + + // skip none glob extensions and check if string length between 1 and 10 + if (strpos($extension, '.') !== false || strlen($extension) < 1 || strlen($extension) > 9) { + continue; + } + + // check if string length lower than 10 + if (!isset($valid_mime_types[$mime_type])) { + // generate array for mimetype to extension resolver (only first match) + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; + } + } + } + + // full list of valid extensions only + $valid_mime_types = array_unique($valid_mime_types); + ksort($valid_mime_types); + + // combine mime types and extensions array + $output = "$preamble\$swift_mime_types = array(\n ".implode($valid_mime_types, ",\n ")."\n);"; + + // write mime_types.php config file + @file_put_contents('./mime_types.php', $output); +} + +generateUpToDateMimeArray(); diff --git a/vendor/swiftmailer/swiftmailer/phpunit.xml.dist b/vendor/swiftmailer/swiftmailer/phpunit.xml.dist new file mode 100644 index 0000000..2420586 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/phpunit.xml.dist @@ -0,0 +1,37 @@ + + + + + + + + + + + tests/unit + + + tests/acceptance + + + tests/bug + + + tests/smoke + + + + + + + diff --git a/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php b/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php new file mode 100644 index 0000000..069d11a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php @@ -0,0 +1,62 @@ +value = $value; + } + + /** + * Evaluates the constraint for parameter $other. Returns TRUE if the + * constraint is met, FALSE otherwise. + * + * @param mixed $other Value or object to evaluate. + * + * @return bool + */ + public function matches($other) + { + $aHex = $this->asHexString($this->value); + $bHex = $this->asHexString($other); + + return $aHex === $bHex; + } + + /** + * Returns a string representation of the constraint. + * + * @return string + */ + public function toString() + { + return 'indentical binary'; + } + + /** + * Get the given string of bytes as a stirng of Hexadecimal sequences. + * + * @param string $binary + * + * @return string + */ + private function asHexString($binary) + { + $hex = ''; + + $bytes = unpack('H*', $binary); + + foreach ($bytes as &$byte) { + $byte = strtoupper($byte); + } + + return implode('', $bytes); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/StreamCollector.php b/vendor/swiftmailer/swiftmailer/tests/StreamCollector.php new file mode 100644 index 0000000..7f079d9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/StreamCollector.php @@ -0,0 +1,11 @@ +content .= $arg; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/SwiftMailerSmokeTestCase.php b/vendor/swiftmailer/swiftmailer/tests/SwiftMailerSmokeTestCase.php new file mode 100644 index 0000000..21d89e8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/SwiftMailerSmokeTestCase.php @@ -0,0 +1,46 @@ +markTestSkipped( + 'Smoke tests are skipped if tests/smoke.conf.php is not edited' + ); + } + } + + protected function _getMailer() + { + switch (SWIFT_SMOKE_TRANSPORT_TYPE) { + case 'smtp': + $transport = Swift_DependencyContainer::getInstance()->lookup('transport.smtp') + ->setHost(SWIFT_SMOKE_SMTP_HOST) + ->setPort(SWIFT_SMOKE_SMTP_PORT) + ->setUsername(SWIFT_SMOKE_SMTP_USER) + ->setPassword(SWIFT_SMOKE_SMTP_PASS) + ->setEncryption(SWIFT_SMOKE_SMTP_ENCRYPTION) + ; + break; + case 'sendmail': + $transport = Swift_DependencyContainer::getInstance()->lookup('transport.sendmail') + ->setCommand(SWIFT_SMOKE_SENDMAIL_COMMAND) + ; + break; + case 'mail': + case 'nativemail': + $transport = Swift_DependencyContainer::getInstance()->lookup('transport.mail'); + break; + default: + throw new Exception('Undefined transport ['.SWIFT_SMOKE_TRANSPORT_TYPE.']'); + } + + return new Swift_Mailer($transport); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/SwiftMailerTestCase.php b/vendor/swiftmailer/swiftmailer/tests/SwiftMailerTestCase.php new file mode 100644 index 0000000..f0e2736 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/SwiftMailerTestCase.php @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/vendor/swiftmailer/swiftmailer/tests/_samples/files/swiftmailer.png b/vendor/swiftmailer/swiftmailer/tests/_samples/files/swiftmailer.png new file mode 100644 index 0000000000000000000000000000000000000000..1b95f619af1fcbed1fca382d22022bdf329849cf GIT binary patch literal 3194 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 literal 0 HcmV?d00001 diff --git a/vendor/swiftmailer/swiftmailer/tests/_samples/files/textfile.zip b/vendor/swiftmailer/swiftmailer/tests/_samples/files/textfile.zip new file mode 100644 index 0000000000000000000000000000000000000000..5a580ecbf81ff98445bc5c6d0fce7a9a301f0e39 GIT binary patch literal 202 zcmWIWW@h1HU}9ikII%0tqR&rhgC39#!aNM33?-=*C25&Csd^<9C7~gl49w;G_PK*_ zXax(ySH`c5AsLy)3P4nlSX82rpQezg5L}*_R-)jW2-H=iP-db~oSUDWs!)markTestSkipped( + 'Cannot run test without a writable directory to use ('. + 'define SWIFT_TMP_DIR in tests/config.php if you wish to run this test)' + ); + } + + $this->_tmpDir = SWIFT_TMP_DIR; + $this->_testFile = $this->_tmpDir.'/swift-test-file'.__CLASS__; + file_put_contents($this->_testFile, 'abcdefghijklm'); + } + + public function tearDown() + { + unlink($this->_testFile); + } + + public function testFileDataCanBeRead() + { + $file = $this->_createFileStream($this->_testFile); + $str = ''; + while (false !== $bytes = $file->read(8192)) { + $str .= $bytes; + } + $this->assertEquals('abcdefghijklm', $str); + } + + public function testFileDataCanBeReadSequentially() + { + $file = $this->_createFileStream($this->_testFile); + $this->assertEquals('abcde', $file->read(5)); + $this->assertEquals('fghijklm', $file->read(8)); + $this->assertFalse($file->read(1)); + } + + public function testFilenameIsReturned() + { + $file = $this->_createFileStream($this->_testFile); + $this->assertEquals($this->_testFile, $file->getPath()); + } + + public function testFileCanBeWrittenTo() + { + $file = $this->_createFileStream( + $this->_testFile, true + ); + $file->write('foobar'); + $this->assertEquals('foobar', $file->read(8192)); + } + + public function testReadingFromThenWritingToFile() + { + $file = $this->_createFileStream( + $this->_testFile, true + ); + $file->write('foobar'); + $this->assertEquals('foobar', $file->read(8192)); + $file->write('zipbutton'); + $this->assertEquals('zipbutton', $file->read(8192)); + } + + public function testWritingToFileWithCanonicalization() + { + $file = $this->_createFileStream( + $this->_testFile, true + ); + $file->addFilter($this->_createFilter(array("\r\n", "\r"), "\n"), 'allToLF'); + $file->write("foo\r\nbar\r"); + $file->write("\nzip\r\ntest\r"); + $file->flushBuffers(); + $this->assertEquals("foo\nbar\nzip\ntest\n", file_get_contents($this->_testFile)); + } + + public function testBindingOtherStreamsMirrorsWriteOperations() + { + $file = $this->_createFileStream( + $this->_testFile, true + ); + $is1 = $this->_createMockInputStream(); + $is2 = $this->_createMockInputStream(); + + $is1->expects($this->at(0)) + ->method('write') + ->with('x'); + $is1->expects($this->at(1)) + ->method('write') + ->with('y'); + $is2->expects($this->at(0)) + ->method('write') + ->with('x'); + $is2->expects($this->at(1)) + ->method('write') + ->with('y'); + + $file->bind($is1); + $file->bind($is2); + + $file->write('x'); + $file->write('y'); + } + + public function testBindingOtherStreamsMirrorsFlushOperations() + { + $file = $this->_createFileStream( + $this->_testFile, true + ); + $is1 = $this->_createMockInputStream(); + $is2 = $this->_createMockInputStream(); + + $is1->expects($this->once()) + ->method('flushBuffers'); + $is2->expects($this->once()) + ->method('flushBuffers'); + + $file->bind($is1); + $file->bind($is2); + + $file->flushBuffers(); + } + + public function testUnbindingStreamPreventsFurtherWrites() + { + $file = $this->_createFileStream( + $this->_testFile, true + ); + $is1 = $this->_createMockInputStream(); + $is2 = $this->_createMockInputStream(); + + $is1->expects($this->at(0)) + ->method('write') + ->with('x'); + $is1->expects($this->at(1)) + ->method('write') + ->with('y'); + $is2->expects($this->once()) + ->method('write') + ->with('x'); + + $file->bind($is1); + $file->bind($is2); + + $file->write('x'); + + $file->unbind($is2); + + $file->write('y'); + } + + // -- Creation methods + + private function _createFilter($search, $replace) + { + return new Swift_StreamFilters_StringReplacementFilter($search, $replace); + } + + private function _createMockInputStream() + { + return $this->getMock('Swift_InputByteStream'); + } + + private function _createFileStream($file, $writable = false) + { + return new Swift_ByteStream_FileByteStream($file, $writable); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/CharacterReaderFactory/SimpleCharacterReaderFactoryAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/CharacterReaderFactory/SimpleCharacterReaderFactoryAcceptanceTest.php new file mode 100644 index 0000000..8ce4a18 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/CharacterReaderFactory/SimpleCharacterReaderFactoryAcceptanceTest.php @@ -0,0 +1,179 @@ +_factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + } + + public function testCreatingUtf8Reader() + { + foreach (array('utf8', 'utf-8', 'UTF-8', 'UTF8') as $utf8) { + $reader = $this->_factory->getReaderFor($utf8); + $this->assertInstanceof($this->_prefix.'Utf8Reader', $reader); + } + } + + public function testCreatingIso8859XReaders() + { + $charsets = array(); + foreach (range(1, 16) as $number) { + foreach (array('iso', 'iec') as $body) { + $charsets[] = $body.'-8859-'.$number; + $charsets[] = $body.'8859-'.$number; + $charsets[] = strtoupper($body).'-8859-'.$number; + $charsets[] = strtoupper($body).'8859-'.$number; + } + } + + foreach ($charsets as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingWindows125XReaders() + { + $charsets = array(); + foreach (range(0, 8) as $number) { + $charsets[] = 'windows-125'.$number; + $charsets[] = 'windows125'.$number; + $charsets[] = 'WINDOWS-125'.$number; + $charsets[] = 'WINDOWS125'.$number; + } + + foreach ($charsets as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingCodePageReaders() + { + $charsets = array(); + foreach (range(0, 8) as $number) { + $charsets[] = 'cp-125'.$number; + $charsets[] = 'cp125'.$number; + $charsets[] = 'CP-125'.$number; + $charsets[] = 'CP125'.$number; + } + + foreach (array(437, 737, 850, 855, 857, 858, 860, + 861, 863, 865, 866, 869, ) as $number) { + $charsets[] = 'cp-'.$number; + $charsets[] = 'cp'.$number; + $charsets[] = 'CP-'.$number; + $charsets[] = 'CP'.$number; + } + + foreach ($charsets as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingAnsiReader() + { + foreach (array('ansi', 'ANSI') as $ansi) { + $reader = $this->_factory->getReaderFor($ansi); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingMacintoshReader() + { + foreach (array('macintosh', 'MACINTOSH') as $mac) { + $reader = $this->_factory->getReaderFor($mac); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingKOIReaders() + { + $charsets = array(); + foreach (array('7', '8-r', '8-u', '8u', '8r') as $end) { + $charsets[] = 'koi-'.$end; + $charsets[] = 'koi'.$end; + $charsets[] = 'KOI-'.$end; + $charsets[] = 'KOI'.$end; + } + + foreach ($charsets as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingIsciiReaders() + { + foreach (array('iscii', 'ISCII', 'viscii', 'VISCII') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingMIKReader() + { + foreach (array('mik', 'MIK') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingCorkReader() + { + foreach (array('cork', 'CORK', 't1', 'T1') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(1, $reader->getInitialByteSize()); + } + } + + public function testCreatingUcs2Reader() + { + foreach (array('ucs-2', 'UCS-2', 'ucs2', 'UCS2') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(2, $reader->getInitialByteSize()); + } + } + + public function testCreatingUtf16Reader() + { + foreach (array('utf-16', 'UTF-16', 'utf16', 'UTF16') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(2, $reader->getInitialByteSize()); + } + } + + public function testCreatingUcs4Reader() + { + foreach (array('ucs-4', 'UCS-4', 'ucs4', 'UCS4') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(4, $reader->getInitialByteSize()); + } + } + + public function testCreatingUtf32Reader() + { + foreach (array('utf-32', 'UTF-32', 'utf32', 'UTF32') as $charset) { + $reader = $this->_factory->getReaderFor($charset); + $this->assertInstanceof($this->_prefix.'GenericFixedWidthReader', $reader); + $this->assertEquals(4, $reader->getInitialByteSize()); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/DependencyContainerAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/DependencyContainerAcceptanceTest.php new file mode 100644 index 0000000..8caf6f5 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/DependencyContainerAcceptanceTest.php @@ -0,0 +1,20 @@ +listItems() as $itemName) { + try { + $di->lookup($itemName); + } catch (Swift_DependencyException $e) { + $this->fail($e->getMessage()); + } + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EmbeddedFileAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EmbeddedFileAcceptanceTest.php new file mode 100644 index 0000000..fc5a814 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EmbeddedFileAcceptanceTest.php @@ -0,0 +1,12 @@ +_samplesDir = realpath(__DIR__.'/../../../_samples/charsets'); + $this->_encoder = new Swift_Encoder_Base64Encoder(); + } + + public function testEncodingAndDecodingSamples() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + $encodedText = $this->_encoder->encodeString($text); + + $this->assertEquals( + base64_decode($encodedText), $text, + '%s: Encoded string should decode back to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php new file mode 100644 index 0000000..736dccb --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php @@ -0,0 +1,50 @@ +_samplesDir = realpath(__DIR__.'/../../../_samples/charsets'); + $this->_factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + } + + public function testEncodingAndDecodingSamples() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $encoding = $encodingDir; + $charStream = new Swift_CharacterStream_ArrayCharacterStream( + $this->_factory, $encoding); + $encoder = new Swift_Encoder_QpEncoder($charStream); + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + $encodedText = $encoder->encodeString($text); + + $this->assertEquals( + quoted_printable_decode($encodedText), $text, + '%s: Encoded string should decode back to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php new file mode 100644 index 0000000..043ddf8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php @@ -0,0 +1,50 @@ +_samplesDir = realpath(__DIR__.'/../../../_samples/charsets'); + $this->_factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + } + + public function testEncodingAndDecodingSamples() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $encoding = $encodingDir; + $charStream = new Swift_CharacterStream_ArrayCharacterStream( + $this->_factory, $encoding); + $encoder = new Swift_Encoder_Rfc2231Encoder($charStream); + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + $encodedText = $encoder->encodeString($text); + + $this->assertEquals( + urldecode(implode('', explode("\r\n", $encodedText))), $text, + '%s: Encoded string should decode back to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EncodingAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EncodingAcceptanceTest.php new file mode 100644 index 0000000..6a4d05d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EncodingAcceptanceTest.php @@ -0,0 +1,30 @@ +assertEquals('7bit', $encoder->getName()); + } + + public function testGet8BitEncodingReturns8BitEncoder() + { + $encoder = Swift_Encoding::get8BitEncoding(); + $this->assertEquals('8bit', $encoder->getName()); + } + + public function testGetQpEncodingReturnsQpEncoder() + { + $encoder = Swift_Encoding::getQpEncoding(); + $this->assertEquals('quoted-printable', $encoder->getName()); + } + + public function testGetBase64EncodingReturnsBase64Encoder() + { + $encoder = Swift_Encoding::getBase64Encoding(); + $this->assertEquals('base64', $encoder->getName()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/ArrayKeyCacheAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/ArrayKeyCacheAcceptanceTest.php new file mode 100644 index 0000000..6b06e2e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/ArrayKeyCacheAcceptanceTest.php @@ -0,0 +1,173 @@ +_cache = new Swift_KeyCache_ArrayKeyCache( + new Swift_KeyCache_SimpleKeyCacheInputStream() + ); + } + + public function testStringDataCanBeSetAndFetched() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testStringDataCanBeOverwritten() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'foo', 'whatever', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('whatever', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testStringDataCanBeAppended() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'foo', 'ing', Swift_KeyCache::MODE_APPEND + ); + $this->assertEquals('testing', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testHasKeyReturnValue() + { + $this->assertFalse($this->_cache->hasKey($this->_key1, 'foo')); + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'foo')); + } + + public function testNsKeyIsWellPartitioned() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key2, 'foo', 'ing', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $this->_cache->getString($this->_key1, 'foo')); + $this->assertEquals('ing', $this->_cache->getString($this->_key2, 'foo')); + } + + public function testItemKeyIsWellPartitioned() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'bar', 'ing', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $this->_cache->getString($this->_key1, 'foo')); + $this->assertEquals('ing', $this->_cache->getString($this->_key1, 'bar')); + } + + public function testByteStreamCanBeImported() + { + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write('abcdef'); + + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os, Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('abcdef', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testByteStreamCanBeAppended() + { + $os1 = new Swift_ByteStream_ArrayByteStream(); + $os1->write('abcdef'); + + $os2 = new Swift_ByteStream_ArrayByteStream(); + $os2->write('xyzuvw'); + + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os1, Swift_KeyCache::MODE_APPEND + ); + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os2, Swift_KeyCache::MODE_APPEND + ); + + $this->assertEquals('abcdefxyzuvw', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testByteStreamAndStringCanBeAppended() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_APPEND + ); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write('abcdef'); + + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os, Swift_KeyCache::MODE_APPEND + ); + $this->assertEquals('testabcdef', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testDataCanBeExportedToByteStream() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + + $is = new Swift_ByteStream_ArrayByteStream(); + + $this->_cache->exportToByteStream($this->_key1, 'foo', $is); + + $string = ''; + while (false !== $bytes = $is->read(8192)) { + $string .= $bytes; + } + + $this->assertEquals('test', $string); + } + + public function testKeyCanBeCleared() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'foo')); + $this->_cache->clearKey($this->_key1, 'foo'); + $this->assertFalse($this->_cache->hasKey($this->_key1, 'foo')); + } + + public function testNsKeyCanBeCleared() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'bar', 'xyz', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'foo')); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'bar')); + $this->_cache->clearAll($this->_key1); + $this->assertFalse($this->_cache->hasKey($this->_key1, 'foo')); + $this->assertFalse($this->_cache->hasKey($this->_key1, 'bar')); + } + + public function testKeyCacheInputStream() + { + $is = $this->_cache->getInputByteStream($this->_key1, 'foo'); + $is->write('abc'); + $is->write('xyz'); + $this->assertEquals('abcxyz', $this->_cache->getString($this->_key1, 'foo')); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/DiskKeyCacheAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/DiskKeyCacheAcceptanceTest.php new file mode 100644 index 0000000..392edde --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/DiskKeyCacheAcceptanceTest.php @@ -0,0 +1,183 @@ +markTestSkipped( + 'Cannot run test without a writable directory to use ('. + 'define SWIFT_TMP_DIR in tests/config.php if you wish to run this test)' + ); + } + + $this->_key1 = uniqid(microtime(true), true); + $this->_key2 = uniqid(microtime(true), true); + $this->_cache = new Swift_KeyCache_DiskKeyCache( + new Swift_KeyCache_SimpleKeyCacheInputStream(), + SWIFT_TMP_DIR + ); + } + + public function testStringDataCanBeSetAndFetched() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testStringDataCanBeOverwritten() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'foo', 'whatever', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('whatever', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testStringDataCanBeAppended() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'foo', 'ing', Swift_KeyCache::MODE_APPEND + ); + $this->assertEquals('testing', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testHasKeyReturnValue() + { + $this->assertFalse($this->_cache->hasKey($this->_key1, 'foo')); + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'foo')); + } + + public function testNsKeyIsWellPartitioned() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key2, 'foo', 'ing', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $this->_cache->getString($this->_key1, 'foo')); + $this->assertEquals('ing', $this->_cache->getString($this->_key2, 'foo')); + } + + public function testItemKeyIsWellPartitioned() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'bar', 'ing', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $this->_cache->getString($this->_key1, 'foo')); + $this->assertEquals('ing', $this->_cache->getString($this->_key1, 'bar')); + } + + public function testByteStreamCanBeImported() + { + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write('abcdef'); + + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os, Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('abcdef', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testByteStreamCanBeAppended() + { + $os1 = new Swift_ByteStream_ArrayByteStream(); + $os1->write('abcdef'); + + $os2 = new Swift_ByteStream_ArrayByteStream(); + $os2->write('xyzuvw'); + + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os1, Swift_KeyCache::MODE_APPEND + ); + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os2, Swift_KeyCache::MODE_APPEND + ); + + $this->assertEquals('abcdefxyzuvw', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testByteStreamAndStringCanBeAppended() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_APPEND + ); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write('abcdef'); + + $this->_cache->importFromByteStream( + $this->_key1, 'foo', $os, Swift_KeyCache::MODE_APPEND + ); + $this->assertEquals('testabcdef', $this->_cache->getString($this->_key1, 'foo')); + } + + public function testDataCanBeExportedToByteStream() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + + $is = new Swift_ByteStream_ArrayByteStream(); + + $this->_cache->exportToByteStream($this->_key1, 'foo', $is); + + $string = ''; + while (false !== $bytes = $is->read(8192)) { + $string .= $bytes; + } + + $this->assertEquals('test', $string); + } + + public function testKeyCanBeCleared() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'foo')); + $this->_cache->clearKey($this->_key1, 'foo'); + $this->assertFalse($this->_cache->hasKey($this->_key1, 'foo')); + } + + public function testNsKeyCanBeCleared() + { + $this->_cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->_cache->setString( + $this->_key1, 'bar', 'xyz', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'foo')); + $this->assertTrue($this->_cache->hasKey($this->_key1, 'bar')); + $this->_cache->clearAll($this->_key1); + $this->assertFalse($this->_cache->hasKey($this->_key1, 'foo')); + $this->assertFalse($this->_cache->hasKey($this->_key1, 'bar')); + } + + public function testKeyCacheInputStream() + { + $is = $this->_cache->getInputByteStream($this->_key1, 'foo'); + $is->write('abc'); + $is->write('xyz'); + $this->assertEquals('abcxyz', $this->_cache->getString($this->_key1, 'foo')); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MessageAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MessageAcceptanceTest.php new file mode 100644 index 0000000..9372fbf --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MessageAcceptanceTest.php @@ -0,0 +1,57 @@ +_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = $message->getDate(); + $boundary = $message->getBoundary(); + + $message->addPart('foo', 'text/plain', 'iso-8859-1'); + $message->addPart('test foo', 'text/html', 'iso-8859-1'); + + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'test foo'. + "\r\n\r\n". + '--'.$boundary.'--'."\r\n", + $message->toString() + ); + } + + // -- Private helpers + + protected function _createMessage() + { + Swift_DependencyContainer::getInstance() + ->register('properties.charset')->asValue(null); + + return Swift_Message::newInstance(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php new file mode 100644 index 0000000..e925367 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php @@ -0,0 +1,125 @@ +_cache = new Swift_KeyCache_ArrayKeyCache( + new Swift_KeyCache_SimpleKeyCacheInputStream() + ); + $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + $this->_contentEncoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + + $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') + ); + $paramEncoder = new Swift_Encoder_Rfc2231Encoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') + ); + $this->_grammar = new Swift_Mime_Grammar(); + $this->_headers = new Swift_Mime_SimpleHeaderSet( + new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $this->_grammar) + ); + } + + public function testDispositionIsSetInHeader() + { + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setDisposition('inline'); + $this->assertEquals( + 'Content-Type: application/pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline'."\r\n", + $attachment->toString() + ); + } + + public function testDispositionIsAttachmentByDefault() + { + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $this->assertEquals( + 'Content-Type: application/pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment'."\r\n", + $attachment->toString() + ); + } + + public function testFilenameIsSetInHeader() + { + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $this->assertEquals( + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf'."\r\n", + $attachment->toString() + ); + } + + public function testSizeIsSetInHeader() + { + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setSize(12340); + $this->assertEquals( + 'Content-Type: application/pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; size=12340'."\r\n", + $attachment->toString() + ); + } + + public function testMultipleParametersInHeader() + { + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setSize(12340); + $this->assertEquals( + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf; size=12340'."\r\n", + $attachment->toString() + ); + } + + public function testEndToEnd() + { + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setSize(12340); + $attachment->setBody('abcd'); + $this->assertEquals( + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf; size=12340'."\r\n". + "\r\n". + base64_encode('abcd'), + $attachment->toString() + ); + } + + // -- Private helpers + + protected function _createAttachment() + { + $entity = new Swift_Mime_Attachment( + $this->_headers, + $this->_contentEncoder, + $this->_cache, + $this->_grammar + ); + + return $entity; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/Base64ContentEncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/Base64ContentEncoderAcceptanceTest.php new file mode 100644 index 0000000..2a5c562 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/Base64ContentEncoderAcceptanceTest.php @@ -0,0 +1,56 @@ +_samplesDir = realpath(__DIR__.'/../../../../_samples/charsets'); + $this->_encoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + } + + public function testEncodingAndDecodingSamples() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write($text); + + $is = new Swift_ByteStream_ArrayByteStream(); + + $this->_encoder->encodeByteStream($os, $is); + + $encoded = ''; + while (false !== $bytes = $is->read(8192)) { + $encoded .= $bytes; + } + + $this->assertEquals( + base64_decode($encoded), $text, + '%s: Encoded string should decode back to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/NativeQpContentEncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/NativeQpContentEncoderAcceptanceTest.php new file mode 100644 index 0000000..e8313da --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/NativeQpContentEncoderAcceptanceTest.php @@ -0,0 +1,86 @@ +_samplesDir = realpath(__DIR__.'/../../../../_samples/charsets'); + $this->_encoder = new Swift_Mime_ContentEncoder_NativeQpContentEncoder(); + } + + public function testEncodingAndDecodingSamples() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write($text); + + $is = new Swift_ByteStream_ArrayByteStream(); + $this->_encoder->encodeByteStream($os, $is); + + $encoded = ''; + while (false !== $bytes = $is->read(8192)) { + $encoded .= $bytes; + } + + $this->assertEquals( + quoted_printable_decode($encoded), + // CR and LF are converted to CRLF + preg_replace('~\r(?!\n)|(?_createEncoderFromContainer(); + $this->assertSame('=C3=A4=C3=B6=C3=BC=C3=9F', $encoder->encodeString('äöüß')); + } + + /** + * @expectedException RuntimeException + */ + public function testCharsetChangeNotImplemented() + { + $this->_encoder->charsetChanged('utf-8'); + $this->_encoder->charsetChanged('charset'); + $this->_encoder->encodeString('foo'); + } + + public function testGetName() + { + $this->assertSame('quoted-printable', $this->_encoder->getName()); + } + + private function _createEncoderFromContainer() + { + return Swift_DependencyContainer::getInstance() + ->lookup('mime.nativeqpcontentencoder') + ; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/PlainContentEncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/PlainContentEncoderAcceptanceTest.php new file mode 100644 index 0000000..1541b7e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/PlainContentEncoderAcceptanceTest.php @@ -0,0 +1,88 @@ +_samplesDir = realpath(__DIR__.'/../../../../_samples/charsets'); + $this->_encoder = new Swift_Mime_ContentEncoder_PlainContentEncoder('8bit'); + } + + public function testEncodingAndDecodingSamplesString() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + $encodedText = $this->_encoder->encodeString($text); + + $this->assertEquals( + $encodedText, $text, + '%s: Encoded string should be identical to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } + + public function testEncodingAndDecodingSamplesByteStream() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write($text); + + $is = new Swift_ByteStream_ArrayByteStream(); + + $this->_encoder->encodeByteStream($os, $is); + + $encoded = ''; + while (false !== $bytes = $is->read(8192)) { + $encoded .= $bytes; + } + + $this->assertEquals( + $encoded, $text, + '%s: Encoded string should be identical to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php new file mode 100644 index 0000000..501dbfa --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php @@ -0,0 +1,157 @@ +_samplesDir = realpath(__DIR__.'/../../../../_samples/charsets'); + $this->_factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + } + + public function testEncodingAndDecodingSamples() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $encoding = $encodingDir; + $charStream = new Swift_CharacterStream_NgCharacterStream( + $this->_factory, $encoding); + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write($text); + + $is = new Swift_ByteStream_ArrayByteStream(); + $encoder->encodeByteStream($os, $is); + + $encoded = ''; + while (false !== $bytes = $is->read(8192)) { + $encoded .= $bytes; + } + + $this->assertEquals( + quoted_printable_decode($encoded), $text, + '%s: Encoded string should decode back to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } + + public function testEncodingAndDecodingSamplesFromDiConfiguredInstance() + { + $sampleFp = opendir($this->_samplesDir); + while (false !== $encodingDir = readdir($sampleFp)) { + if (substr($encodingDir, 0, 1) == '.') { + continue; + } + + $encoding = $encodingDir; + $encoder = $this->_createEncoderFromContainer(); + + $sampleDir = $this->_samplesDir.'/'.$encodingDir; + + if (is_dir($sampleDir)) { + $fileFp = opendir($sampleDir); + while (false !== $sampleFile = readdir($fileFp)) { + if (substr($sampleFile, 0, 1) == '.') { + continue; + } + + $text = file_get_contents($sampleDir.'/'.$sampleFile); + + $os = new Swift_ByteStream_ArrayByteStream(); + $os->write($text); + + $is = new Swift_ByteStream_ArrayByteStream(); + $encoder->encodeByteStream($os, $is); + + $encoded = ''; + while (false !== $bytes = $is->read(8192)) { + $encoded .= $bytes; + } + + $this->assertEquals( + str_replace("\r\n", "\n", quoted_printable_decode($encoded)), str_replace("\r\n", "\n", $text), + '%s: Encoded string should decode back to original string for sample '. + $sampleDir.'/'.$sampleFile + ); + } + closedir($fileFp); + } + } + closedir($sampleFp); + } + + public function testEncodingLFTextWithDiConfiguredInstance() + { + $encoder = $this->_createEncoderFromContainer(); + $this->assertEquals("a\r\nb\r\nc", $encoder->encodeString("a\nb\nc")); + } + + public function testEncodingCRTextWithDiConfiguredInstance() + { + $encoder = $this->_createEncoderFromContainer(); + $this->assertEquals("a\r\nb\r\nc", $encoder->encodeString("a\rb\rc")); + } + + public function testEncodingLFCRTextWithDiConfiguredInstance() + { + $encoder = $this->_createEncoderFromContainer(); + $this->assertEquals("a\r\n\r\nb\r\n\r\nc", $encoder->encodeString("a\n\rb\n\rc")); + } + + public function testEncodingCRLFTextWithDiConfiguredInstance() + { + $encoder = $this->_createEncoderFromContainer(); + $this->assertEquals("a\r\nb\r\nc", $encoder->encodeString("a\r\nb\r\nc")); + } + + public function testEncodingDotStuffingWithDiConfiguredInstance() + { + // Enable DotEscaping + Swift_Preferences::getInstance()->setQPDotEscape(true); + $encoder = $this->_createEncoderFromContainer(); + $this->assertEquals("a=2E\r\n=2E\r\n=2Eb\r\nc", $encoder->encodeString("a.\r\n.\r\n.b\r\nc")); + // Return to default + Swift_Preferences::getInstance()->setQPDotEscape(false); + $encoder = $this->_createEncoderFromContainer(); + $this->assertEquals("a.\r\n.\r\n.b\r\nc", $encoder->encodeString("a.\r\n.\r\n.b\r\nc")); + } + + public function testDotStuffingEncodingAndDecodingSamplesFromDiConfiguredInstance() + { + // Enable DotEscaping + Swift_Preferences::getInstance()->setQPDotEscape(true); + $this->testEncodingAndDecodingSamplesFromDiConfiguredInstance(); + // Disable DotStuffing to continue + Swift_Preferences::getInstance()->setQPDotEscape(false); + } + + private function _createEncoderFromContainer() + { + return Swift_DependencyContainer::getInstance() + ->lookup('mime.qpcontentencoder') + ; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php new file mode 100644 index 0000000..75f3c84 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php @@ -0,0 +1,137 @@ +_cache = new Swift_KeyCache_ArrayKeyCache( + new Swift_KeyCache_SimpleKeyCacheInputStream() + ); + $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + $this->_contentEncoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + + $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') + ); + $paramEncoder = new Swift_Encoder_Rfc2231Encoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') + ); + $this->_grammar = new Swift_Mime_Grammar(); + $this->_headers = new Swift_Mime_SimpleHeaderSet( + new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $this->_grammar) + ); + } + + public function testContentIdIsSetInHeader() + { + $file = $this->_createEmbeddedFile(); + $file->setContentType('application/pdf'); + $file->setId('foo@bar'); + $this->assertEquals( + 'Content-Type: application/pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline'."\r\n". + 'Content-ID: '."\r\n", + $file->toString() + ); + } + + public function testDispositionIsSetInHeader() + { + $file = $this->_createEmbeddedFile(); + $id = $file->getId(); + $file->setContentType('application/pdf'); + $file->setDisposition('attachment'); + $this->assertEquals( + 'Content-Type: application/pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment'."\r\n". + 'Content-ID: <'.$id.'>'."\r\n", + $file->toString() + ); + } + + public function testFilenameIsSetInHeader() + { + $file = $this->_createEmbeddedFile(); + $id = $file->getId(); + $file->setContentType('application/pdf'); + $file->setFilename('foo.pdf'); + $this->assertEquals( + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=foo.pdf'."\r\n". + 'Content-ID: <'.$id.'>'."\r\n", + $file->toString() + ); + } + + public function testSizeIsSetInHeader() + { + $file = $this->_createEmbeddedFile(); + $id = $file->getId(); + $file->setContentType('application/pdf'); + $file->setSize(12340); + $this->assertEquals( + 'Content-Type: application/pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; size=12340'."\r\n". + 'Content-ID: <'.$id.'>'."\r\n", + $file->toString() + ); + } + + public function testMultipleParametersInHeader() + { + $file = $this->_createEmbeddedFile(); + $id = $file->getId(); + $file->setContentType('application/pdf'); + $file->setFilename('foo.pdf'); + $file->setSize(12340); + $this->assertEquals( + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=foo.pdf; size=12340'."\r\n". + 'Content-ID: <'.$id.'>'."\r\n", + $file->toString() + ); + } + + public function testEndToEnd() + { + $file = $this->_createEmbeddedFile(); + $id = $file->getId(); + $file->setContentType('application/pdf'); + $file->setFilename('foo.pdf'); + $file->setSize(12340); + $file->setBody('abcd'); + $this->assertEquals( + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=foo.pdf; size=12340'."\r\n". + 'Content-ID: <'.$id.'>'."\r\n". + "\r\n". + base64_encode('abcd'), + $file->toString() + ); + } + + // -- Private helpers + + protected function _createEmbeddedFile() + { + $entity = new Swift_Mime_EmbeddedFile( + $this->_headers, + $this->_contentEncoder, + $this->_cache, + $this->_grammar + ); + + return $entity; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/HeaderEncoder/Base64HeaderEncoderAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/HeaderEncoder/Base64HeaderEncoderAcceptanceTest.php new file mode 100644 index 0000000..304867a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/HeaderEncoder/Base64HeaderEncoderAcceptanceTest.php @@ -0,0 +1,32 @@ +_encoder = new Swift_Mime_HeaderEncoder_Base64HeaderEncoder(); + } + + public function testEncodingJIS() + { + if (function_exists('mb_convert_encoding')) { + // base64_encode and split cannot handle long JIS text to fold + $subject = '長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い件名'; + + $encodedWrapperLength = strlen('=?iso-2022-jp?'.$this->_encoder->getName().'??='); + + $old = mb_internal_encoding(); + mb_internal_encoding('utf-8'); + $newstring = mb_encode_mimeheader($subject, 'iso-2022-jp', 'B', "\r\n"); + mb_internal_encoding($old); + + $encoded = $this->_encoder->encodeString($subject, 0, 75 - $encodedWrapperLength, 'iso-2022-jp'); + $this->assertEquals( + $encoded, $newstring, + 'Encoded string should decode back to original string for sample ' + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php new file mode 100644 index 0000000..8232fe6 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php @@ -0,0 +1,129 @@ +_cache = new Swift_KeyCache_ArrayKeyCache( + new Swift_KeyCache_SimpleKeyCacheInputStream() + ); + $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + $this->_contentEncoder = new Swift_Mime_ContentEncoder_QpContentEncoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'), + new Swift_StreamFilters_ByteArrayReplacementFilter( + array(array(0x0D, 0x0A), array(0x0D), array(0x0A)), + array(array(0x0A), array(0x0A), array(0x0D, 0x0A)) + ) + ); + + $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') + ); + $paramEncoder = new Swift_Encoder_Rfc2231Encoder( + new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8') + ); + $this->_grammar = new Swift_Mime_Grammar(); + $this->_headers = new Swift_Mime_SimpleHeaderSet( + new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $this->_grammar) + ); + } + + public function testCharsetIsSetInHeader() + { + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setCharset('utf-8'); + $part->setBody('foobar'); + $this->assertEquals( + 'Content-Type: text/plain; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foobar', + $part->toString() + ); + } + + public function testFormatIsSetInHeaders() + { + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setFormat('flowed'); + $part->setBody('> foobar'); + $this->assertEquals( + 'Content-Type: text/plain; format=flowed'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + '> foobar', + $part->toString() + ); + } + + public function testDelSpIsSetInHeaders() + { + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setDelSp(true); + $part->setBody('foobar'); + $this->assertEquals( + 'Content-Type: text/plain; delsp=yes'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foobar', + $part->toString() + ); + } + + public function testAll3ParamsInHeaders() + { + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setCharset('utf-8'); + $part->setFormat('fixed'); + $part->setDelSp(true); + $part->setBody('foobar'); + $this->assertEquals( + 'Content-Type: text/plain; charset=utf-8; format=fixed; delsp=yes'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foobar', + $part->toString() + ); + } + + public function testBodyIsCanonicalized() + { + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setCharset('utf-8'); + $part->setBody("foobar\r\rtest\ning\r"); + $this->assertEquals( + 'Content-Type: text/plain; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + "foobar\r\n". + "\r\n". + "test\r\n". + "ing\r\n", + $part->toString() + ); + } + + // -- Private helpers + + protected function _createMimePart() + { + $entity = new Swift_Mime_MimePart( + $this->_headers, + $this->_contentEncoder, + $this->_cache, + $this->_grammar + ); + + return $entity; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/SimpleMessageAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/SimpleMessageAcceptanceTest.php new file mode 100644 index 0000000..84f3443 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/SimpleMessageAcceptanceTest.php @@ -0,0 +1,1251 @@ +setCharset(null); //TODO: Test with the charset defined + } + + public function testBasicHeaders() + { + /* -- RFC 2822, 3.6. + */ + + $message = $this->_createMessage(); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString(), + '%s: Only required headers, and non-empty headers should be displayed' + ); + } + + public function testSubjectIsDisplayedIfSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testDateCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $id = $message->getId(); + $message->setDate(1234); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', 1234)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testMessageIdCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setId('foo@bar'); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: '."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testContentTypeCanBeChanged() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setContentType('text/html'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/html'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testCharsetCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setContentType('text/html'); + $message->setCharset('iso-8859-1'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/html; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testFormatCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFormat('flowed'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain; format=flowed'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testEncoderCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setContentType('text/html'); + $message->setEncoder( + new Swift_Mime_ContentEncoder_PlainContentEncoder('7bit') + ); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/html'."\r\n". + 'Content-Transfer-Encoding: 7bit'."\r\n", + $message->toString() + ); + } + + public function testFromAddressCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom('chris.corbyn@swiftmailer.org'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: chris.corbyn@swiftmailer.org'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testFromAddressCanBeSetWithName() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris Corbyn')); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testMultipleFromAddressesCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org', + )); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn , mark@swiftmailer.org'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testReturnPathAddressCanBeSet() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testEmptyReturnPathHeaderCanBeUsed() + { + $message = $this->_createMessage(); + $message->setReturnPath(''); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Return-Path: <>'."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testSenderCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setSender('chris.corbyn@swiftmailer.org'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Sender: chris.corbyn@swiftmailer.org'."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testSenderCanBeSetWithName() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setSender(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Sender: Chris '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testReplyToCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array('chris@w3style.co.uk' => 'Myself')); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testMultipleReplyAddressCanBeUsed() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testToAddressCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $message->setTo('mark@swiftmailer.org'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'To: mark@swiftmailer.org'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testMultipleToAddressesCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $message->setTo(array( + 'mark@swiftmailer.org', 'chris@swiftmailer.org' => 'Chris Corbyn', + )); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'To: mark@swiftmailer.org, Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testCcAddressCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $message->setTo(array( + 'mark@swiftmailer.org', 'chris@swiftmailer.org' => 'Chris Corbyn', + )); + $message->setCc('john@some-site.com'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'To: mark@swiftmailer.org, Chris Corbyn '."\r\n". + 'Cc: john@some-site.com'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testMultipleCcAddressesCanBeSet() + { + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $message->setTo(array( + 'mark@swiftmailer.org', 'chris@swiftmailer.org' => 'Chris Corbyn', + )); + $message->setCc(array( + 'john@some-site.com' => 'John West', + 'fred@another-site.co.uk' => 'Big Fred', + )); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'To: mark@swiftmailer.org, Chris Corbyn '."\r\n". + 'Cc: John West , Big Fred '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testBccAddressCanBeSet() + { + //Obviously Transports need to setBcc(array()) and send to each Bcc recipient + // separately in accordance with RFC 2822/2821 + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $message->setTo(array( + 'mark@swiftmailer.org', 'chris@swiftmailer.org' => 'Chris Corbyn', + )); + $message->setCc(array( + 'john@some-site.com' => 'John West', + 'fred@another-site.co.uk' => 'Big Fred', + )); + $message->setBcc('x@alphabet.tld'); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'To: mark@swiftmailer.org, Chris Corbyn '."\r\n". + 'Cc: John West , Big Fred '."\r\n". + 'Bcc: x@alphabet.tld'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testMultipleBccAddressesCanBeSet() + { + //Obviously Transports need to setBcc(array()) and send to each Bcc recipient + // separately in accordance with RFC 2822/2821 + $message = $this->_createMessage(); + $message->setSubject('just a test subject'); + $message->setFrom(array('chris.corbyn@swiftmailer.org' => 'Chris')); + $message->setReplyTo(array( + 'chris@w3style.co.uk' => 'Myself', + 'my.other@address.com' => 'Me', + )); + $message->setTo(array( + 'mark@swiftmailer.org', 'chris@swiftmailer.org' => 'Chris Corbyn', + )); + $message->setCc(array( + 'john@some-site.com' => 'John West', + 'fred@another-site.co.uk' => 'Big Fred', + )); + $message->setBcc(array('x@alphabet.tld', 'a@alphabet.tld' => 'A')); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris '."\r\n". + 'Reply-To: Myself , Me '."\r\n". + 'To: mark@swiftmailer.org, Chris Corbyn '."\r\n". + 'Cc: John West , Big Fred '."\r\n". + 'Bcc: x@alphabet.tld, A '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString() + ); + } + + public function testStringBodyIsAppended() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $message->setBody( + 'just a test body'."\r\n". + 'with a new line' + ); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'just a test body'."\r\n". + 'with a new line', + $message->toString() + ); + } + + public function testStringBodyIsEncoded() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $message->setBody( + 'Just s'.pack('C*', 0xC2, 0x01, 0x01).'me multi-'."\r\n". + 'line message!' + ); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'Just s=C2=01=01me multi-'."\r\n". + 'line message!', + $message->toString() + ); + } + + public function testChildrenCanBeAttached() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = $message->getDate(); + $boundary = $message->getBoundary(); + + $part1 = $this->_createMimePart(); + $part1->setContentType('text/plain'); + $part1->setCharset('iso-8859-1'); + $part1->setBody('foo'); + + $message->attach($part1); + + $part2 = $this->_createMimePart(); + $part2->setContentType('text/html'); + $part2->setCharset('iso-8859-1'); + $part2->setBody('test foo'); + + $message->attach($part2); + + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'test foo'. + "\r\n\r\n". + '--'.$boundary.'--'."\r\n", + $message->toString() + ); + } + + public function testAttachmentsBeingAttached() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setCharset('iso-8859-1'); + $part->setBody('foo'); + + $message->attach($part); + + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setBody(''); + + $message->attach($attachment); + + $this->assertRegExp( + '~^'. + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/mixed;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: text/plain; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--\\1--'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $message->toString() + ); + } + + public function testAttachmentsAndEmbeddedFilesBeingAttached() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setCharset('iso-8859-1'); + $part->setBody('foo'); + + $message->attach($part); + + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setBody(''); + + $message->attach($attachment); + + $file = $this->_createEmbeddedFile(); + $file->setContentType('image/jpeg'); + $file->setFilename('myimage.jpg'); + $file->setBody(''); + + $message->attach($file); + + $cid = $file->getId(); + + $this->assertRegExp( + '~^'. + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/mixed;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: text/plain; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: multipart/related;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\2'."\r\n". + 'Content-Type: image/jpeg; name=myimage.jpg'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=myimage.jpg'."\r\n". + 'Content-ID: <'.$cid.'>'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--\\2--'."\r\n". + "\r\n\r\n". + '--\\1--'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $message->toString() + ); + } + + public function testComplexEmbeddingOfContent() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setBody(''); + + $message->attach($attachment); + + $file = $this->_createEmbeddedFile(); + $file->setContentType('image/jpeg'); + $file->setFilename('myimage.jpg'); + $file->setBody(''); + + $part = $this->_createMimePart(); + $part->setContentType('text/html'); + $part->setCharset('iso-8859-1'); + $part->setBody('foo '); + + $message->attach($part); + + $cid = $file->getId(); + + $this->assertRegExp( + '~^'. + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/mixed;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: multipart/related;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: text/html; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo './/=3D is just = in QP + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: image/jpeg; name=myimage.jpg'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=myimage.jpg'."\r\n". + 'Content-ID: <'.$cid.'>'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--\\1--'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $message->toString() + ); + } + + public function testAttachingAndDetachingContent() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + + $part = $this->_createMimePart(); + $part->setContentType('text/plain'); + $part->setCharset('iso-8859-1'); + $part->setBody('foo'); + + $message->attach($part); + + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setBody(''); + + $message->attach($attachment); + + $file = $this->_createEmbeddedFile(); + $file->setContentType('image/jpeg'); + $file->setFilename('myimage.jpg'); + $file->setBody(''); + + $message->attach($file); + + $cid = $file->getId(); + + $message->detach($attachment); + + $this->assertRegExp( + '~^'. + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: multipart/related;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: image/jpeg; name=myimage.jpg'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=myimage.jpg'."\r\n". + 'Content-ID: <'.$cid.'>'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--\\1--'."\r\n". + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $message->toString(), + '%s: Attachment should have been detached' + ); + } + + public function testBoundaryDoesNotAppearAfterAllPartsAreDetached() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = $message->getDate(); + $boundary = $message->getBoundary(); + + $part1 = $this->_createMimePart(); + $part1->setContentType('text/plain'); + $part1->setCharset('iso-8859-1'); + $part1->setBody('foo'); + + $message->attach($part1); + + $part2 = $this->_createMimePart(); + $part2->setContentType('text/html'); + $part2->setCharset('iso-8859-1'); + $part2->setBody('test foo'); + + $message->attach($part2); + + $message->detach($part1); + $message->detach($part2); + + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n", + $message->toString(), + '%s: Message should be restored to orignal state after parts are detached' + ); + } + + public function testCharsetFormatOrDelSpAreNotShownWhenBoundaryIsSet() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $message->setCharset('utf-8'); + $message->setFormat('flowed'); + $message->setDelSp(true); + + $id = $message->getId(); + $date = $message->getDate(); + $boundary = $message->getBoundary(); + + $part1 = $this->_createMimePart(); + $part1->setContentType('text/plain'); + $part1->setCharset('iso-8859-1'); + $part1->setBody('foo'); + + $message->attach($part1); + + $part2 = $this->_createMimePart(); + $part2->setContentType('text/html'); + $part2->setCharset('iso-8859-1'); + $part2->setBody('test foo'); + + $message->attach($part2); + + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'test foo'. + "\r\n\r\n". + '--'.$boundary.'--'."\r\n", + $message->toString() + ); + } + + public function testBodyCanBeSetWithAttachments() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $message->setContentType('text/html'); + $message->setCharset('iso-8859-1'); + $message->setBody('foo'); + + $id = $message->getId(); + $date = date('r', $message->getDate()); + $boundary = $message->getBoundary(); + + $attachment = $this->_createAttachment(); + $attachment->setContentType('application/pdf'); + $attachment->setFilename('foo.pdf'); + $attachment->setBody(''); + + $message->attach($attachment); + + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/mixed;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=iso-8859-1'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: application/pdf; name=foo.pdf'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=foo.pdf'."\r\n". + "\r\n". + base64_encode(''). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n", + $message->toString() + ); + } + + public function testHtmlPartAlwaysAppearsLast() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + + $id = $message->getId(); + $date = date('r', $message->getDate()); + $boundary = $message->getBoundary(); + + $part1 = $this->_createMimePart(); + $part1->setContentType('text/html'); + $part1->setBody('foo'); + + $part2 = $this->_createMimePart(); + $part2->setContentType('text/plain'); + $part2->setBody('bar'); + + $message->attach($part1); + $message->attach($part2); + + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'bar'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary.'--'."\r\n", + $message->toString() + ); + } + + public function testBodyBecomesPartIfOtherPartsAttached() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $message->setContentType('text/html'); + $message->setBody('foo'); + + $id = $message->getId(); + $date = date('r', $message->getDate()); + $boundary = $message->getBoundary(); + + $part2 = $this->_createMimePart(); + $part2->setContentType('text/plain'); + $part2->setBody('bar'); + + $message->attach($part2); + + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'bar'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'foo'. + "\r\n\r\n". + '--'.$boundary.'--'."\r\n", + $message->toString() + ); + } + + public function testBodyIsCanonicalized() + { + $message = $this->_createMessage(); + $message->setReturnPath('chris@w3style.co.uk'); + $message->setSubject('just a test subject'); + $message->setFrom(array( + 'chris.corbyn@swiftmailer.org' => 'Chris Corbyn', )); + $message->setBody( + 'just a test body'."\n". + 'with a new line' + ); + $id = $message->getId(); + $date = $message->getDate(); + $this->assertEquals( + 'Return-Path: '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.date('r', $date)."\r\n". + 'Subject: just a test subject'."\r\n". + 'From: Chris Corbyn '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: text/plain'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'just a test body'."\r\n". + 'with a new line', + $message->toString() + ); + } + + // -- Private helpers + + protected function _createMessage() + { + return new Swift_Message(); + } + + protected function _createMimePart() + { + return new Swift_MimePart(); + } + + protected function _createAttachment() + { + return new Swift_Attachment(); + } + + protected function _createEmbeddedFile() + { + return new Swift_EmbeddedFile(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MimePartAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MimePartAcceptanceTest.php new file mode 100644 index 0000000..f42405d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MimePartAcceptanceTest.php @@ -0,0 +1,15 @@ +register('properties.charset')->asValue(null); + + return Swift_MimePart::newInstance(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/AbstractStreamBufferAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/AbstractStreamBufferAcceptanceTest.php new file mode 100644 index 0000000..465f2c1 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/AbstractStreamBufferAcceptanceTest.php @@ -0,0 +1,134 @@ +markTestSkipped( + 'Will fail on travis-ci if not skipped due to travis blocking '. + 'socket mailing tcp connections.' + ); + } + + $this->_buffer = new Swift_Transport_StreamBuffer( + $this->getMock('Swift_ReplacementFilterFactory') + ); + } + + public function testReadLine() + { + $this->_initializeBuffer(); + + $line = $this->_buffer->readLine(0); + $this->assertRegExp('/^[0-9]{3}.*?\r\n$/D', $line); + $seq = $this->_buffer->write("QUIT\r\n"); + $this->assertTrue((bool) $seq); + $line = $this->_buffer->readLine($seq); + $this->assertRegExp('/^[0-9]{3}.*?\r\n$/D', $line); + $this->_buffer->terminate(); + } + + public function testWrite() + { + $this->_initializeBuffer(); + + $line = $this->_buffer->readLine(0); + $this->assertRegExp('/^[0-9]{3}.*?\r\n$/D', $line); + + $seq = $this->_buffer->write("HELO foo\r\n"); + $this->assertTrue((bool) $seq); + $line = $this->_buffer->readLine($seq); + $this->assertRegExp('/^[0-9]{3}.*?\r\n$/D', $line); + + $seq = $this->_buffer->write("QUIT\r\n"); + $this->assertTrue((bool) $seq); + $line = $this->_buffer->readLine($seq); + $this->assertRegExp('/^[0-9]{3}.*?\r\n$/D', $line); + $this->_buffer->terminate(); + } + + public function testBindingOtherStreamsMirrorsWriteOperations() + { + $this->_initializeBuffer(); + + $is1 = $this->_createMockInputStream(); + $is2 = $this->_createMockInputStream(); + + $is1->expects($this->at(0)) + ->method('write') + ->with('x'); + $is1->expects($this->at(1)) + ->method('write') + ->with('y'); + $is2->expects($this->at(0)) + ->method('write') + ->with('x'); + $is2->expects($this->at(1)) + ->method('write') + ->with('y'); + + $this->_buffer->bind($is1); + $this->_buffer->bind($is2); + + $this->_buffer->write('x'); + $this->_buffer->write('y'); + } + + public function testBindingOtherStreamsMirrorsFlushOperations() + { + $this->_initializeBuffer(); + + $is1 = $this->_createMockInputStream(); + $is2 = $this->_createMockInputStream(); + + $is1->expects($this->once()) + ->method('flushBuffers'); + $is2->expects($this->once()) + ->method('flushBuffers'); + + $this->_buffer->bind($is1); + $this->_buffer->bind($is2); + + $this->_buffer->flushBuffers(); + } + + public function testUnbindingStreamPreventsFurtherWrites() + { + $this->_initializeBuffer(); + + $is1 = $this->_createMockInputStream(); + $is2 = $this->_createMockInputStream(); + + $is1->expects($this->at(0)) + ->method('write') + ->with('x'); + $is1->expects($this->at(1)) + ->method('write') + ->with('y'); + $is2->expects($this->once()) + ->method('write') + ->with('x'); + + $this->_buffer->bind($is1); + $this->_buffer->bind($is2); + + $this->_buffer->write('x'); + + $this->_buffer->unbind($is2); + + $this->_buffer->write('y'); + } + + // -- Creation Methods + + private function _createMockInputStream() + { + return $this->getMock('Swift_InputByteStream'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/BasicSocketAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/BasicSocketAcceptanceTest.php new file mode 100644 index 0000000..8f6e453 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/BasicSocketAcceptanceTest.php @@ -0,0 +1,34 @@ +markTestSkipped( + 'Cannot run test without an SMTP host to connect to (define '. + 'SWIFT_SMTP_HOST in tests/acceptance.conf.php if you wish to run this test)' + ); + } + parent::setUp(); + } + + protected function _initializeBuffer() + { + $parts = explode(':', SWIFT_SMTP_HOST); + $host = $parts[0]; + $port = isset($parts[1]) ? $parts[1] : 25; + + $this->_buffer->initialize(array( + 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET, + 'host' => $host, + 'port' => $port, + 'protocol' => 'tcp', + 'blocking' => 1, + 'timeout' => 15, + )); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/ProcessAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/ProcessAcceptanceTest.php new file mode 100644 index 0000000..b4e88a7 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/ProcessAcceptanceTest.php @@ -0,0 +1,27 @@ +markTestSkipped( + 'Cannot run test without a path to sendmail (define '. + 'SWIFT_SENDMAIL_PATH in tests/acceptance.conf.php if you wish to run this test)' + ); + } + + parent::setUp(); + } + + protected function _initializeBuffer() + { + $this->_buffer->initialize(array( + 'type' => Swift_Transport_IoBuffer::TYPE_PROCESS, + 'command' => SWIFT_SENDMAIL_PATH.' -bs', + )); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SocketTimeoutTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SocketTimeoutTest.php new file mode 100644 index 0000000..81db65e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SocketTimeoutTest.php @@ -0,0 +1,65 @@ +markTestSkipped( + 'Cannot run test without an SMTP host to connect to (define '. + 'SWIFT_SMTP_HOST in tests/acceptance.conf.php if you wish to run this test)' + ); + } + + $serverStarted = false; + for ($i = 0; $i < 5; ++$i) { + $this->_randomHighPort = rand(50000, 65000); + $this->_server = stream_socket_server('tcp://127.0.0.1:'.$this->_randomHighPort); + if ($this->_server) { + $serverStarted = true; + } + } + + $this->_buffer = new Swift_Transport_StreamBuffer( + $this->getMock('Swift_ReplacementFilterFactory') + ); + } + + protected function _initializeBuffer() + { + $host = '127.0.0.1'; + $port = $this->_randomHighPort; + + $this->_buffer->initialize(array( + 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET, + 'host' => $host, + 'port' => $port, + 'protocol' => 'tcp', + 'blocking' => 1, + 'timeout' => 1, + )); + } + + public function testTimeoutException() + { + $this->_initializeBuffer(); + $e = null; + try { + $line = $this->_buffer->readLine(0); + } catch (Exception $e) { + } + $this->assertInstanceof('Swift_IoException', $e, 'IO Exception Not Thrown On Connection Timeout'); + $this->assertRegExp('/Connection to .* Timed Out/', $e->getMessage()); + } + + public function tearDown() + { + if ($this->_server) { + stream_socket_shutdown($this->_server, STREAM_SHUT_RDWR); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SslSocketAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SslSocketAcceptanceTest.php new file mode 100644 index 0000000..d2d2a38 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SslSocketAcceptanceTest.php @@ -0,0 +1,41 @@ +markTestSkipped( + 'SSL is not configured for your system. It is not possible to run this test' + ); + } + if (!defined('SWIFT_SSL_HOST')) { + $this->markTestSkipped( + 'Cannot run test without an SSL enabled SMTP host to connect to (define '. + 'SWIFT_SSL_HOST in tests/acceptance.conf.php if you wish to run this test)' + ); + } + + parent::setUp(); + } + + protected function _initializeBuffer() + { + $parts = explode(':', SWIFT_SSL_HOST); + $host = $parts[0]; + $port = isset($parts[1]) ? $parts[1] : 25; + + $this->_buffer->initialize(array( + 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET, + 'host' => $host, + 'port' => $port, + 'protocol' => 'ssl', + 'blocking' => 1, + 'timeout' => 15, + )); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/TlsSocketAcceptanceTest.php b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/TlsSocketAcceptanceTest.php new file mode 100644 index 0000000..314fffe --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/TlsSocketAcceptanceTest.php @@ -0,0 +1,40 @@ +markTestSkipped( + 'TLS is not configured for your system. It is not possible to run this test' + ); + } + if (!defined('SWIFT_TLS_HOST')) { + $this->markTestSkipped( + 'Cannot run test without a TLS enabled SMTP host to connect to (define '. + 'SWIFT_TLS_HOST in tests/acceptance.conf.php if you wish to run this test)' + ); + } + parent::setUp(); + } + + protected function _initializeBuffer() + { + $parts = explode(':', SWIFT_TLS_HOST); + $host = $parts[0]; + $port = isset($parts[1]) ? $parts[1] : 25; + + $this->_buffer->initialize(array( + 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET, + 'host' => $host, + 'port' => $port, + 'protocol' => 'tls', + 'blocking' => 1, + 'timeout' => 15, + )); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bootstrap.php b/vendor/swiftmailer/swiftmailer/tests/bootstrap.php new file mode 100644 index 0000000..9b169b3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bootstrap.php @@ -0,0 +1,19 @@ +add('Swift_', __DIR__.'/unit'); + +set_include_path(get_include_path().PATH_SEPARATOR.dirname(__DIR__).'/lib'); + +\Mockery::getConfiguration()->allowMockingNonExistentMethods(false); + +if (is_file(__DIR__.'/acceptance.conf.php')) { + require_once __DIR__.'/acceptance.conf.php'; +} +if (is_file(__DIR__.'/smoke.conf.php')) { + require_once __DIR__.'/smoke.conf.php'; +} +require_once __DIR__.'/StreamCollector.php'; +require_once __DIR__.'/IdenticalBinaryConstraint.php'; +require_once __DIR__.'/SwiftMailerTestCase.php'; +require_once __DIR__.'/SwiftMailerSmokeTestCase.php'; diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug111Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug111Test.php new file mode 100644 index 0000000..ba29ba8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug111Test.php @@ -0,0 +1,42 @@ + array( + 'email1@example.com', + 'email2@example.com', + 'email3@example.com', + 'email4@example.com', + 'email5@example.com', + ), + 'sub' => array( + '-name-' => array( + 'email1', + '"email2"', + 'email3\\', + 'email4', + 'email5', + ), + '-url-' => array( + 'http://google.com', + 'http://yahoo.com', + 'http://hotmail.com', + 'http://aol.com', + 'http://facebook.com', + ), + ), + ); + $json = json_encode($complicated_header); + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addTextHeader('X-SMTPAPI', $json); + $header = $headers->get('X-SMTPAPI'); + + $this->assertEquals('Swift_Mime_Headers_UnstructuredHeader', get_class($header)); + $this->assertEquals($json, $header->getFieldBody()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug118Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug118Test.php new file mode 100644 index 0000000..bd10c71 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug118Test.php @@ -0,0 +1,20 @@ +_message = new Swift_Message(); + } + + public function testCallingGenerateIdChangesTheMessageId() + { + $currentId = $this->_message->getId(); + $this->_message->generateId(); + $newId = $this->_message->getId(); + + $this->assertNotEquals($currentId, $newId); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php new file mode 100644 index 0000000..fdfa530 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php @@ -0,0 +1,38 @@ +_factory = new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $grammar); + } + + public function testMailboxHeaderEncoding() + { + $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Name, Name', ' "Family Name, Name" '); + $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Namé, Name', ' Family =?utf-8?Q?Nam=C3=A9=2C?= Name'); + $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Namé , Name', ' Family =?utf-8?Q?Nam=C3=A9_=2C?= Name'); + $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Namé ;Name', ' Family =?utf-8?Q?Nam=C3=A9_=3BName?= '); + } + + private function _testHeaderIsFullyEncoded($email, $name, $expected) + { + $mailboxHeader = $this->_factory->createMailboxHeader('To', array( + $email => $name, + )); + + $headerBody = substr($mailboxHeader->toString(), 3, strlen($expected)); + + $this->assertEquals($expected, $headerBody); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug274Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug274Test.php new file mode 100644 index 0000000..d305d02 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug274Test.php @@ -0,0 +1,21 @@ +setExpectedException('Swift_IoException', 'The path cannot be empty'); + $message->attach(Swift_Attachment::fromPath('')); + } + + public function testNonEmptyFileNameAsAttachement() + { + $message = new Swift_Message(); + try { + $message->attach(Swift_Attachment::fromPath(__FILE__)); + } catch (Exception $e) { + $this->fail('Path should not be empty'); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug34Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug34Test.php new file mode 100644 index 0000000..6a0f33d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug34Test.php @@ -0,0 +1,75 @@ +setCharset('utf-8'); + } + + public function testEmbeddedFilesWithMultipartDataCreateMultipartRelatedContentAsAnAlternative() + { + $message = Swift_Message::newInstance(); + $message->setCharset('utf-8'); + $message->setSubject('test subject'); + $message->addPart('plain part', 'text/plain'); + + $image = Swift_Image::newInstance('', 'image.gif', 'image/gif'); + $cid = $message->embed($image); + + $message->setBody('', 'text/html'); + + $message->setTo(array('user@domain.tld' => 'User')); + + $message->setFrom(array('other@domain.tld' => 'Other')); + $message->setSender(array('other@domain.tld' => 'Other')); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + $cidVal = $image->getId(); + + $this->assertRegExp( + '~^'. + 'Sender: Other '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: test subject'."\r\n". + 'From: Other '."\r\n". + 'To: User '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/plain; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'plain part'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: multipart/related;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: text/html; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + ''. + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: image/gif; name=image.gif'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=image.gif'."\r\n". + 'Content-ID: <'.$cidVal.'>'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--\\1--'."\r\n". + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $message->toString() + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug35Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug35Test.php new file mode 100644 index 0000000..e07ee8f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug35Test.php @@ -0,0 +1,73 @@ +setCharset('utf-8'); + } + + public function testHTMLPartAppearsLastEvenWhenAttachmentsAdded() + { + $message = Swift_Message::newInstance(); + $message->setCharset('utf-8'); + $message->setSubject('test subject'); + $message->addPart('plain part', 'text/plain'); + + $attachment = Swift_Attachment::newInstance('', 'image.gif', 'image/gif'); + $message->attach($attachment); + + $message->setBody('HTML part', 'text/html'); + + $message->setTo(array('user@domain.tld' => 'User')); + + $message->setFrom(array('other@domain.tld' => 'Other')); + $message->setSender(array('other@domain.tld' => 'Other')); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + + $this->assertRegExp( + '~^'. + 'Sender: Other '."\r\n". + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: test subject'."\r\n". + 'From: Other '."\r\n". + 'To: User '."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/mixed;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: multipart/alternative;'."\r\n". + ' boundary="(.*?)"'."\r\n". + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: text/plain; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'plain part'. + "\r\n\r\n". + '--\\1'."\r\n". + 'Content-Type: text/html; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'HTML part'. + "\r\n\r\n". + '--\\1--'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: image/gif; name=image.gif'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename=image.gif'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $message->toString() + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php new file mode 100644 index 0000000..e281516 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php @@ -0,0 +1,194 @@ +_attFileName = 'data.txt'; + $this->_attFileType = 'text/plain'; + $this->_attFile = __DIR__.'/../../_samples/files/data.txt'; + Swift_Preferences::getInstance()->setCharset('utf-8'); + } + + public function testWritingMessageToByteStreamProducesCorrectStructure() + { + $message = new Swift_Message(); + $message->setSubject('test subject'); + $message->setTo('user@domain.tld'); + $message->setCc('other@domain.tld'); + $message->setFrom('user@domain.tld'); + + $image = new Swift_Image('', 'image.gif', 'image/gif'); + + $cid = $message->embed($image); + $message->setBody('HTML part', 'text/html'); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + $imgId = $image->getId(); + + $stream = new Swift_ByteStream_ArrayByteStream(); + + $message->toByteStream($stream); + + $this->assertPatternInStream( + '~^'. + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: test subject'."\r\n". + 'From: user@domain.tld'."\r\n". + 'To: user@domain.tld'."\r\n". + 'Cc: other@domain.tld'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/related;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'HTML part'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: image/gif; name=image.gif'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=image.gif'."\r\n". + 'Content-ID: <'.preg_quote($imgId, '~').'>'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D', + $stream + ); + } + + public function testWritingMessageToByteStreamTwiceProducesCorrectStructure() + { + $message = new Swift_Message(); + $message->setSubject('test subject'); + $message->setTo('user@domain.tld'); + $message->setCc('other@domain.tld'); + $message->setFrom('user@domain.tld'); + + $image = new Swift_Image('', 'image.gif', 'image/gif'); + + $cid = $message->embed($image); + $message->setBody('HTML part', 'text/html'); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + $imgId = $image->getId(); + + $pattern = '~^'. + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: test subject'."\r\n". + 'From: user@domain.tld'."\r\n". + 'To: user@domain.tld'."\r\n". + 'Cc: other@domain.tld'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/related;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'HTML part'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: image/gif; name=image.gif'."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: inline; filename=image.gif'."\r\n". + 'Content-ID: <'.preg_quote($imgId, '~').'>'."\r\n". + "\r\n". + preg_quote(base64_encode(''), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D' + ; + + $streamA = new Swift_ByteStream_ArrayByteStream(); + $streamB = new Swift_ByteStream_ArrayByteStream(); + + $message->toByteStream($streamA); + $message->toByteStream($streamB); + + $this->assertPatternInStream($pattern, $streamA); + $this->assertPatternInStream($pattern, $streamB); + } + + public function testWritingMessageToByteStreamTwiceUsingAFileAttachment() + { + $message = new Swift_Message(); + $message->setSubject('test subject'); + $message->setTo('user@domain.tld'); + $message->setCc('other@domain.tld'); + $message->setFrom('user@domain.tld'); + + $attachment = Swift_Attachment::fromPath($this->_attFile); + + $message->attach($attachment); + + $message->setBody('HTML part', 'text/html'); + + $id = $message->getId(); + $date = preg_quote(date('r', $message->getDate()), '~'); + $boundary = $message->getBoundary(); + + $streamA = new Swift_ByteStream_ArrayByteStream(); + $streamB = new Swift_ByteStream_ArrayByteStream(); + + $pattern = '~^'. + 'Message-ID: <'.$id.'>'."\r\n". + 'Date: '.$date."\r\n". + 'Subject: test subject'."\r\n". + 'From: user@domain.tld'."\r\n". + 'To: user@domain.tld'."\r\n". + 'Cc: other@domain.tld'."\r\n". + 'MIME-Version: 1.0'."\r\n". + 'Content-Type: multipart/mixed;'."\r\n". + ' boundary="'.$boundary.'"'."\r\n". + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: text/html; charset=utf-8'."\r\n". + 'Content-Transfer-Encoding: quoted-printable'."\r\n". + "\r\n". + 'HTML part'. + "\r\n\r\n". + '--'.$boundary."\r\n". + 'Content-Type: '.$this->_attFileType.'; name='.$this->_attFileName."\r\n". + 'Content-Transfer-Encoding: base64'."\r\n". + 'Content-Disposition: attachment; filename='.$this->_attFileName."\r\n". + "\r\n". + preg_quote(base64_encode(file_get_contents($this->_attFile)), '~'). + "\r\n\r\n". + '--'.$boundary.'--'."\r\n". + '$~D' + ; + + $message->toByteStream($streamA); + $message->toByteStream($streamB); + + $this->assertPatternInStream($pattern, $streamA); + $this->assertPatternInStream($pattern, $streamB); + } + + // -- Helpers + + public function assertPatternInStream($pattern, $stream, $message = '%s') + { + $string = ''; + while (false !== $bytes = $stream->read(8192)) { + $string .= $bytes; + } + $this->assertRegExp($pattern, $string, $message); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug518Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug518Test.php new file mode 100644 index 0000000..b83984f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug518Test.php @@ -0,0 +1,38 @@ +setTo('foo@bar.com'); + + $that = $this; + $messageValidation = function ($m) use ($that) { + //the getTo should return the same value as we put in + $that->assertEquals('foo@bar.com', key($m->getTo()), 'The message has changed after it was put to the memory queue'); + + return true; + }; + + $transport = m::mock('Swift_Transport'); + $transport->shouldReceive('isStarted')->andReturn(true); + $transport->shouldReceive('send') + ->with(m::on($messageValidation), $failedRecipients) + ->andReturn(1); + + $memorySpool = new Swift_MemorySpool(); + $memorySpool->queueMessage($message); + + /* + * The message is queued in memory. + * Lets change the message + */ + $message->setTo('other@value.com'); + + $memorySpool->flushQueue($transport, $failedRecipients); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug51Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug51Test.php new file mode 100644 index 0000000..b9c33b0 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug51Test.php @@ -0,0 +1,121 @@ +markTestSkipped( + 'Cannot run test without a writable directory to use ('. + 'define SWIFT_TMP_DIR in tests/config.php if you wish to run this test)' + ); + } + + $this->_attachmentFile = SWIFT_TMP_DIR.'/attach.rand.bin'; + file_put_contents($this->_attachmentFile, ''); + + $this->_outputFile = SWIFT_TMP_DIR.'/attach.out.bin'; + file_put_contents($this->_outputFile, ''); + } + + public function tearDown() + { + unlink($this->_attachmentFile); + unlink($this->_outputFile); + } + + public function testAttachmentsDoNotGetTruncatedUsingToByteStream() + { + //Run 100 times with 10KB attachments + for ($i = 0; $i < 10; ++$i) { + $message = $this->_createMessageWithRandomAttachment( + 10000, $this->_attachmentFile + ); + + file_put_contents($this->_outputFile, ''); + $message->toByteStream( + new Swift_ByteStream_FileByteStream($this->_outputFile, true) + ); + + $emailSource = file_get_contents($this->_outputFile); + + $this->assertAttachmentFromSourceMatches( + file_get_contents($this->_attachmentFile), + $emailSource + ); + } + } + + public function testAttachmentsDoNotGetTruncatedUsingToString() + { + //Run 100 times with 10KB attachments + for ($i = 0; $i < 10; ++$i) { + $message = $this->_createMessageWithRandomAttachment( + 10000, $this->_attachmentFile + ); + + $emailSource = $message->toString(); + + $this->assertAttachmentFromSourceMatches( + file_get_contents($this->_attachmentFile), + $emailSource + ); + } + } + + // -- Custom Assertions + + public function assertAttachmentFromSourceMatches($attachmentData, $source) + { + $encHeader = 'Content-Transfer-Encoding: base64'; + $base64declaration = strpos($source, $encHeader); + + $attachmentDataStart = strpos($source, "\r\n\r\n", $base64declaration); + $attachmentDataEnd = strpos($source, "\r\n--", $attachmentDataStart); + + if (false === $attachmentDataEnd) { + $attachmentBase64 = trim(substr($source, $attachmentDataStart)); + } else { + $attachmentBase64 = trim(substr( + $source, $attachmentDataStart, + $attachmentDataEnd - $attachmentDataStart + )); + } + + $this->assertIdenticalBinary($attachmentData, base64_decode($attachmentBase64)); + } + + // -- Creation Methods + + private function _fillFileWithRandomBytes($byteCount, $file) + { + // I was going to use dd with if=/dev/random but this way seems more + // cross platform even if a hella expensive!! + + file_put_contents($file, ''); + $fp = fopen($file, 'wb'); + for ($i = 0; $i < $byteCount; ++$i) { + $byteVal = rand(0, 255); + fwrite($fp, pack('i', $byteVal)); + } + fclose($fp); + } + + private function _createMessageWithRandomAttachment($size, $attachmentPath) + { + $this->_fillFileWithRandomBytes($size, $attachmentPath); + + $message = Swift_Message::newInstance() + ->setSubject('test') + ->setBody('test') + ->setFrom('a@b.c') + ->setTo('d@e.f') + ->attach(Swift_Attachment::fromPath($attachmentPath)) + ; + + return $message; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug534Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug534Test.php new file mode 100644 index 0000000..263cae5 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug534Test.php @@ -0,0 +1,38 @@ +setFrom('from@example.com') + ->setTo('to@example.com') + ->setSubject('test') + ; + $cid = $message->embed(Swift_Image::fromPath(__DIR__.'/../../_samples/files/swiftmailer.png')); + $message->setBody('', 'text/html'); + + $that = $this; + $messageValidation = function (Swift_Mime_Message $message) use ($that) { + preg_match('/cid:(.*)"/', $message->toString(), $matches); + $cid = $matches[1]; + preg_match('/Content-ID: <(.*)>/', $message->toString(), $matches); + $contentId = $matches[1]; + $that->assertEquals($cid, $contentId, 'cid in body and mime part Content-ID differ'); + + return true; + }; + + $failedRecipients = array(); + + $transport = m::mock('Swift_Transport'); + $transport->shouldReceive('isStarted')->andReturn(true); + $transport->shouldReceive('send')->with(m::on($messageValidation), $failedRecipients)->andReturn(1); + + $memorySpool = new Swift_MemorySpool(); + $memorySpool->queueMessage($message); + $memorySpool->flushQueue($transport, $failedRecipients); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug71Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug71Test.php new file mode 100644 index 0000000..4b80453 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug71Test.php @@ -0,0 +1,20 @@ +_message = new Swift_Message('test'); + } + + public function testCallingToStringAfterSettingNewBodyReflectsChanges() + { + $this->_message->setBody('BODY1'); + $this->assertRegExp('/BODY1/', $this->_message->toString()); + + $this->_message->setBody('BODY2'); + $this->assertRegExp('/BODY2/', $this->_message->toString()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug76Test.php b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug76Test.php new file mode 100644 index 0000000..c2b12cb --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug76Test.php @@ -0,0 +1,82 @@ +markTestSkipped( + 'Cannot run test without a writable directory to use ('. + 'define SWIFT_TMP_DIR in tests/config.php if you wish to run this test)' + ); + } + + $this->_inputFile = SWIFT_TMP_DIR.'/in.bin'; + file_put_contents($this->_inputFile, ''); + + $this->_outputFile = SWIFT_TMP_DIR.'/out.bin'; + file_put_contents($this->_outputFile, ''); + + $this->_encoder = $this->_createEncoder(); + } + + public function tearDown() + { + unlink($this->_inputFile); + unlink($this->_outputFile); + } + + public function testBase64EncodedLineLengthNeverExceeds76CharactersEvenIfArgsDo() + { + $this->_fillFileWithRandomBytes(1000, $this->_inputFile); + + $os = $this->_createStream($this->_inputFile); + $is = $this->_createStream($this->_outputFile); + + $this->_encoder->encodeByteStream($os, $is, 0, 80); //Exceeds 76 + + $this->assertMaxLineLength(76, $this->_outputFile, + '%s: Line length should not exceed 76 characters' + ); + } + + // -- Custom Assertions + + public function assertMaxLineLength($length, $filePath, $message = '%s') + { + $lines = file($filePath); + foreach ($lines as $line) { + $this->assertTrue((strlen(trim($line)) <= 76), $message); + } + } + + // -- Creation Methods + + private function _fillFileWithRandomBytes($byteCount, $file) + { + // I was going to use dd with if=/dev/random but this way seems more + // cross platform even if a hella expensive!! + + file_put_contents($file, ''); + $fp = fopen($file, 'wb'); + for ($i = 0; $i < $byteCount; ++$i) { + $byteVal = rand(0, 255); + fwrite($fp, pack('i', $byteVal)); + } + fclose($fp); + } + + private function _createEncoder() + { + return new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + } + + private function _createStream($file) + { + return new Swift_ByteStream_FileByteStream($file, true); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/fixtures/EsmtpTransportFixture.php b/vendor/swiftmailer/swiftmailer/tests/fixtures/EsmtpTransportFixture.php new file mode 100644 index 0000000..d56d88d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/fixtures/EsmtpTransportFixture.php @@ -0,0 +1,10 @@ +level = $level; + $this->string = $string; + $this->contentType = $contentType; + } + + public function getNestingLevel() + { + return $this->level; + } + + public function toString() + { + return $this->string; + } + + public function getContentType() + { + return $this->contentType; + } + + // These methods are here to account for the implemented interfaces + public function getId() + { + } + public function getHeaders() + { + } + public function getBody() + { + } + public function setBody($body, $contentType = null) + { + } + public function toByteStream(Swift_InputByteStream $is) + { + } + public function charsetChanged($charset) + { + } + public function encoderChanged(Swift_Mime_ContentEncoder $encoder) + { + } + public function getChildren() + { + } + public function setChildren(array $children) + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/smoke.conf.php.default b/vendor/swiftmailer/swiftmailer/tests/smoke.conf.php.default new file mode 100644 index 0000000..0de2763 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/smoke.conf.php.default @@ -0,0 +1,63 @@ +_attFile = __DIR__.'/../../../_samples/files/textfile.zip'; + } + + public function testAttachmentSending() + { + $mailer = $this->_getMailer(); + $message = Swift_Message::newInstance() + ->setSubject('[Swift Mailer] AttachmentSmokeTest') + ->setFrom(array(SWIFT_SMOKE_EMAIL_ADDRESS => 'Swift Mailer')) + ->setTo(SWIFT_SMOKE_EMAIL_ADDRESS) + ->setBody('This message should contain an attached ZIP file (named "textfile.zip").'.PHP_EOL. + 'When unzipped, the archive should produce a text file which reads:'.PHP_EOL. + '"This is part of a Swift Mailer v4 smoke test."' + ) + ->attach(Swift_Attachment::fromPath($this->_attFile)) + ; + $this->assertEquals(1, $mailer->send($message), + '%s: The smoke test should send a single message' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/BasicSmokeTest.php b/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/BasicSmokeTest.php new file mode 100644 index 0000000..c7501d4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/BasicSmokeTest.php @@ -0,0 +1,23 @@ +_getMailer(); + $message = Swift_Message::newInstance() + ->setSubject('[Swift Mailer] BasicSmokeTest') + ->setFrom(array(SWIFT_SMOKE_EMAIL_ADDRESS => 'Swift Mailer')) + ->setTo(SWIFT_SMOKE_EMAIL_ADDRESS) + ->setBody('One, two, three, four, five...'.PHP_EOL. + 'six, seven, eight...' + ) + ; + $this->assertEquals(1, $mailer->send($message), + '%s: The smoke test should send a single message' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/HtmlWithAttachmentSmokeTest.php b/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/HtmlWithAttachmentSmokeTest.php new file mode 100644 index 0000000..a589752 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/HtmlWithAttachmentSmokeTest.php @@ -0,0 +1,29 @@ +_attFile = __DIR__.'/../../../_samples/files/textfile.zip'; + } + + public function testAttachmentSending() + { + $mailer = $this->_getMailer(); + $message = Swift_Message::newInstance('[Swift Mailer] HtmlWithAttachmentSmokeTest') + ->setFrom(array(SWIFT_SMOKE_EMAIL_ADDRESS => 'Swift Mailer')) + ->setTo(SWIFT_SMOKE_EMAIL_ADDRESS) + ->attach(Swift_Attachment::fromPath($this->_attFile)) + ->setBody('

This HTML-formatted message should contain an attached ZIP file (named "textfile.zip").'.PHP_EOL. + 'When unzipped, the archive should produce a text file which reads:

'.PHP_EOL. + '

This is part of a Swift Mailer v4 smoke test.

', 'text/html' + ) + ; + $this->assertEquals(1, $mailer->send($message), + '%s: The smoke test should send a single message' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/InternationalSmokeTest.php b/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/InternationalSmokeTest.php new file mode 100644 index 0000000..e7c695e --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/InternationalSmokeTest.php @@ -0,0 +1,37 @@ +_attFile = __DIR__.'/../../../_samples/files/textfile.zip'; + } + + public function testAttachmentSending() + { + $mailer = $this->_getMailer(); + $message = Swift_Message::newInstance() + ->setCharset('utf-8') + ->setSubject('[Swift Mailer] InternationalSmokeTest (διεθνής)') + ->setFrom(array(SWIFT_SMOKE_EMAIL_ADDRESS => 'Χριστοφορου (Swift Mailer)')) + ->setTo(SWIFT_SMOKE_EMAIL_ADDRESS) + ->setBody('This message should contain an attached ZIP file (named "κείμενο, εδάφιο, θέμα.zip").'.PHP_EOL. + 'When unzipped, the archive should produce a text file which reads:'.PHP_EOL. + '"This is part of a Swift Mailer v4 smoke test."'.PHP_EOL. + PHP_EOL. + 'Following is some arbitrary Greek text:'.PHP_EOL. + 'Δεν βρέθηκαν λέξεις.' + ) + ->attach(Swift_Attachment::fromPath($this->_attFile) + ->setContentType('application/zip') + ->setFilename('κείμενο, εδάφιο, θέμα.zip') + ) + ; + $this->assertEquals(1, $mailer->send($message), + '%s: The smoke test should send a single message' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/ByteStream/ArrayByteStreamTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/ByteStream/ArrayByteStreamTest.php new file mode 100644 index 0000000..0193484 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/ByteStream/ArrayByteStreamTest.php @@ -0,0 +1,204 @@ +_createArrayStream($input); + $output = array(); + while (false !== $bytes = $bs->read(1)) { + $output[] = $bytes; + } + $this->assertEquals($input, $output, + '%s: Bytes read from stream should be the same as bytes in constructor' + ); + } + + public function testReadingMultipleBytesFromBaseInput() + { + $input = array('a', 'b', 'c', 'd'); + $bs = $this->_createArrayStream($input); + $output = array(); + while (false !== $bytes = $bs->read(2)) { + $output[] = $bytes; + } + $this->assertEquals(array('ab', 'cd'), $output, + '%s: Bytes read from stream should be in pairs' + ); + } + + public function testReadingOddOffsetOnLastByte() + { + $input = array('a', 'b', 'c', 'd', 'e'); + $bs = $this->_createArrayStream($input); + $output = array(); + while (false !== $bytes = $bs->read(2)) { + $output[] = $bytes; + } + $this->assertEquals(array('ab', 'cd', 'e'), $output, + '%s: Bytes read from stream should be in pairs except final read' + ); + } + + public function testSettingPointerPartway() + { + $input = array('a', 'b', 'c'); + $bs = $this->_createArrayStream($input); + $bs->setReadPointer(1); + $this->assertEquals('b', $bs->read(1), + '%s: Byte should be second byte since pointer as at offset 1' + ); + } + + public function testResettingPointerAfterExhaustion() + { + $input = array('a', 'b', 'c'); + $bs = $this->_createArrayStream($input); + + while (false !== $bs->read(1)); + + $bs->setReadPointer(0); + $this->assertEquals('a', $bs->read(1), + '%s: Byte should be first byte since pointer as at offset 0' + ); + } + + public function testPointerNeverSetsBelowZero() + { + $input = array('a', 'b', 'c'); + $bs = $this->_createArrayStream($input); + + $bs->setReadPointer(-1); + $this->assertEquals('a', $bs->read(1), + '%s: Byte should be first byte since pointer should be at offset 0' + ); + } + + public function testPointerNeverSetsAboveStackSize() + { + $input = array('a', 'b', 'c'); + $bs = $this->_createArrayStream($input); + + $bs->setReadPointer(3); + $this->assertSame(false, $bs->read(1), + '%s: Stream should be at end and thus return false' + ); + } + + public function testBytesCanBeWrittenToStream() + { + $input = array('a', 'b', 'c'); + $bs = $this->_createArrayStream($input); + + $bs->write('de'); + + $output = array(); + while (false !== $bytes = $bs->read(1)) { + $output[] = $bytes; + } + $this->assertEquals(array('a', 'b', 'c', 'd', 'e'), $output, + '%s: Bytes read from stream should be from initial stack + written' + ); + } + + public function testContentsCanBeFlushed() + { + $input = array('a', 'b', 'c'); + $bs = $this->_createArrayStream($input); + + $bs->flushBuffers(); + + $this->assertSame(false, $bs->read(1), + '%s: Contents have been flushed so read() should return false' + ); + } + + public function testConstructorCanTakeStringArgument() + { + $bs = $this->_createArrayStream('abc'); + $output = array(); + while (false !== $bytes = $bs->read(1)) { + $output[] = $bytes; + } + $this->assertEquals(array('a', 'b', 'c'), $output, + '%s: Bytes read from stream should be the same as bytes in constructor' + ); + } + + public function testBindingOtherStreamsMirrorsWriteOperations() + { + $bs = $this->_createArrayStream(''); + $is1 = $this->getMock('Swift_InputByteStream'); + $is2 = $this->getMock('Swift_InputByteStream'); + + $is1->expects($this->at(0)) + ->method('write') + ->with('x'); + $is1->expects($this->at(1)) + ->method('write') + ->with('y'); + $is2->expects($this->at(0)) + ->method('write') + ->with('x'); + $is2->expects($this->at(1)) + ->method('write') + ->with('y'); + + $bs->bind($is1); + $bs->bind($is2); + + $bs->write('x'); + $bs->write('y'); + } + + public function testBindingOtherStreamsMirrorsFlushOperations() + { + $bs = $this->_createArrayStream(''); + $is1 = $this->getMock('Swift_InputByteStream'); + $is2 = $this->getMock('Swift_InputByteStream'); + + $is1->expects($this->once()) + ->method('flushBuffers'); + $is2->expects($this->once()) + ->method('flushBuffers'); + + $bs->bind($is1); + $bs->bind($is2); + + $bs->flushBuffers(); + } + + public function testUnbindingStreamPreventsFurtherWrites() + { + $bs = $this->_createArrayStream(''); + $is1 = $this->getMock('Swift_InputByteStream'); + $is2 = $this->getMock('Swift_InputByteStream'); + + $is1->expects($this->at(0)) + ->method('write') + ->with('x'); + $is1->expects($this->at(1)) + ->method('write') + ->with('y'); + $is2->expects($this->once()) + ->method('write') + ->with('x'); + + $bs->bind($is1); + $bs->bind($is2); + + $bs->write('x'); + + $bs->unbind($is2); + + $bs->write('y'); + } + + // -- Creation Methods + + private function _createArrayStream($input) + { + return new Swift_ByteStream_ArrayByteStream($input); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/GenericFixedWidthReaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/GenericFixedWidthReaderTest.php new file mode 100644 index 0000000..3f7a46c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/GenericFixedWidthReaderTest.php @@ -0,0 +1,43 @@ +assertSame(1, $reader->getInitialByteSize()); + + $reader = new Swift_CharacterReader_GenericFixedWidthReader(4); + $this->assertSame(4, $reader->getInitialByteSize()); + } + + public function testValidationValueIsBasedOnOctetCount() + { + $reader = new Swift_CharacterReader_GenericFixedWidthReader(4); + + $this->assertSame( + 1, $reader->validateByteSequence(array(0x01, 0x02, 0x03), 3) + ); //3 octets + + $this->assertSame( + 2, $reader->validateByteSequence(array(0x01, 0x0A), 2) + ); //2 octets + + $this->assertSame( + 3, $reader->validateByteSequence(array(0xFE), 1) + ); //1 octet + + $this->assertSame( + 0, $reader->validateByteSequence(array(0xFE, 0x03, 0x67, 0x9A), 4) + ); //All 4 octets + } + + public function testValidationFailsIfTooManyOctets() + { + $reader = new Swift_CharacterReader_GenericFixedWidthReader(6); + + $this->assertSame(-1, $reader->validateByteSequence( + array(0xFE, 0x03, 0x67, 0x9A, 0x10, 0x09, 0x85), 7 + )); //7 octets + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/UsAsciiReaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/UsAsciiReaderTest.php new file mode 100644 index 0000000..41f8f70 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/UsAsciiReaderTest.php @@ -0,0 +1,52 @@ +read($size); ) { + $c .= $bytes; + $size = $v->validateCharacter($c); + if (-1 == $size) { + throw new Exception( ... invalid char .. ); + } elseif (0 == $size) { + return $c; //next character in $os + } + } + + */ + + private $_reader; + + public function setUp() + { + $this->_reader = new Swift_CharacterReader_UsAsciiReader(); + } + + public function testAllValidAsciiCharactersReturnZero() + { + for ($ordinal = 0x00; $ordinal <= 0x7F; ++$ordinal) { + $this->assertSame( + 0, $this->_reader->validateByteSequence(array($ordinal), 1) + ); + } + } + + public function testMultipleBytesAreInvalid() + { + for ($ordinal = 0x00; $ordinal <= 0x7F; $ordinal += 2) { + $this->assertSame( + -1, $this->_reader->validateByteSequence(array($ordinal, $ordinal + 1), 2) + ); + } + } + + public function testBytesAboveAsciiRangeAreInvalid() + { + for ($ordinal = 0x80; $ordinal <= 0xFF; ++$ordinal) { + $this->assertSame( + -1, $this->_reader->validateByteSequence(array($ordinal), 1) + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/Utf8ReaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/Utf8ReaderTest.php new file mode 100644 index 0000000..34e9c91 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/Utf8ReaderTest.php @@ -0,0 +1,65 @@ +_reader = new Swift_CharacterReader_Utf8Reader(); + } + + public function testLeading7BitOctetCausesReturnZero() + { + for ($ordinal = 0x00; $ordinal <= 0x7F; ++$ordinal) { + $this->assertSame( + 0, $this->_reader->validateByteSequence(array($ordinal), 1) + ); + } + } + + public function testLeadingByteOf2OctetCharCausesReturn1() + { + for ($octet = 0xC0; $octet <= 0xDF; ++$octet) { + $this->assertSame( + 1, $this->_reader->validateByteSequence(array($octet), 1) + ); + } + } + + public function testLeadingByteOf3OctetCharCausesReturn2() + { + for ($octet = 0xE0; $octet <= 0xEF; ++$octet) { + $this->assertSame( + 2, $this->_reader->validateByteSequence(array($octet), 1) + ); + } + } + + public function testLeadingByteOf4OctetCharCausesReturn3() + { + for ($octet = 0xF0; $octet <= 0xF7; ++$octet) { + $this->assertSame( + 3, $this->_reader->validateByteSequence(array($octet), 1) + ); + } + } + + public function testLeadingByteOf5OctetCharCausesReturn4() + { + for ($octet = 0xF8; $octet <= 0xFB; ++$octet) { + $this->assertSame( + 4, $this->_reader->validateByteSequence(array($octet), 1) + ); + } + } + + public function testLeadingByteOf6OctetCharCausesReturn5() + { + for ($octet = 0xFC; $octet <= 0xFD; ++$octet) { + $this->assertSame( + 5, $this->_reader->validateByteSequence(array($octet), 1) + ); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php new file mode 100644 index 0000000..e22e496 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php @@ -0,0 +1,360 @@ +_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importString(pack('C*', + 0xD0, 0x94, + 0xD0, 0xB6, + 0xD0, 0xBE, + 0xD1, 0x8D, + 0xD0, 0xBB, + 0xD0, 0xB0 + ) + ); + } + + public function testCharactersWrittenUseValidator() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $stream->write(pack('C*', + 0xD0, 0xBB, + 0xD1, 0x8E, + 0xD0, 0xB1, + 0xD1, 0x8B, + 0xD1, 0x85 + ) + ); + } + + public function testReadCharactersAreInTact() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + //String + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + //Stream + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $stream->write(pack('C*', + 0xD0, 0xBB, + 0xD1, 0x8E, + 0xD0, 0xB1, + 0xD1, 0x8B, + 0xD1, 0x85 + ) + ); + + $this->assertIdenticalBinary(pack('C*', 0xD0, 0x94), $stream->read(1)); + $this->assertIdenticalBinary( + pack('C*', 0xD0, 0xB6, 0xD0, 0xBE), $stream->read(2) + ); + $this->assertIdenticalBinary(pack('C*', 0xD0, 0xBB), $stream->read(1)); + $this->assertIdenticalBinary( + pack('C*', 0xD1, 0x8E, 0xD0, 0xB1, 0xD1, 0x8B), $stream->read(3) + ); + $this->assertIdenticalBinary(pack('C*', 0xD1, 0x85), $stream->read(1)); + + $this->assertSame(false, $stream->read(1)); + } + + public function testCharactersCanBeReadAsByteArrays() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + //String + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + //Stream + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $stream->write(pack('C*', + 0xD0, 0xBB, + 0xD1, 0x8E, + 0xD0, 0xB1, + 0xD1, 0x8B, + 0xD1, 0x85 + ) + ); + + $this->assertEquals(array(0xD0, 0x94), $stream->readBytes(1)); + $this->assertEquals(array(0xD0, 0xB6, 0xD0, 0xBE), $stream->readBytes(2)); + $this->assertEquals(array(0xD0, 0xBB), $stream->readBytes(1)); + $this->assertEquals( + array(0xD1, 0x8E, 0xD0, 0xB1, 0xD1, 0x8B), $stream->readBytes(3) + ); + $this->assertEquals(array(0xD1, 0x85), $stream->readBytes(1)); + + $this->assertSame(false, $stream->readBytes(1)); + } + + public function testRequestingLargeCharCountPastEndOfStream() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $this->assertIdenticalBinary(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE), + $stream->read(100) + ); + + $this->assertSame(false, $stream->read(1)); + } + + public function testRequestingByteArrayCountPastEndOfStream() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $this->assertEquals(array(0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE), + $stream->readBytes(100) + ); + + $this->assertSame(false, $stream->readBytes(1)); + } + + public function testPointerOffsetCanBeSet() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $this->assertIdenticalBinary(pack('C*', 0xD0, 0x94), $stream->read(1)); + + $stream->setPointer(0); + + $this->assertIdenticalBinary(pack('C*', 0xD0, 0x94), $stream->read(1)); + + $stream->setPointer(2); + + $this->assertIdenticalBinary(pack('C*', 0xD0, 0xBE), $stream->read(1)); + } + + public function testContentsCanBeFlushed() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importString(pack('C*', 0xD0, 0x94, 0xD0, 0xB6, 0xD0, 0xBE)); + + $stream->flushContents(); + + $this->assertSame(false, $stream->read(1)); + } + + public function testByteStreamCanBeImportingUsesValidator() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + $os = $this->_getByteStream(); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $os->shouldReceive('setReadPointer') + ->between(0, 1) + ->with(0); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xD0)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0x94)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xD0)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xB6)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xD0)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xBE)); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importByteStream($os); + } + + public function testImportingStreamProducesCorrectCharArray() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + $os = $this->_getByteStream(); + + $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); + + $os->shouldReceive('setReadPointer') + ->between(0, 1) + ->with(0); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xD0)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0x94)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xD0)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xB6)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xD0)); + $os->shouldReceive('read')->once()->andReturn(pack('C*', 0xBE)); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0), 1)->andReturn(1); + + $stream->importByteStream($os); + + $this->assertIdenticalBinary(pack('C*', 0xD0, 0x94), $stream->read(1)); + $this->assertIdenticalBinary(pack('C*', 0xD0, 0xB6), $stream->read(1)); + $this->assertIdenticalBinary(pack('C*', 0xD0, 0xBE), $stream->read(1)); + + $this->assertSame(false, $stream->read(1)); + } + + public function testAlgorithmWithFixedWidthCharsets() + { + $reader = $this->_getReader(); + $factory = $this->_getFactory($reader); + + $reader->shouldReceive('getInitialByteSize') + ->zeroOrMoreTimes() + ->andReturn(2); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD1, 0x8D), 2); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0, 0xBB), 2); + $reader->shouldReceive('validateByteSequence')->once()->with(array(0xD0, 0xB0), 2); + + $stream = new Swift_CharacterStream_ArrayCharacterStream( + $factory, 'utf-8' + ); + $stream->importString(pack('C*', 0xD1, 0x8D, 0xD0, 0xBB, 0xD0, 0xB0)); + + $this->assertIdenticalBinary(pack('C*', 0xD1, 0x8D), $stream->read(1)); + $this->assertIdenticalBinary(pack('C*', 0xD0, 0xBB), $stream->read(1)); + $this->assertIdenticalBinary(pack('C*', 0xD0, 0xB0), $stream->read(1)); + + $this->assertSame(false, $stream->read(1)); + } + + // -- Creation methods + + private function _getReader() + { + return $this->getMockery('Swift_CharacterReader'); + } + + private function _getFactory($reader) + { + $factory = $this->getMockery('Swift_CharacterReaderFactory'); + $factory->shouldReceive('getReaderFor') + ->zeroOrMoreTimes() + ->with('utf-8') + ->andReturn($reader); + + return $factory; + } + + private function _getByteStream() + { + return $this->getMockery('Swift_OutputByteStream'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/DependencyContainerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/DependencyContainerTest.php new file mode 100644 index 0000000..bc4a79b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/DependencyContainerTest.php @@ -0,0 +1,174 @@ +arg1 = $arg1; + $this->arg2 = $arg2; + } +} + +class Swift_DependencyContainerTest extends \PHPUnit_Framework_TestCase +{ + private $_container; + + public function setUp() + { + $this->_container = new Swift_DependencyContainer(); + } + + public function testRegisterAndLookupValue() + { + $this->_container->register('foo')->asValue('bar'); + $this->assertEquals('bar', $this->_container->lookup('foo')); + } + + public function testHasReturnsTrueForRegisteredValue() + { + $this->_container->register('foo')->asValue('bar'); + $this->assertTrue($this->_container->has('foo')); + } + + public function testHasReturnsFalseForUnregisteredValue() + { + $this->assertFalse($this->_container->has('foo')); + } + + public function testRegisterAndLookupNewInstance() + { + $this->_container->register('one')->asNewInstanceOf('One'); + $this->assertInstanceof('One', $this->_container->lookup('one')); + } + + public function testHasReturnsTrueForRegisteredInstance() + { + $this->_container->register('one')->asNewInstanceOf('One'); + $this->assertTrue($this->_container->has('one')); + } + + public function testNewInstanceIsAlwaysNew() + { + $this->_container->register('one')->asNewInstanceOf('One'); + $a = $this->_container->lookup('one'); + $b = $this->_container->lookup('one'); + $this->assertEquals($a, $b); + } + + public function testRegisterAndLookupSharedInstance() + { + $this->_container->register('one')->asSharedInstanceOf('One'); + $this->assertInstanceof('One', $this->_container->lookup('one')); + } + + public function testHasReturnsTrueForSharedInstance() + { + $this->_container->register('one')->asSharedInstanceOf('One'); + $this->assertTrue($this->_container->has('one')); + } + + public function testMultipleSharedInstancesAreSameInstance() + { + $this->_container->register('one')->asSharedInstanceOf('One'); + $a = $this->_container->lookup('one'); + $b = $this->_container->lookup('one'); + $this->assertEquals($a, $b); + } + + public function testNewInstanceWithDependencies() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('one')->asNewInstanceOf('One') + ->withDependencies(array('foo')); + $obj = $this->_container->lookup('one'); + $this->assertSame('FOO', $obj->arg1); + } + + public function testNewInstanceWithMultipleDependencies() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('bar')->asValue(42); + $this->_container->register('one')->asNewInstanceOf('One') + ->withDependencies(array('foo', 'bar')); + $obj = $this->_container->lookup('one'); + $this->assertSame('FOO', $obj->arg1); + $this->assertSame(42, $obj->arg2); + } + + public function testNewInstanceWithInjectedObjects() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('one')->asNewInstanceOf('One'); + $this->_container->register('two')->asNewInstanceOf('One') + ->withDependencies(array('one', 'foo')); + $obj = $this->_container->lookup('two'); + $this->assertEquals($this->_container->lookup('one'), $obj->arg1); + $this->assertSame('FOO', $obj->arg2); + } + + public function testNewInstanceWithAddConstructorValue() + { + $this->_container->register('one')->asNewInstanceOf('One') + ->addConstructorValue('x') + ->addConstructorValue(99); + $obj = $this->_container->lookup('one'); + $this->assertSame('x', $obj->arg1); + $this->assertSame(99, $obj->arg2); + } + + public function testNewInstanceWithAddConstructorLookup() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('bar')->asValue(42); + $this->_container->register('one')->asNewInstanceOf('One') + ->addConstructorLookup('foo') + ->addConstructorLookup('bar'); + + $obj = $this->_container->lookup('one'); + $this->assertSame('FOO', $obj->arg1); + $this->assertSame(42, $obj->arg2); + } + + public function testResolvedDependenciesCanBeLookedUp() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('one')->asNewInstanceOf('One'); + $this->_container->register('two')->asNewInstanceOf('One') + ->withDependencies(array('one', 'foo')); + $deps = $this->_container->createDependenciesFor('two'); + $this->assertEquals( + array($this->_container->lookup('one'), 'FOO'), $deps + ); + } + + public function testArrayOfDependenciesCanBeSpecified() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('one')->asNewInstanceOf('One'); + $this->_container->register('two')->asNewInstanceOf('One') + ->withDependencies(array(array('one', 'foo'), 'foo')); + + $obj = $this->_container->lookup('two'); + $this->assertEquals(array($this->_container->lookup('one'), 'FOO'), $obj->arg1); + $this->assertSame('FOO', $obj->arg2); + } + + public function testAliasCanBeSet() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('bar')->asAliasOf('foo'); + + $this->assertSame('FOO', $this->_container->lookup('bar')); + } + + public function testAliasOfAliasCanBeSet() + { + $this->_container->register('foo')->asValue('FOO'); + $this->_container->register('bar')->asAliasOf('foo'); + $this->_container->register('zip')->asAliasOf('bar'); + $this->_container->register('button')->asAliasOf('zip'); + + $this->assertSame('FOO', $this->_container->lookup('button')); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Base64EncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Base64EncoderTest.php new file mode 100644 index 0000000..1e712fe --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Base64EncoderTest.php @@ -0,0 +1,173 @@ +_encoder = new Swift_Encoder_Base64Encoder(); + } + + /* + There's really no point in testing the entire base64 encoding to the + level QP encoding has been tested. base64_encode() has been in PHP for + years. + */ + + public function testInputOutputRatioIs3to4Bytes() + { + /* + RFC 2045, 6.8 + + The encoding process represents 24-bit groups of input bits as output + strings of 4 encoded characters. Proceeding from left to right, a + 24-bit input group is formed by concatenating 3 8bit input groups. + These 24 bits are then treated as 4 concatenated 6-bit groups, each + of which is translated into a single digit in the base64 alphabet. + */ + + $this->assertEquals( + 'MTIz', $this->_encoder->encodeString('123'), + '%s: 3 bytes of input should yield 4 bytes of output' + ); + $this->assertEquals( + 'MTIzNDU2', $this->_encoder->encodeString('123456'), + '%s: 6 bytes in input should yield 8 bytes of output' + ); + $this->assertEquals( + 'MTIzNDU2Nzg5', $this->_encoder->encodeString('123456789'), + '%s: 9 bytes in input should yield 12 bytes of output' + ); + } + + public function testPadLength() + { + /* + RFC 2045, 6.8 + + Special processing is performed if fewer than 24 bits are available + at the end of the data being encoded. A full encoding quantum is + always completed at the end of a body. When fewer than 24 input bits + are available in an input group, zero bits are added (on the right) + to form an integral number of 6-bit groups. Padding at the end of + the data is performed using the "=" character. Since all base64 + input is an integral number of octets, only the following cases can + arise: (1) the final quantum of encoding input is an integral + multiple of 24 bits; here, the final unit of encoded output will be + an integral multiple of 4 characters with no "=" padding, (2) the + final quantum of encoding input is exactly 8 bits; here, the final + unit of encoded output will be two characters followed by two "=" + padding characters, or (3) the final quantum of encoding input is + exactly 16 bits; here, the final unit of encoded output will be three + characters followed by one "=" padding character. + */ + + for ($i = 0; $i < 30; ++$i) { + $input = pack('C', rand(0, 255)); + $this->assertRegExp( + '~^[a-zA-Z0-9/\+]{2}==$~', $this->_encoder->encodeString($input), + '%s: A single byte should have 2 bytes of padding' + ); + } + + for ($i = 0; $i < 30; ++$i) { + $input = pack('C*', rand(0, 255), rand(0, 255)); + $this->assertRegExp( + '~^[a-zA-Z0-9/\+]{3}=$~', $this->_encoder->encodeString($input), + '%s: Two bytes should have 1 byte of padding' + ); + } + + for ($i = 0; $i < 30; ++$i) { + $input = pack('C*', rand(0, 255), rand(0, 255), rand(0, 255)); + $this->assertRegExp( + '~^[a-zA-Z0-9/\+]{4}$~', $this->_encoder->encodeString($input), + '%s: Three bytes should have no padding' + ); + } + } + + public function testMaximumLineLengthIs76Characters() + { + /* + The encoded output stream must be represented in lines of no more + than 76 characters each. All line breaks or other characters not + found in Table 1 must be ignored by decoding software. + */ + + $input = + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + '1234567890'. + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + '1234567890'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + + $output = + 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQk'.//38 + 'NERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1'."\r\n".//76 * + 'Njc4OTBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3'.//38 + 'h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla'."\r\n".//76 * + 'MTIzNDU2Nzg5MEFCQ0RFRkdISUpLTE1OT1BRUl'.//38 + 'NUVVZXWFla'; //48 + + $this->assertEquals( + $output, $this->_encoder->encodeString($input), + '%s: Lines should be no more than 76 characters' + ); + } + + public function testMaximumLineLengthCanBeSpecified() + { + $input = + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + '1234567890'. + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + '1234567890'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + + $output = + 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQk'.//38 + 'NERUZHSElKS0'."\r\n".//50 * + 'xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OTBhYmNk'.//38 + 'ZWZnaGlqa2xt'."\r\n".//50 * + 'bm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1'.//38 + 'BRUlNUVVZXWF'."\r\n".//50 * + 'laMTIzNDU2Nzg5MEFCQ0RFRkdISUpLTE1OT1BR'.//38 + 'UlNUVVZXWFla'; //50 * + + $this->assertEquals( + $output, $this->_encoder->encodeString($input, 0, 50), + '%s: Lines should be no more than 100 characters' + ); + } + + public function testFirstLineLengthCanBeDifferent() + { + $input = + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + '1234567890'. + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + '1234567890'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + + $output = + 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQk'.//38 + 'NERUZHSElKS0xNTk9QU'."\r\n".//57 * + 'VJTVFVWV1hZWjEyMzQ1Njc4OTBhYmNkZWZnaGl'.//38 + 'qa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLT'."\r\n".//76 * + 'E1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MEFCQ0R'.//38 + 'FRkdISUpLTE1OT1BRUlNUVVZXWFla'; //67 + + $this->assertEquals( + $output, $this->_encoder->encodeString($input, 19), + '%s: First line offset is 19 so first line should be 57 chars long' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/QpEncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/QpEncoderTest.php new file mode 100644 index 0000000..adf485d --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/QpEncoderTest.php @@ -0,0 +1,381 @@ +_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($char); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($ordinal)); + $charStream->shouldReceive('readBytes') + ->atLeast()->times(1) + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + + $this->assertIdenticalBinary($char, $encoder->encodeString($char)); + } + } + + public function testWhiteSpaceAtLineEndingIsEncoded() + { + /* -- RFC 2045, 6.7 -- + (3) (White Space) Octets with values of 9 and 32 MAY be + represented as US-ASCII TAB (HT) and SPACE characters, + respectively, but MUST NOT be so represented at the end + of an encoded line. Any TAB (HT) or SPACE characters + on an encoded line MUST thus be followed on that line + by a printable character. In particular, an "=" at the + end of an encoded line, indicating a soft line break + (see rule #5) may follow one or more TAB (HT) or SPACE + characters. It follows that an octet with decimal + value 9 or 32 appearing at the end of an encoded line + must be represented according to Rule #1. This rule is + necessary because some MTAs (Message Transport Agents, + programs which transport messages from one user to + another, or perform a portion of such transfers) are + known to pad lines of text with SPACEs, and others are + known to remove "white space" characters from the end + of a line. Therefore, when decoding a Quoted-Printable + body, any trailing white space on a line must be + deleted, as it will necessarily have been added by + intermediate transport agents. + */ + + $HT = chr(0x09); //9 + $SPACE = chr(0x20); //32 + + //HT + $string = 'a'.$HT.$HT."\r\n".'b'; + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x09)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x09)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + $this->assertEquals( + 'a'.$HT.'=09'."\r\n".'b', + $encoder->encodeString($string) + ); + + //SPACE + $string = 'a'.$SPACE.$SPACE."\r\n".'b'; + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x20)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x20)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + $this->assertEquals( + 'a'.$SPACE.'=20'."\r\n".'b', + $encoder->encodeString($string) + ); + } + + public function testCRLFIsLeftAlone() + { + /* + (4) (Line Breaks) A line break in a text body, represented + as a CRLF sequence in the text canonical form, must be + represented by a (RFC 822) line break, which is also a + CRLF sequence, in the Quoted-Printable encoding. Since + the canonical representation of media types other than + text do not generally include the representation of + line breaks as CRLF sequences, no hard line breaks + (i.e. line breaks that are intended to be meaningful + and to be displayed to the user) can occur in the + quoted-printable encoding of such types. Sequences + like "=0D", "=0A", "=0A=0D" and "=0D=0A" will routinely + appear in non-text data represented in quoted- + printable, of course. + + Note that many implementations may elect to encode the + local representation of various content types directly + rather than converting to canonical form first, + encoding, and then converting back to local + representation. In particular, this may apply to plain + text material on systems that use newline conventions + other than a CRLF terminator sequence. Such an + implementation optimization is permissible, but only + when the combined canonicalization-encoding step is + equivalent to performing the three steps separately. + */ + + $string = 'a'."\r\n".'b'."\r\n".'c'."\r\n"; + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(ord('c'))); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes')->once()->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes')->once()->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + $this->assertEquals($string, $encoder->encodeString($string)); + } + + public function testLinesLongerThan76CharactersAreSoftBroken() + { + /* + (5) (Soft Line Breaks) The Quoted-Printable encoding + REQUIRES that encoded lines be no more than 76 + characters long. If longer lines are to be encoded + with the Quoted-Printable encoding, "soft" line breaks + must be used. An equal sign as the last character on a + encoded line indicates such a non-significant ("soft") + line break in the encoded text. + */ + + $input = str_repeat('a', 140); + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($input); + + $output = ''; + for ($i = 0; $i < 140; ++$i) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + + if (75 == $i) { + $output .= "=\r\n"; + } + $output .= 'a'; + } + + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + $this->assertEquals($output, $encoder->encodeString($input)); + } + + public function testMaxLineLengthCanBeSpecified() + { + $input = str_repeat('a', 100); + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($input); + + $output = ''; + for ($i = 0; $i < 100; ++$i) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + + if (53 == $i) { + $output .= "=\r\n"; + } + $output .= 'a'; + } + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + $this->assertEquals($output, $encoder->encodeString($input, 0, 54)); + } + + public function testBytesBelowPermittedRangeAreEncoded() + { + /* + According to Rule (1 & 2) + */ + + foreach (range(0, 32) as $ordinal) { + $char = chr($ordinal); + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($char); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($ordinal)); + $charStream->shouldReceive('readBytes') + ->atLeast()->times(1) + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + + $this->assertEquals( + sprintf('=%02X', $ordinal), $encoder->encodeString($char) + ); + } + } + + public function testDecimalByte61IsEncoded() + { + /* + According to Rule (1 & 2) + */ + + $char = '='; + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($char); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(61)); + $charStream->shouldReceive('readBytes') + ->atLeast()->times(1) + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + + $this->assertEquals('=3D', $encoder->encodeString('=')); + } + + public function testBytesAbovePermittedRangeAreEncoded() + { + /* + According to Rule (1 & 2) + */ + + foreach (range(127, 255) as $ordinal) { + $char = chr($ordinal); + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($char); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($ordinal)); + $charStream->shouldReceive('readBytes') + ->atLeast()->times(1) + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + + $this->assertEquals( + sprintf('=%02X', $ordinal), $encoder->encodeString($char) + ); + } + } + + public function testFirstLineLengthCanBeDifferent() + { + $input = str_repeat('a', 140); + + $charStream = $this->_createCharStream(); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($input); + + $output = ''; + for ($i = 0; $i < 140; ++$i) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + + if (53 == $i || 53 + 75 == $i) { + $output .= "=\r\n"; + } + $output .= 'a'; + } + + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(false); + + $encoder = new Swift_Encoder_QpEncoder($charStream); + $this->assertEquals( + $output, $encoder->encodeString($input, 22), + '%s: First line should start at offset 22 so can only have max length 54' + ); + } + + // -- Creation methods + + private function _createCharStream() + { + return $this->getMockery('Swift_CharacterStream')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Rfc2231EncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Rfc2231EncoderTest.php new file mode 100644 index 0000000..28eae6f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Rfc2231EncoderTest.php @@ -0,0 +1,141 @@ +getMockery('Swift_CharacterStream'); + + $string = ''; + foreach (range(0x00, 0x7F) as $octet) { + $char = pack('C', $octet); + $string .= $char; + $charStream->shouldReceive('read') + ->once() + ->andReturn($char); + } + + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + $charStream->shouldReceive('read') + ->atLeast()->times(1) + ->andReturn(false); + + $encoder = new Swift_Encoder_Rfc2231Encoder($charStream); + $encoded = $encoder->encodeString($string); + + foreach (explode("\r\n", $encoded) as $line) { + $this->assertRegExp($this->_rfc2045Token, $line, + '%s: Encoder should always return a valid RFC 2045 token.'); + } + } + + public function testEncodingNonAsciiCharactersProducesValidToken() + { + $charStream = $this->getMockery('Swift_CharacterStream'); + + $string = ''; + foreach (range(0x80, 0xFF) as $octet) { + $char = pack('C', $octet); + $string .= $char; + $charStream->shouldReceive('read') + ->once() + ->andReturn($char); + } + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + $charStream->shouldReceive('read') + ->atLeast()->times(1) + ->andReturn(false); + $encoder = new Swift_Encoder_Rfc2231Encoder($charStream); + + $encoded = $encoder->encodeString($string); + + foreach (explode("\r\n", $encoded) as $line) { + $this->assertRegExp($this->_rfc2045Token, $line, + '%s: Encoder should always return a valid RFC 2045 token.'); + } + } + + public function testMaximumLineLengthCanBeSet() + { + $charStream = $this->getMockery('Swift_CharacterStream'); + + $string = ''; + for ($x = 0; $x < 200; ++$x) { + $char = 'a'; + $string .= $char; + $charStream->shouldReceive('read') + ->once() + ->andReturn($char); + } + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + $charStream->shouldReceive('read') + ->atLeast()->times(1) + ->andReturn(false); + $encoder = new Swift_Encoder_Rfc2231Encoder($charStream); + + $encoded = $encoder->encodeString($string, 0, 75); + + $this->assertEquals( + str_repeat('a', 75)."\r\n". + str_repeat('a', 75)."\r\n". + str_repeat('a', 50), + $encoded, + '%s: Lines should be wrapped at each 75 characters' + ); + } + + public function testFirstLineCanHaveShorterLength() + { + $charStream = $this->getMockery('Swift_CharacterStream'); + + $string = ''; + for ($x = 0; $x < 200; ++$x) { + $char = 'a'; + $string .= $char; + $charStream->shouldReceive('read') + ->once() + ->andReturn($char); + } + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importString') + ->once() + ->with($string); + $charStream->shouldReceive('read') + ->atLeast()->times(1) + ->andReturn(false); + $encoder = new Swift_Encoder_Rfc2231Encoder($charStream); + $encoded = $encoder->encodeString($string, 25, 75); + + $this->assertEquals( + str_repeat('a', 50)."\r\n". + str_repeat('a', 75)."\r\n". + str_repeat('a', 75), + $encoded, + '%s: First line should be 25 bytes shorter than the others.' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/CommandEventTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/CommandEventTest.php new file mode 100644 index 0000000..7e59802 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/CommandEventTest.php @@ -0,0 +1,36 @@ +_createEvent($this->_createTransport(), "FOO\r\n"); + $this->assertEquals("FOO\r\n", $evt->getCommand()); + } + + public function testSuccessCodesCanBeFetchedViaGetter() + { + $evt = $this->_createEvent($this->_createTransport(), "FOO\r\n", array(250)); + $this->assertEquals(array(250), $evt->getSuccessCodes()); + } + + public function testSourceIsBuffer() + { + $transport = $this->_createTransport(); + $evt = $this->_createEvent($transport, "FOO\r\n"); + $ref = $evt->getSource(); + $this->assertEquals($transport, $ref); + } + + // -- Creation Methods + + private function _createEvent(Swift_Transport $source, $command, $successCodes = array()) + { + return new Swift_Events_CommandEvent($source, $command, $successCodes); + } + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/EventObjectTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/EventObjectTest.php new file mode 100644 index 0000000..62a91be --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/EventObjectTest.php @@ -0,0 +1,34 @@ +_createEvent($source); + $ref = $evt->getSource(); + $this->assertEquals($source, $ref); + } + + public function testEventDoesNotHaveCancelledBubbleWhenNew() + { + $source = new stdClass(); + $evt = $this->_createEvent($source); + $this->assertFalse($evt->bubbleCancelled()); + } + + public function testBubbleCanBeCancelledInEvent() + { + $source = new stdClass(); + $evt = $this->_createEvent($source); + $evt->cancelBubble(); + $this->assertTrue($evt->bubbleCancelled()); + } + + // -- Creation Methods + + private function _createEvent($source) + { + return new Swift_Events_EventObject($source); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/ResponseEventTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/ResponseEventTest.php new file mode 100644 index 0000000..e0f3e36 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/ResponseEventTest.php @@ -0,0 +1,40 @@ +_createEvent($this->_createTransport(), "250 Ok\r\n", true); + $this->assertEquals("250 Ok\r\n", $evt->getResponse(), + '%s: Response should be available via getResponse()' + ); + } + + public function testResultCanBeFetchedViaGetter() + { + $evt = $this->_createEvent($this->_createTransport(), "250 Ok\r\n", false); + $this->assertFalse($evt->isValid(), + '%s: Result should be checkable via isValid()' + ); + } + + public function testSourceIsBuffer() + { + $transport = $this->_createTransport(); + $evt = $this->_createEvent($transport, "250 Ok\r\n", true); + $ref = $evt->getSource(); + $this->assertEquals($transport, $ref); + } + + // -- Creation Methods + + private function _createEvent(Swift_Transport $source, $response, $result) + { + return new Swift_Events_ResponseEvent($source, $response, $result); + } + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SendEventTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SendEventTest.php new file mode 100644 index 0000000..8003870 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SendEventTest.php @@ -0,0 +1,99 @@ +_createMessage(); + $transport = $this->_createTransport(); + + $evt = $this->_createEvent($transport, $message); + + $ref = $evt->getMessage(); + $this->assertEquals($message, $ref, + '%s: Message should be returned from getMessage()' + ); + } + + public function testTransportCanBeFetchViaGetter() + { + $message = $this->_createMessage(); + $transport = $this->_createTransport(); + + $evt = $this->_createEvent($transport, $message); + + $ref = $evt->getTransport(); + $this->assertEquals($transport, $ref, + '%s: Transport should be returned from getTransport()' + ); + } + + public function testTransportCanBeFetchViaGetSource() + { + $message = $this->_createMessage(); + $transport = $this->_createTransport(); + + $evt = $this->_createEvent($transport, $message); + + $ref = $evt->getSource(); + $this->assertEquals($transport, $ref, + '%s: Transport should be returned from getSource()' + ); + } + + public function testResultCanBeSetAndGet() + { + $message = $this->_createMessage(); + $transport = $this->_createTransport(); + + $evt = $this->_createEvent($transport, $message); + + $evt->setResult( + Swift_Events_SendEvent::RESULT_SUCCESS | Swift_Events_SendEvent::RESULT_TENTATIVE + ); + + $this->assertTrue((bool) ($evt->getResult() & Swift_Events_SendEvent::RESULT_SUCCESS)); + $this->assertTrue((bool) ($evt->getResult() & Swift_Events_SendEvent::RESULT_TENTATIVE)); + } + + public function testFailedRecipientsCanBeSetAndGet() + { + $message = $this->_createMessage(); + $transport = $this->_createTransport(); + + $evt = $this->_createEvent($transport, $message); + + $evt->setFailedRecipients(array('foo@bar', 'zip@button')); + + $this->assertEquals(array('foo@bar', 'zip@button'), $evt->getFailedRecipients(), + '%s: FailedRecipients should be returned from getter' + ); + } + + public function testFailedRecipientsGetsPickedUpCorrectly() + { + $message = $this->_createMessage(); + $transport = $this->_createTransport(); + + $evt = $this->_createEvent($transport, $message); + $this->assertEquals(array(), $evt->getFailedRecipients()); + } + + // -- Creation Methods + + private function _createEvent(Swift_Transport $source, + Swift_Mime_Message $message) + { + return new Swift_Events_SendEvent($source, $message); + } + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } + + private function _createMessage() + { + return $this->getMock('Swift_Mime_Message'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SimpleEventDispatcherTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SimpleEventDispatcherTest.php new file mode 100644 index 0000000..52ae07c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SimpleEventDispatcherTest.php @@ -0,0 +1,135 @@ +_dispatcher = new Swift_Events_SimpleEventDispatcher(); + } + + public function testSendEventCanBeCreated() + { + $transport = $this->getMock('Swift_Transport'); + $message = $this->getMock('Swift_Mime_Message'); + $evt = $this->_dispatcher->createSendEvent($transport, $message); + $this->assertInstanceof('Swift_Events_SendEvent', $evt); + $this->assertSame($message, $evt->getMessage()); + $this->assertSame($transport, $evt->getTransport()); + } + + public function testCommandEventCanBeCreated() + { + $buf = $this->getMock('Swift_Transport'); + $evt = $this->_dispatcher->createCommandEvent($buf, "FOO\r\n", array(250)); + $this->assertInstanceof('Swift_Events_CommandEvent', $evt); + $this->assertSame($buf, $evt->getSource()); + $this->assertEquals("FOO\r\n", $evt->getCommand()); + $this->assertEquals(array(250), $evt->getSuccessCodes()); + } + + public function testResponseEventCanBeCreated() + { + $buf = $this->getMock('Swift_Transport'); + $evt = $this->_dispatcher->createResponseEvent($buf, "250 Ok\r\n", true); + $this->assertInstanceof('Swift_Events_ResponseEvent', $evt); + $this->assertSame($buf, $evt->getSource()); + $this->assertEquals("250 Ok\r\n", $evt->getResponse()); + $this->assertTrue($evt->isValid()); + } + + public function testTransportChangeEventCanBeCreated() + { + $transport = $this->getMock('Swift_Transport'); + $evt = $this->_dispatcher->createTransportChangeEvent($transport); + $this->assertInstanceof('Swift_Events_TransportChangeEvent', $evt); + $this->assertSame($transport, $evt->getSource()); + } + + public function testTransportExceptionEventCanBeCreated() + { + $transport = $this->getMock('Swift_Transport'); + $ex = new Swift_TransportException(''); + $evt = $this->_dispatcher->createTransportExceptionEvent($transport, $ex); + $this->assertInstanceof('Swift_Events_TransportExceptionEvent', $evt); + $this->assertSame($transport, $evt->getSource()); + $this->assertSame($ex, $evt->getException()); + } + + public function testListenersAreNotifiedOfDispatchedEvent() + { + $transport = $this->getMock('Swift_Transport'); + + $evt = $this->_dispatcher->createTransportChangeEvent($transport); + + $listenerA = $this->getMock('Swift_Events_TransportChangeListener'); + $listenerB = $this->getMock('Swift_Events_TransportChangeListener'); + + $this->_dispatcher->bindEventListener($listenerA); + $this->_dispatcher->bindEventListener($listenerB); + + $listenerA->expects($this->once()) + ->method('transportStarted') + ->with($evt); + $listenerB->expects($this->once()) + ->method('transportStarted') + ->with($evt); + + $this->_dispatcher->dispatchEvent($evt, 'transportStarted'); + } + + public function testListenersAreOnlyCalledIfImplementingCorrectInterface() + { + $transport = $this->getMock('Swift_Transport'); + $message = $this->getMock('Swift_Mime_Message'); + + $evt = $this->_dispatcher->createSendEvent($transport, $message); + + $targetListener = $this->getMock('Swift_Events_SendListener'); + $otherListener = $this->getMock('Swift_Events_TransportChangeListener'); + + $this->_dispatcher->bindEventListener($targetListener); + $this->_dispatcher->bindEventListener($otherListener); + + $targetListener->expects($this->once()) + ->method('sendPerformed') + ->with($evt); + $otherListener->expects($this->never()) + ->method('sendPerformed'); + + $this->_dispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + public function testListenersCanCancelBubblingOfEvent() + { + $transport = $this->getMock('Swift_Transport'); + $message = $this->getMock('Swift_Mime_Message'); + + $evt = $this->_dispatcher->createSendEvent($transport, $message); + + $listenerA = $this->getMock('Swift_Events_SendListener'); + $listenerB = $this->getMock('Swift_Events_SendListener'); + + $this->_dispatcher->bindEventListener($listenerA); + $this->_dispatcher->bindEventListener($listenerB); + + $listenerA->expects($this->once()) + ->method('sendPerformed') + ->with($evt) + ->will($this->returnCallback(function ($object) { + $object->cancelBubble(true); + })); + $listenerB->expects($this->never()) + ->method('sendPerformed'); + + $this->_dispatcher->dispatchEvent($evt, 'sendPerformed'); + + $this->assertTrue($evt->bubbleCancelled()); + } + + private function _createDispatcher(array $map) + { + return new Swift_Events_SimpleEventDispatcher($map); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportChangeEventTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportChangeEventTest.php new file mode 100644 index 0000000..40bec83 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportChangeEventTest.php @@ -0,0 +1,32 @@ +_createTransport(); + $evt = $this->_createEvent($transport); + $ref = $evt->getTransport(); + $this->assertEquals($transport, $ref); + } + + public function testSourceIsTransport() + { + $transport = $this->_createTransport(); + $evt = $this->_createEvent($transport); + $ref = $evt->getSource(); + $this->assertEquals($transport, $ref); + } + + // -- Creation Methods + + private function _createEvent(Swift_Transport $source) + { + return new Swift_Events_TransportChangeEvent($source); + } + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportExceptionEventTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportExceptionEventTest.php new file mode 100644 index 0000000..86c636b --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportExceptionEventTest.php @@ -0,0 +1,43 @@ +_createException(); + $transport = $this->_createTransport(); + $evt = $this->_createEvent($transport, $ex); + $ref = $evt->getException(); + $this->assertEquals($ex, $ref, + '%s: Exception should be available via getException()' + ); + } + + public function testSourceIsTransport() + { + $ex = $this->_createException(); + $transport = $this->_createTransport(); + $evt = $this->_createEvent($transport, $ex); + $ref = $evt->getSource(); + $this->assertEquals($transport, $ref, + '%s: Transport should be available via getSource()' + ); + } + + // -- Creation Methods + + private function _createEvent(Swift_Transport $transport, Swift_TransportException $ex) + { + return new Swift_Events_TransportExceptionEvent($transport, $ex); + } + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } + + private function _createException() + { + return new Swift_TransportException(''); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/ArrayKeyCacheTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/ArrayKeyCacheTest.php new file mode 100644 index 0000000..36512cf --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/ArrayKeyCacheTest.php @@ -0,0 +1,242 @@ +_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('test', $cache->getString($this->_key1, 'foo')); + } + + public function testStringDataCanBeOverwritten() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $cache->setString( + $this->_key1, 'foo', 'whatever', Swift_KeyCache::MODE_WRITE + ); + + $this->assertEquals('whatever', $cache->getString($this->_key1, 'foo')); + } + + public function testStringDataCanBeAppended() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $cache->setString( + $this->_key1, 'foo', 'ing', Swift_KeyCache::MODE_APPEND + ); + + $this->assertEquals('testing', $cache->getString($this->_key1, 'foo')); + } + + public function testHasKeyReturnValue() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + + $this->assertTrue($cache->hasKey($this->_key1, 'foo')); + } + + public function testNsKeyIsWellPartitioned() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $cache->setString( + $this->_key2, 'foo', 'ing', Swift_KeyCache::MODE_WRITE + ); + + $this->assertEquals('test', $cache->getString($this->_key1, 'foo')); + $this->assertEquals('ing', $cache->getString($this->_key2, 'foo')); + } + + public function testItemKeyIsWellPartitioned() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $cache->setString( + $this->_key1, 'bar', 'ing', Swift_KeyCache::MODE_WRITE + ); + + $this->assertEquals('test', $cache->getString($this->_key1, 'foo')); + $this->assertEquals('ing', $cache->getString($this->_key1, 'bar')); + } + + public function testByteStreamCanBeImported() + { + $os = $this->_createOutputStream(); + $os->expects($this->at(0)) + ->method('read') + ->will($this->returnValue('abc')); + $os->expects($this->at(1)) + ->method('read') + ->will($this->returnValue('def')); + $os->expects($this->at(2)) + ->method('read') + ->will($this->returnValue(false)); + + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + $cache->importFromByteStream( + $this->_key1, 'foo', $os, Swift_KeyCache::MODE_WRITE + ); + $this->assertEquals('abcdef', $cache->getString($this->_key1, 'foo')); + } + + public function testByteStreamCanBeAppended() + { + $os1 = $this->_createOutputStream(); + $os1->expects($this->at(0)) + ->method('read') + ->will($this->returnValue('abc')); + $os1->expects($this->at(1)) + ->method('read') + ->will($this->returnValue('def')); + $os1->expects($this->at(2)) + ->method('read') + ->will($this->returnValue(false)); + + $os2 = $this->_createOutputStream(); + $os2->expects($this->at(0)) + ->method('read') + ->will($this->returnValue('xyz')); + $os2->expects($this->at(1)) + ->method('read') + ->will($this->returnValue('uvw')); + $os2->expects($this->at(2)) + ->method('read') + ->will($this->returnValue(false)); + + $is = $this->_createKeyCacheInputStream(true); + + $cache = $this->_createCache($is); + + $cache->importFromByteStream( + $this->_key1, 'foo', $os1, Swift_KeyCache::MODE_APPEND + ); + $cache->importFromByteStream( + $this->_key1, 'foo', $os2, Swift_KeyCache::MODE_APPEND + ); + + $this->assertEquals('abcdefxyzuvw', $cache->getString($this->_key1, 'foo')); + } + + public function testByteStreamAndStringCanBeAppended() + { + $os = $this->_createOutputStream(); + $os->expects($this->at(0)) + ->method('read') + ->will($this->returnValue('abc')); + $os->expects($this->at(1)) + ->method('read') + ->will($this->returnValue('def')); + $os->expects($this->at(2)) + ->method('read') + ->will($this->returnValue(false)); + + $is = $this->_createKeyCacheInputStream(true); + + $cache = $this->_createCache($is); + + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_APPEND + ); + $cache->importFromByteStream( + $this->_key1, 'foo', $os, Swift_KeyCache::MODE_APPEND + ); + $this->assertEquals('testabcdef', $cache->getString($this->_key1, 'foo')); + } + + public function testDataCanBeExportedToByteStream() + { + //See acceptance test for more detail + $is = $this->_createInputStream(); + $is->expects($this->atLeastOnce()) + ->method('write'); + + $kcis = $this->_createKeyCacheInputStream(true); + + $cache = $this->_createCache($kcis); + + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + + $cache->exportToByteStream($this->_key1, 'foo', $is); + } + + public function testKeyCanBeCleared() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($cache->hasKey($this->_key1, 'foo')); + $cache->clearKey($this->_key1, 'foo'); + $this->assertFalse($cache->hasKey($this->_key1, 'foo')); + } + + public function testNsKeyCanBeCleared() + { + $is = $this->_createKeyCacheInputStream(); + $cache = $this->_createCache($is); + + $cache->setString( + $this->_key1, 'foo', 'test', Swift_KeyCache::MODE_WRITE + ); + $cache->setString( + $this->_key1, 'bar', 'xyz', Swift_KeyCache::MODE_WRITE + ); + $this->assertTrue($cache->hasKey($this->_key1, 'foo')); + $this->assertTrue($cache->hasKey($this->_key1, 'bar')); + $cache->clearAll($this->_key1); + $this->assertFalse($cache->hasKey($this->_key1, 'foo')); + $this->assertFalse($cache->hasKey($this->_key1, 'bar')); + } + + // -- Creation methods + + private function _createCache($is) + { + return new Swift_KeyCache_ArrayKeyCache($is); + } + + private function _createKeyCacheInputStream() + { + return $this->getMock('Swift_KeyCache_KeyCacheInputStream'); + } + + private function _createOutputStream() + { + return $this->getMock('Swift_OutputByteStream'); + } + + private function _createInputStream() + { + return $this->getMock('Swift_InputByteStream'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/SimpleKeyCacheInputStreamTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/SimpleKeyCacheInputStreamTest.php new file mode 100644 index 0000000..691c1e7 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/SimpleKeyCacheInputStreamTest.php @@ -0,0 +1,73 @@ +getMock('Swift_KeyCache'); + $cache->expects($this->at(0)) + ->method('setString') + ->with($this->_nsKey, 'foo', 'a', Swift_KeyCache::MODE_APPEND); + $cache->expects($this->at(1)) + ->method('setString') + ->with($this->_nsKey, 'foo', 'b', Swift_KeyCache::MODE_APPEND); + $cache->expects($this->at(2)) + ->method('setString') + ->with($this->_nsKey, 'foo', 'c', Swift_KeyCache::MODE_APPEND); + + $stream = new Swift_KeyCache_SimpleKeyCacheInputStream(); + $stream->setKeyCache($cache); + $stream->setNsKey($this->_nsKey); + $stream->setItemKey('foo'); + + $stream->write('a'); + $stream->write('b'); + $stream->write('c'); + } + + public function testFlushContentClearsKey() + { + $cache = $this->getMock('Swift_KeyCache'); + $cache->expects($this->once()) + ->method('clearKey') + ->with($this->_nsKey, 'foo'); + + $stream = new Swift_KeyCache_SimpleKeyCacheInputStream(); + $stream->setKeyCache($cache); + $stream->setNsKey($this->_nsKey); + $stream->setItemKey('foo'); + + $stream->flushBuffers(); + } + + public function testClonedStreamStillReferencesSameCache() + { + $cache = $this->getMock('Swift_KeyCache'); + $cache->expects($this->at(0)) + ->method('setString') + ->with($this->_nsKey, 'foo', 'a', Swift_KeyCache::MODE_APPEND); + $cache->expects($this->at(1)) + ->method('setString') + ->with($this->_nsKey, 'foo', 'b', Swift_KeyCache::MODE_APPEND); + $cache->expects($this->at(2)) + ->method('setString') + ->with('test', 'bar', 'x', Swift_KeyCache::MODE_APPEND); + + $stream = new Swift_KeyCache_SimpleKeyCacheInputStream(); + $stream->setKeyCache($cache); + $stream->setNsKey($this->_nsKey); + $stream->setItemKey('foo'); + + $stream->write('a'); + $stream->write('b'); + + $newStream = clone $stream; + $newStream->setKeyCache($cache); + $newStream->setNsKey('test'); + $newStream->setItemKey('bar'); + + $newStream->write('x'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mailer/ArrayRecipientIteratorTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mailer/ArrayRecipientIteratorTest.php new file mode 100644 index 0000000..ff0bce4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mailer/ArrayRecipientIteratorTest.php @@ -0,0 +1,42 @@ +assertFalse($it->hasNext()); + } + + public function testHasNextReturnsTrueIfItemsLeft() + { + $it = new Swift_Mailer_ArrayRecipientIterator(array('foo@bar' => 'Foo')); + $this->assertTrue($it->hasNext()); + } + + public function testReadingToEndOfListCausesHasNextToReturnFalse() + { + $it = new Swift_Mailer_ArrayRecipientIterator(array('foo@bar' => 'Foo')); + $this->assertTrue($it->hasNext()); + $it->nextRecipient(); + $this->assertFalse($it->hasNext()); + } + + public function testReturnedValueHasPreservedKeyValuePair() + { + $it = new Swift_Mailer_ArrayRecipientIterator(array('foo@bar' => 'Foo')); + $this->assertEquals(array('foo@bar' => 'Foo'), $it->nextRecipient()); + } + + public function testIteratorMovesNextAfterEachIteration() + { + $it = new Swift_Mailer_ArrayRecipientIterator(array( + 'foo@bar' => 'Foo', + 'zip@button' => 'Zip thing', + 'test@test' => null, + )); + $this->assertEquals(array('foo@bar' => 'Foo'), $it->nextRecipient()); + $this->assertEquals(array('zip@button' => 'Zip thing'), $it->nextRecipient()); + $this->assertEquals(array('test@test' => null), $it->nextRecipient()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/MailerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/MailerTest.php new file mode 100644 index 0000000..db0b35a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/MailerTest.php @@ -0,0 +1,152 @@ +_createTransport(); + $message = $this->_createMessage(); + + $started = false; + $transport->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$started) { + return $started; + }); + $transport->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$started) { + $started = true; + + return; + }); + + $mailer = $this->_createMailer($transport); + $mailer->send($message); + } + + public function testTransportIsOnlyStartedOnce() + { + $transport = $this->_createTransport(); + $message = $this->_createMessage(); + + $started = false; + $transport->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$started) { + return $started; + }); + $transport->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$started) { + $started = true; + + return; + }); + + $mailer = $this->_createMailer($transport); + for ($i = 0; $i < 10; ++$i) { + $mailer->send($message); + } + } + + public function testMessageIsPassedToTransport() + { + $transport = $this->_createTransport(); + $message = $this->_createMessage(); + $transport->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()); + + $mailer = $this->_createMailer($transport); + $mailer->send($message); + } + + public function testSendReturnsCountFromTransport() + { + $transport = $this->_createTransport(); + $message = $this->_createMessage(); + $transport->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturn(57); + + $mailer = $this->_createMailer($transport); + $this->assertEquals(57, $mailer->send($message)); + } + + public function testFailedRecipientReferenceIsPassedToTransport() + { + $failures = array(); + + $transport = $this->_createTransport(); + $message = $this->_createMessage(); + $transport->shouldReceive('send') + ->once() + ->with($message, $failures) + ->andReturn(57); + + $mailer = $this->_createMailer($transport); + $mailer->send($message, $failures); + } + + public function testSendRecordsRfcComplianceExceptionAsEntireSendFailure() + { + $failures = array(); + + $rfcException = new Swift_RfcComplianceException('test'); + $transport = $this->_createTransport(); + $message = $this->_createMessage(); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo&invalid' => 'Foo', 'bar@valid.tld' => 'Bar')); + $transport->shouldReceive('send') + ->once() + ->with($message, $failures) + ->andThrow($rfcException); + + $mailer = $this->_createMailer($transport); + $this->assertEquals(0, $mailer->send($message, $failures), '%s: Should return 0'); + $this->assertEquals(array('foo&invalid', 'bar@valid.tld'), $failures, '%s: Failures should contain all addresses since the entire message failed to compile'); + } + + public function testRegisterPluginDelegatesToTransport() + { + $plugin = $this->_createPlugin(); + $transport = $this->_createTransport(); + $mailer = $this->_createMailer($transport); + + $transport->shouldReceive('registerPlugin') + ->once() + ->with($plugin); + + $mailer->registerPlugin($plugin); + } + + // -- Creation methods + + private function _createPlugin() + { + return $this->getMockery('Swift_Events_EventListener')->shouldIgnoreMissing(); + } + + private function _createTransport() + { + return $this->getMockery('Swift_Transport')->shouldIgnoreMissing(); + } + + private function _createMessage() + { + return $this->getMockery('Swift_Mime_Message')->shouldIgnoreMissing(); + } + + private function _createIterator() + { + return $this->getMockery('Swift_Mailer_RecipientIterator')->shouldIgnoreMissing(); + } + + private function _createMailer(Swift_Transport $transport) + { + return new Swift_Mailer($transport); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/MessageTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/MessageTest.php new file mode 100644 index 0000000..c9e7383 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/MessageTest.php @@ -0,0 +1,130 @@ +_recursiveObjectCloningCheck($message1, $message2, $message1_clone); + } + + public function testCloningWithSigners() + { + $message1 = new Swift_Message('subj', 'body', 'ctype'); + $signer = new Swift_Signers_DKIMSigner(dirname(dirname(__DIR__)).'/_samples/dkim/dkim.test.priv', 'test.example', 'example'); + $message1->attachSigner($signer); + $message2 = new Swift_Message('subj', 'body', 'ctype'); + $signer = new Swift_Signers_DKIMSigner(dirname(dirname(__DIR__)).'/_samples/dkim/dkim.test.priv', 'test.example', 'example'); + $message2->attachSigner($signer); + $message1_clone = clone $message1; + + $this->_recursiveObjectCloningCheck($message1, $message2, $message1_clone); + } + + public function testBodySwap() + { + $message1 = new Swift_Message('Test'); + $html = Swift_MimePart::newInstance('', 'text/html'); + $html->getHeaders()->addTextHeader('X-Test-Remove', 'Test-Value'); + $html->getHeaders()->addTextHeader('X-Test-Alter', 'Test-Value'); + $message1->attach($html); + $source = $message1->toString(); + $message2 = clone $message1; + $message2->setSubject('Message2'); + foreach ($message2->getChildren() as $child) { + $child->setBody('Test'); + $child->getHeaders()->removeAll('X-Test-Remove'); + $child->getHeaders()->get('X-Test-Alter')->setValue('Altered'); + } + $final = $message1->toString(); + if ($source != $final) { + $this->fail("Difference although object cloned \n [".$source."]\n[".$final."]\n"); + } + $final = $message2->toString(); + if ($final == $source) { + $this->fail('Two body matches although they should differ'."\n [".$source."]\n[".$final."]\n"); + } + $id_1 = $message1->getId(); + $id_2 = $message2->getId(); + $this->assertEquals($id_1, $id_2, 'Message Ids differ'); + $id_2 = $message2->generateId(); + $this->assertNotEquals($id_1, $id_2, 'Message Ids are the same'); + } + + // -- Private helpers + protected function _recursiveObjectCloningCheck($obj1, $obj2, $obj1_clone) + { + $obj1_properties = (array) $obj1; + $obj2_properties = (array) $obj2; + $obj1_clone_properties = (array) $obj1_clone; + + foreach ($obj1_properties as $property => $value) { + if (is_object($value)) { + $obj1_value = $obj1_properties[$property]; + $obj2_value = $obj2_properties[$property]; + $obj1_clone_value = $obj1_clone_properties[$property]; + + if ($obj1_value !== $obj2_value) { + // two separetely instanciated objects property not referencing same object + $this->assertFalse( + // but object's clone does - not everything copied + $obj1_value === $obj1_clone_value, + "Property `$property` cloning error: source and cloned objects property is referencing same object" + ); + } else { + // two separetely instanciated objects have same reference + $this->assertFalse( + // but object's clone doesn't - overdone making copies + $obj1_value !== $obj1_clone_value, + "Property `$property` not properly cloned: it should reference same object as cloning source (overdone copping)" + ); + } + // recurse + $this->_recursiveObjectCloningCheck($obj1_value, $obj2_value, $obj1_clone_value); + } elseif (is_array($value)) { + $obj1_value = $obj1_properties[$property]; + $obj2_value = $obj2_properties[$property]; + $obj1_clone_value = $obj1_clone_properties[$property]; + + return $this->_recursiveArrayCloningCheck($obj1_value, $obj2_value, $obj1_clone_value); + } + } + } + + protected function _recursiveArrayCloningCheck($array1, $array2, $array1_clone) + { + foreach ($array1 as $key => $value) { + if (is_object($value)) { + $arr1_value = $array1[$key]; + $arr2_value = $array2[$key]; + $arr1_clone_value = $array1_clone[$key]; + if ($arr1_value !== $arr2_value) { + // two separetely instanciated objects property not referencing same object + $this->assertFalse( + // but object's clone does - not everything copied + $arr1_value === $arr1_clone_value, + "Key `$key` cloning error: source and cloned objects property is referencing same object" + ); + } else { + // two separetely instanciated objects have same reference + $this->assertFalse( + // but object's clone doesn't - overdone making copies + $arr1_value !== $arr1_clone_value, + "Key `$key` not properly cloned: it should reference same object as cloning source (overdone copping)" + ); + } + // recurse + $this->_recursiveObjectCloningCheck($arr1_value, $arr2_value, $arr1_clone_value); + } elseif (is_array($value)) { + $arr1_value = $array1[$key]; + $arr2_value = $array2[$key]; + $arr1_clone_value = $array1_clone[$key]; + + return $this->_recursiveArrayCloningCheck($obj1_value, $obj2_value, $obj1_clone_value); + } + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AbstractMimeEntityTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AbstractMimeEntityTest.php new file mode 100644 index 0000000..dc8ea09 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AbstractMimeEntityTest.php @@ -0,0 +1,1054 @@ +_createHeaderSet(); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $this->assertSame($headers, $entity->getHeaders()); + } + + public function testContentTypeIsReturnedFromHeader() + { + $ctype = $this->_createHeader('Content-Type', 'image/jpeg-test'); + $headers = $this->_createHeaderSet(array('Content-Type' => $ctype)); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $this->assertEquals('image/jpeg-test', $entity->getContentType()); + } + + public function testContentTypeIsSetInHeader() + { + $ctype = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $headers = $this->_createHeaderSet(array('Content-Type' => $ctype)); + + $ctype->shouldReceive('setFieldBodyModel') + ->once() + ->with('image/jpeg'); + $ctype->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes() + ->with(\Mockery::not('image/jpeg')); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setContentType('image/jpeg'); + } + + public function testContentTypeHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addParameterizedHeader') + ->once() + ->with('Content-Type', 'image/jpeg'); + $headers->shouldReceive('addParameterizedHeader') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setContentType('image/jpeg'); + } + + public function testContentTypeCanBeSetViaSetBody() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addParameterizedHeader') + ->once() + ->with('Content-Type', 'text/html'); + $headers->shouldReceive('addParameterizedHeader') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setBody('foo', 'text/html'); + } + + public function testGetEncoderFromConstructor() + { + $encoder = $this->_createEncoder('base64'); + $entity = $this->_createEntity($this->_createHeaderSet(), $encoder, + $this->_createCache() + ); + $this->assertSame($encoder, $entity->getEncoder()); + } + + public function testSetAndGetEncoder() + { + $encoder = $this->_createEncoder('base64'); + $headers = $this->_createHeaderSet(); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setEncoder($encoder); + $this->assertSame($encoder, $entity->getEncoder()); + } + + public function testSettingEncoderUpdatesTransferEncoding() + { + $encoder = $this->_createEncoder('base64'); + $encoding = $this->_createHeader( + 'Content-Transfer-Encoding', '8bit', array(), false + ); + $headers = $this->_createHeaderSet(array( + 'Content-Transfer-Encoding' => $encoding, + )); + $encoding->shouldReceive('setFieldBodyModel') + ->once() + ->with('base64'); + $encoding->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setEncoder($encoder); + } + + public function testSettingEncoderAddsEncodingHeaderIfNonePresent() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addTextHeader') + ->once() + ->with('Content-Transfer-Encoding', 'something'); + $headers->shouldReceive('addTextHeader') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setEncoder($this->_createEncoder('something')); + } + + public function testIdIsReturnedFromHeader() + { + /* -- RFC 2045, 7. + In constructing a high-level user agent, it may be desirable to allow + one body to make reference to another. Accordingly, bodies may be + labelled using the "Content-ID" header field, which is syntactically + identical to the "Message-ID" header field + */ + + $cid = $this->_createHeader('Content-ID', 'zip@button'); + $headers = $this->_createHeaderSet(array('Content-ID' => $cid)); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $this->assertEquals('zip@button', $entity->getId()); + } + + public function testIdIsSetInHeader() + { + $cid = $this->_createHeader('Content-ID', 'zip@button', array(), false); + $headers = $this->_createHeaderSet(array('Content-ID' => $cid)); + + $cid->shouldReceive('setFieldBodyModel') + ->once() + ->with('foo@bar'); + $cid->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setId('foo@bar'); + } + + public function testIdIsAutoGenerated() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertRegExp('/^.*?@.*?$/D', $entity->getId()); + } + + public function testGenerateIdCreatesNewId() + { + $headers = $this->_createHeaderSet(); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $id1 = $entity->generateId(); + $id2 = $entity->generateId(); + $this->assertNotEquals($id1, $id2); + } + + public function testGenerateIdSetsNewId() + { + $headers = $this->_createHeaderSet(); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $id = $entity->generateId(); + $this->assertEquals($id, $entity->getId()); + } + + public function testDescriptionIsReadFromHeader() + { + /* -- RFC 2045, 8. + The ability to associate some descriptive information with a given + body is often desirable. For example, it may be useful to mark an + "image" body as "a picture of the Space Shuttle Endeavor." Such text + may be placed in the Content-Description header field. This header + field is always optional. + */ + + $desc = $this->_createHeader('Content-Description', 'something'); + $headers = $this->_createHeaderSet(array('Content-Description' => $desc)); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $this->assertEquals('something', $entity->getDescription()); + } + + public function testDescriptionIsSetInHeader() + { + $desc = $this->_createHeader('Content-Description', '', array(), false); + $desc->shouldReceive('setFieldBodyModel')->once()->with('whatever'); + + $headers = $this->_createHeaderSet(array('Content-Description' => $desc)); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setDescription('whatever'); + } + + public function testDescriptionHeaderIsAddedIfNotPresent() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addTextHeader') + ->once() + ->with('Content-Description', 'whatever'); + $headers->shouldReceive('addTextHeader') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setDescription('whatever'); + } + + public function testSetAndGetMaxLineLength() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setMaxLineLength(60); + $this->assertEquals(60, $entity->getMaxLineLength()); + } + + public function testEncoderIsUsedForStringGeneration() + { + $encoder = $this->_createEncoder('base64', false); + $encoder->expects($this->once()) + ->method('encodeString') + ->with('blah'); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $encoder, $this->_createCache() + ); + $entity->setBody('blah'); + $entity->toString(); + } + + public function testMaxLineLengthIsProvidedWhenEncoding() + { + $encoder = $this->_createEncoder('base64', false); + $encoder->expects($this->once()) + ->method('encodeString') + ->with('blah', 0, 65); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $encoder, $this->_createCache() + ); + $entity->setBody('blah'); + $entity->setMaxLineLength(65); + $entity->toString(); + } + + public function testHeadersAppearInString() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->once() + ->andReturn( + "Content-Type: text/plain; charset=utf-8\r\n". + "X-MyHeader: foobar\r\n" + ); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $this->assertEquals( + "Content-Type: text/plain; charset=utf-8\r\n". + "X-MyHeader: foobar\r\n", + $entity->toString() + ); + } + + public function testSetAndGetBody() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setBody("blah\r\nblah!"); + $this->assertEquals("blah\r\nblah!", $entity->getBody()); + } + + public function testBodyIsAppended() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->once() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setBody("blah\r\nblah!"); + $this->assertEquals( + "Content-Type: text/plain; charset=utf-8\r\n". + "\r\n". + "blah\r\nblah!", + $entity->toString() + ); + } + + public function testGetBodyReturnsStringFromByteStream() + { + $os = $this->_createOutputStream('byte stream string'); + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setBody($os); + $this->assertEquals('byte stream string', $entity->getBody()); + } + + public function testByteStreamBodyIsAppended() + { + $headers = $this->_createHeaderSet(array(), false); + $os = $this->_createOutputStream('streamed'); + $headers->shouldReceive('toString') + ->once() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setBody($os); + $this->assertEquals( + "Content-Type: text/plain; charset=utf-8\r\n". + "\r\n". + 'streamed', + $entity->toString() + ); + } + + public function testBoundaryCanBeRetrieved() + { + /* -- RFC 2046, 5.1.1. + boundary := 0*69 bcharsnospace + + bchars := bcharsnospace / " " + + bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / + "+" / "_" / "," / "-" / "." / + "/" / ":" / "=" / "?" + */ + + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertRegExp( + '/^[a-zA-Z0-9\'\(\)\+_\-,\.\/:=\?\ ]{0,69}[a-zA-Z0-9\'\(\)\+_\-,\.\/:=\?]$/D', + $entity->getBoundary() + ); + } + + public function testBoundaryNeverChanges() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $firstBoundary = $entity->getBoundary(); + for ($i = 0; $i < 10; $i++) { + $this->assertEquals($firstBoundary, $entity->getBoundary()); + } + } + + public function testBoundaryCanBeSet() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setBoundary('foobar'); + $this->assertEquals('foobar', $entity->getBoundary()); + } + + public function testAddingChildrenGeneratesBoundaryInHeaders() + { + $child = $this->_createChild(); + $cType = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $cType->shouldReceive('setParameter') + ->once() + ->with('boundary', \Mockery::any()); + $cType->shouldReceive('setParameter') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($this->_createHeaderSet(array( + 'Content-Type' => $cType, + )), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + } + + public function testChildrenOfLevelAttachmentAndLessCauseMultipartMixed() + { + for ($level = Swift_Mime_MimeEntity::LEVEL_MIXED; + $level > Swift_Mime_MimeEntity::LEVEL_TOP; $level /= 2) { + $child = $this->_createChild($level); + $cType = $this->_createHeader( + 'Content-Type', 'text/plain', array(), false + ); + $cType->shouldReceive('setFieldBodyModel') + ->once() + ->with('multipart/mixed'); + $cType->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + } + } + + public function testChildrenOfLevelAlternativeAndLessCauseMultipartAlternative() + { + for ($level = Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE; + $level > Swift_Mime_MimeEntity::LEVEL_MIXED; $level /= 2) { + $child = $this->_createChild($level); + $cType = $this->_createHeader( + 'Content-Type', 'text/plain', array(), false + ); + $cType->shouldReceive('setFieldBodyModel') + ->once() + ->with('multipart/alternative'); + $cType->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + } + } + + public function testChildrenOfLevelRelatedAndLessCauseMultipartRelated() + { + for ($level = Swift_Mime_MimeEntity::LEVEL_RELATED; + $level > Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE; $level /= 2) { + $child = $this->_createChild($level); + $cType = $this->_createHeader( + 'Content-Type', 'text/plain', array(), false + ); + $cType->shouldReceive('setFieldBodyModel') + ->once() + ->with('multipart/related'); + $cType->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $entity = $this->_createEntity($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + } + } + + public function testHighestLevelChildDeterminesContentType() + { + $combinations = array( + array('levels' => array(Swift_Mime_MimeEntity::LEVEL_MIXED, + Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + Swift_Mime_MimeEntity::LEVEL_RELATED, + ), + 'type' => 'multipart/mixed', + ), + array('levels' => array(Swift_Mime_MimeEntity::LEVEL_MIXED, + Swift_Mime_MimeEntity::LEVEL_RELATED, + ), + 'type' => 'multipart/mixed', + ), + array('levels' => array(Swift_Mime_MimeEntity::LEVEL_MIXED, + Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + ), + 'type' => 'multipart/mixed', + ), + array('levels' => array(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + Swift_Mime_MimeEntity::LEVEL_RELATED, + ), + 'type' => 'multipart/alternative', + ), + ); + + foreach ($combinations as $combination) { + $children = array(); + foreach ($combination['levels'] as $level) { + $children[] = $this->_createChild($level); + } + + $cType = $this->_createHeader( + 'Content-Type', 'text/plain', array(), false + ); + $cType->shouldReceive('setFieldBodyModel') + ->once() + ->with($combination['type']); + + $headerSet = $this->_createHeaderSet(array('Content-Type' => $cType)); + $headerSet->shouldReceive('newInstance') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use ($headerSet) { + return $headerSet; + }); + $entity = $this->_createEntity($headerSet, + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren($children); + } + } + + public function testChildrenAppearNestedInString() + { + /* -- RFC 2046, 5.1.1. + (excerpt too verbose to paste here) + */ + + $headers = $this->_createHeaderSet(array(), false); + + $child1 = new MimeEntityFixture(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + "Content-Type: text/plain\r\n". + "\r\n". + 'foobar' + ); + + $child2 = new MimeEntityFixture(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + "Content-Type: text/html\r\n". + "\r\n". + 'foobar' + ); + + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: multipart/alternative; boundary=\"xxx\"\r\n"); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setBoundary('xxx'); + $entity->setChildren(array($child1, $child2)); + + $this->assertEquals( + "Content-Type: multipart/alternative; boundary=\"xxx\"\r\n". + "\r\n". + "\r\n--xxx\r\n". + "Content-Type: text/plain\r\n". + "\r\n". + "foobar\r\n". + "\r\n--xxx\r\n". + "Content-Type: text/html\r\n". + "\r\n". + "foobar\r\n". + "\r\n--xxx--\r\n", + $entity->toString() + ); + } + + public function testMixingLevelsIsHierarchical() + { + $headers = $this->_createHeaderSet(array(), false); + $newHeaders = $this->_createHeaderSet(array(), false); + + $part = $this->_createChild(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + "Content-Type: text/plain\r\n". + "\r\n". + 'foobar' + ); + + $attachment = $this->_createChild(Swift_Mime_MimeEntity::LEVEL_MIXED, + "Content-Type: application/octet-stream\r\n". + "\r\n". + 'data' + ); + + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: multipart/mixed; boundary=\"xxx\"\r\n"); + $headers->shouldReceive('newInstance') + ->zeroOrMoreTimes() + ->andReturn($newHeaders); + $newHeaders->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: multipart/alternative; boundary=\"yyy\"\r\n"); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setBoundary('xxx'); + $entity->setChildren(array($part, $attachment)); + + $this->assertRegExp( + '~^'. + "Content-Type: multipart/mixed; boundary=\"xxx\"\r\n". + "\r\n\r\n--xxx\r\n". + "Content-Type: multipart/alternative; boundary=\"yyy\"\r\n". + "\r\n\r\n--(.*?)\r\n". + "Content-Type: text/plain\r\n". + "\r\n". + 'foobar'. + "\r\n\r\n--\\1--\r\n". + "\r\n\r\n--xxx\r\n". + "Content-Type: application/octet-stream\r\n". + "\r\n". + 'data'. + "\r\n\r\n--xxx--\r\n". + "\$~", + $entity->toString() + ); + } + + public function testSettingEncoderNotifiesChildren() + { + $child = $this->_createChild(0, '', false); + $encoder = $this->_createEncoder('base64'); + + $child->shouldReceive('encoderChanged') + ->once() + ->with($encoder); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + $entity->setEncoder($encoder); + } + + public function testReceiptOfEncoderChangeNotifiesChildren() + { + $child = $this->_createChild(0, '', false); + $encoder = $this->_createEncoder('base64'); + + $child->shouldReceive('encoderChanged') + ->once() + ->with($encoder); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + $entity->encoderChanged($encoder); + } + + public function testReceiptOfCharsetChangeNotifiesChildren() + { + $child = $this->_createChild(0, '', false); + $child->shouldReceive('charsetChanged') + ->once() + ->with('windows-874'); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $entity->setChildren(array($child)); + $entity->charsetChanged('windows-874'); + } + + public function testEntityIsWrittenToByteStream() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $is = $this->_createInputStream(false); + $is->expects($this->atLeastOnce()) + ->method('write'); + + $entity->toByteStream($is); + } + + public function testEntityHeadersAreComittedToByteStream() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $is = $this->_createInputStream(false); + $is->expects($this->atLeastOnce()) + ->method('write'); + $is->expects($this->atLeastOnce()) + ->method('commit'); + + $entity->toByteStream($is); + } + + public function testOrderingTextBeforeHtml() + { + $htmlChild = new MimeEntityFixture(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + "Content-Type: text/html\r\n". + "\r\n". + 'HTML PART', + 'text/html' + ); + $textChild = new MimeEntityFixture(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, + "Content-Type: text/plain\r\n". + "\r\n". + 'TEXT PART', + 'text/plain' + ); + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: multipart/alternative; boundary=\"xxx\"\r\n"); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $this->_createCache() + ); + $entity->setBoundary('xxx'); + $entity->setChildren(array($htmlChild, $textChild)); + + $this->assertEquals( + "Content-Type: multipart/alternative; boundary=\"xxx\"\r\n". + "\r\n\r\n--xxx\r\n". + "Content-Type: text/plain\r\n". + "\r\n". + 'TEXT PART'. + "\r\n\r\n--xxx\r\n". + "Content-Type: text/html\r\n". + "\r\n". + 'HTML PART'. + "\r\n\r\n--xxx--\r\n", + $entity->toString() + ); + } + + public function testUnsettingChildrenRestoresContentType() + { + $cType = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $child = $this->_createChild(Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE); + + $cType->shouldReceive('setFieldBodyModel') + ->twice() + ->with('image/jpeg'); + $cType->shouldReceive('setFieldBodyModel') + ->once() + ->with('multipart/alternative'); + $cType->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes() + ->with(\Mockery::not('multipart/alternative', 'image/jpeg')); + + $entity = $this->_createEntity($this->_createHeaderSet(array( + 'Content-Type' => $cType, + )), + $this->_createEncoder(), $this->_createCache() + ); + + $entity->setContentType('image/jpeg'); + $entity->setChildren(array($child)); + $entity->setChildren(array()); + } + + public function testBodyIsReadFromCacheWhenUsingToStringIfPresent() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $cache = $this->_createCache(false); + $cache->shouldReceive('hasKey') + ->once() + ->with(\Mockery::any(), 'body') + ->andReturn(true); + $cache->shouldReceive('getString') + ->once() + ->with(\Mockery::any(), 'body') + ->andReturn("\r\ncache\r\ncache!"); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $cache + ); + + $entity->setBody("blah\r\nblah!"); + $this->assertEquals( + "Content-Type: text/plain; charset=utf-8\r\n". + "\r\n". + "cache\r\ncache!", + $entity->toString() + ); + } + + public function testBodyIsAddedToCacheWhenUsingToString() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $cache = $this->_createCache(false); + $cache->shouldReceive('hasKey') + ->once() + ->with(\Mockery::any(), 'body') + ->andReturn(false); + $cache->shouldReceive('setString') + ->once() + ->with(\Mockery::any(), 'body', "\r\nblah\r\nblah!", Swift_KeyCache::MODE_WRITE); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $cache + ); + + $entity->setBody("blah\r\nblah!"); + $entity->toString(); + } + + public function testBodyIsClearedFromCacheIfNewBodySet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $cache = $this->_createCache(false); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $cache + ); + + $entity->setBody("blah\r\nblah!"); + $entity->toString(); + + // We set the expectation at this point because we only care what happens when calling setBody() + $cache->shouldReceive('clearKey') + ->once() + ->with(\Mockery::any(), 'body'); + + $entity->setBody("new\r\nnew!"); + } + + public function testBodyIsNotClearedFromCacheIfSameBodySet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $cache = $this->_createCache(false); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $cache + ); + + $entity->setBody("blah\r\nblah!"); + $entity->toString(); + + // We set the expectation at this point because we only care what happens when calling setBody() + $cache->shouldReceive('clearKey') + ->never(); + + $entity->setBody("blah\r\nblah!"); + } + + public function testBodyIsClearedFromCacheIfNewEncoderSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $cache = $this->_createCache(false); + $otherEncoder = $this->_createEncoder(); + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $cache + ); + + $entity->setBody("blah\r\nblah!"); + $entity->toString(); + + // We set the expectation at this point because we only care what happens when calling setEncoder() + $cache->shouldReceive('clearKey') + ->once() + ->with(\Mockery::any(), 'body'); + + $entity->setEncoder($otherEncoder); + } + + public function testBodyIsReadFromCacheWhenUsingToByteStreamIfPresent() + { + $is = $this->_createInputStream(); + $cache = $this->_createCache(false); + $cache->shouldReceive('hasKey') + ->once() + ->with(\Mockery::any(), 'body') + ->andReturn(true); + $cache->shouldReceive('exportToByteStream') + ->once() + ->with(\Mockery::any(), 'body', $is); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $cache + ); + $entity->setBody('foo'); + + $entity->toByteStream($is); + } + + public function testBodyIsAddedToCacheWhenUsingToByteStream() + { + $is = $this->_createInputStream(); + $cache = $this->_createCache(false); + $cache->shouldReceive('hasKey') + ->once() + ->with(\Mockery::any(), 'body') + ->andReturn(false); + $cache->shouldReceive('getInputByteStream') + ->once() + ->with(\Mockery::any(), 'body'); + + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $cache + ); + $entity->setBody('foo'); + + $entity->toByteStream($is); + } + + public function testFluidInterface() + { + $entity = $this->_createEntity($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + + $this->assertSame($entity, + $entity + ->setContentType('text/plain') + ->setEncoder($this->_createEncoder()) + ->setId('foo@bar') + ->setDescription('my description') + ->setMaxLineLength(998) + ->setBody('xx') + ->setBoundary('xyz') + ->setChildren(array()) + ); + } + + // -- Private helpers + + abstract protected function _createEntity($headers, $encoder, $cache); + + protected function _createChild($level = null, $string = '', $stub = true) + { + $child = $this->getMockery('Swift_Mime_MimeEntity')->shouldIgnoreMissing(); + if (isset($level)) { + $child->shouldReceive('getNestingLevel') + ->zeroOrMoreTimes() + ->andReturn($level); + } + $child->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn($string); + + return $child; + } + + protected function _createEncoder($name = 'quoted-printable', $stub = true) + { + $encoder = $this->getMock('Swift_Mime_ContentEncoder'); + $encoder->expects($this->any()) + ->method('getName') + ->will($this->returnValue($name)); + $encoder->expects($this->any()) + ->method('encodeString') + ->will($this->returnCallback(function () { + $args = func_get_args(); + + return array_shift($args); + })); + + return $encoder; + } + + protected function _createCache($stub = true) + { + return $this->getMockery('Swift_KeyCache')->shouldIgnoreMissing(); + } + + protected function _createHeaderSet($headers = array(), $stub = true) + { + $set = $this->getMockery('Swift_Mime_HeaderSet')->shouldIgnoreMissing(); + $set->shouldReceive('get') + ->zeroOrMoreTimes() + ->andReturnUsing(function ($key) use ($headers) { + return $headers[$key]; + }); + $set->shouldReceive('has') + ->zeroOrMoreTimes() + ->andReturnUsing(function ($key) use ($headers) { + return array_key_exists($key, $headers); + }); + + return $set; + } + + protected function _createHeader($name, $model = null, $params = array(), $stub = true) + { + $header = $this->getMockery('Swift_Mime_ParameterizedHeader')->shouldIgnoreMissing(); + $header->shouldReceive('getFieldName') + ->zeroOrMoreTimes() + ->andReturn($name); + $header->shouldReceive('getFieldBodyModel') + ->zeroOrMoreTimes() + ->andReturn($model); + $header->shouldReceive('getParameter') + ->zeroOrMoreTimes() + ->andReturnUsing(function ($key) use ($params) { + return $params[$key]; + }); + + return $header; + } + + protected function _createOutputStream($data = null, $stub = true) + { + $os = $this->getMockery('Swift_OutputByteStream'); + if (isset($data)) { + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use ($data) { + static $first = true; + if (!$first) { + return false; + } + + $first = false; + + return $data; + }); + $os->shouldReceive('setReadPointer') + ->zeroOrMoreTimes(); + } + + return $os; + } + + protected function _createInputStream($stub = true) + { + return $this->getMock('Swift_InputByteStream'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AttachmentTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AttachmentTest.php new file mode 100644 index 0000000..bd2499c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AttachmentTest.php @@ -0,0 +1,320 @@ +_createAttachment($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals( + Swift_Mime_MimeEntity::LEVEL_MIXED, $attachment->getNestingLevel() + ); + } + + public function testDispositionIsReturnedFromHeader() + { + /* -- RFC 2183, 2.1, 2.2. + */ + + $disposition = $this->_createHeader('Content-Disposition', 'attachment'); + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('attachment', $attachment->getDisposition()); + } + + public function testDispositionIsSetInHeader() + { + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array(), false + ); + $disposition->shouldReceive('setFieldBodyModel') + ->once() + ->with('inline'); + $disposition->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $attachment->setDisposition('inline'); + } + + public function testDispositionIsAddedIfNonePresent() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addParameterizedHeader') + ->once() + ->with('Content-Disposition', 'inline'); + $headers->shouldReceive('addParameterizedHeader') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($headers, $this->_createEncoder(), + $this->_createCache() + ); + $attachment->setDisposition('inline'); + } + + public function testDispositionIsAutoDefaultedToAttachment() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addParameterizedHeader') + ->once() + ->with('Content-Disposition', 'attachment'); + $headers->shouldReceive('addParameterizedHeader') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($headers, $this->_createEncoder(), + $this->_createCache() + ); + } + + public function testDefaultContentTypeInitializedToOctetStream() + { + $cType = $this->_createHeader('Content-Type', '', + array(), false + ); + $cType->shouldReceive('setFieldBodyModel') + ->once() + ->with('application/octet-stream'); + $cType->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + } + + public function testFilenameIsReturnedFromHeader() + { + /* -- RFC 2183, 2.3. + */ + + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array('filename' => 'foo.txt') + ); + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('foo.txt', $attachment->getFilename()); + } + + public function testFilenameIsSetInHeader() + { + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array('filename' => 'foo.txt'), false + ); + $disposition->shouldReceive('setParameter') + ->once() + ->with('filename', 'bar.txt'); + $disposition->shouldReceive('setParameter') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $attachment->setFilename('bar.txt'); + } + + public function testSettingFilenameSetsNameInContentType() + { + /* + This is a legacy requirement which isn't covered by up-to-date RFCs. + */ + + $cType = $this->_createHeader('Content-Type', 'text/plain', + array(), false + ); + $cType->shouldReceive('setParameter') + ->once() + ->with('name', 'bar.txt'); + $cType->shouldReceive('setParameter') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $attachment->setFilename('bar.txt'); + } + + public function testSizeIsReturnedFromHeader() + { + /* -- RFC 2183, 2.7. + */ + + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array('size' => 1234) + ); + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(1234, $attachment->getSize()); + } + + public function testSizeIsSetInHeader() + { + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array(), false + ); + $disposition->shouldReceive('setParameter') + ->once() + ->with('size', 12345); + $disposition->shouldReceive('setParameter') + ->zeroOrMoreTimes(); + + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $attachment->setSize(12345); + } + + public function testFilnameCanBeReadFromFileStream() + { + $file = $this->_createFileStream('/bar/file.ext', ''); + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array('filename' => 'foo.txt'), false + ); + $disposition->shouldReceive('setParameter') + ->once() + ->with('filename', 'file.ext'); + + $attachment = $this->_createAttachment($this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, )), + $this->_createEncoder(), $this->_createCache() + ); + $attachment->setFile($file); + } + + public function testContentTypeCanBeSetViaSetFile() + { + $file = $this->_createFileStream('/bar/file.ext', ''); + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array('filename' => 'foo.txt'), false + ); + $disposition->shouldReceive('setParameter') + ->once() + ->with('filename', 'file.ext'); + + $ctype = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $ctype->shouldReceive('setFieldBodyModel') + ->once() + ->with('text/html'); + $ctype->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $headers = $this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, + 'Content-Type' => $ctype, + )); + + $attachment = $this->_createAttachment($headers, $this->_createEncoder(), + $this->_createCache() + ); + $attachment->setFile($file, 'text/html'); + } + + public function XtestContentTypeCanBeLookedUpFromCommonListIfNotProvided() + { + $file = $this->_createFileStream('/bar/file.zip', ''); + $disposition = $this->_createHeader('Content-Disposition', 'attachment', + array('filename' => 'foo.zip'), false + ); + $disposition->shouldReceive('setParameter') + ->once() + ->with('filename', 'file.zip'); + + $ctype = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $ctype->shouldReceive('setFieldBodyModel') + ->once() + ->with('application/zip'); + $ctype->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $headers = $this->_createHeaderSet(array( + 'Content-Disposition' => $disposition, + 'Content-Type' => $ctype, + )); + + $attachment = $this->_createAttachment($headers, $this->_createEncoder(), + $this->_createCache(), array('zip' => 'application/zip', 'txt' => 'text/plain') + ); + $attachment->setFile($file); + } + + public function testDataCanBeReadFromFile() + { + $file = $this->_createFileStream('/foo/file.ext', ''); + $attachment = $this->_createAttachment($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $attachment->setFile($file); + $this->assertEquals('', $attachment->getBody()); + } + + public function testFluidInterface() + { + $attachment = $this->_createAttachment($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertSame($attachment, + $attachment + ->setContentType('application/pdf') + ->setEncoder($this->_createEncoder()) + ->setId('foo@bar') + ->setDescription('my pdf') + ->setMaxLineLength(998) + ->setBody('xx') + ->setBoundary('xyz') + ->setChildren(array()) + ->setDisposition('inline') + ->setFilename('afile.txt') + ->setSize(123) + ->setFile($this->_createFileStream('foo.txt', '')) + ); + } + + // -- Private helpers + + protected function _createEntity($headers, $encoder, $cache) + { + return $this->_createAttachment($headers, $encoder, $cache); + } + + protected function _createAttachment($headers, $encoder, $cache, $mimeTypes = array()) + { + return new Swift_Mime_Attachment($headers, $encoder, $cache, new Swift_Mime_Grammar(), $mimeTypes); + } + + protected function _createFileStream($path, $data, $stub = true) + { + $file = $this->getMockery('Swift_FileStream'); + $file->shouldReceive('getPath') + ->zeroOrMoreTimes() + ->andReturn($path); + $file->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use ($data) { + static $first = true; + if (!$first) { + return false; + } + + $first = false; + + return $data; + }); + $file->shouldReceive('setReadPointer') + ->zeroOrMoreTimes(); + + return $file; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/Base64ContentEncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/Base64ContentEncoderTest.php new file mode 100644 index 0000000..0442af3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/Base64ContentEncoderTest.php @@ -0,0 +1,323 @@ +_encoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + } + + public function testNameIsBase64() + { + $this->assertEquals('base64', $this->_encoder->getName()); + } + + /* + There's really no point in testing the entire base64 encoding to the + level QP encoding has been tested. base64_encode() has been in PHP for + years. + */ + + public function testInputOutputRatioIs3to4Bytes() + { + /* + RFC 2045, 6.8 + + The encoding process represents 24-bit groups of input bits as output + strings of 4 encoded characters. Proceeding from left to right, a + 24-bit input group is formed by concatenating 3 8bit input groups. + These 24 bits are then treated as 4 concatenated 6-bit groups, each + of which is translated into a single digit in the base64 alphabet. + */ + + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn('123'); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is); + $this->assertEquals('MTIz', $collection->content); + } + + public function testPadLength() + { + /* + RFC 2045, 6.8 + + Special processing is performed if fewer than 24 bits are available + at the end of the data being encoded. A full encoding quantum is + always completed at the end of a body. When fewer than 24 input bits + are available in an input group, zero bits are added (on the right) + to form an integral number of 6-bit groups. Padding at the end of + the data is performed using the "=" character. Since all base64 + input is an integral number of octets, only the following cases can + arise: (1) the final quantum of encoding input is an integral + multiple of 24 bits; here, the final unit of encoded output will be + an integral multiple of 4 characters with no "=" padding, (2) the + final quantum of encoding input is exactly 8 bits; here, the final + unit of encoded output will be two characters followed by two "=" + padding characters, or (3) the final quantum of encoding input is + exactly 16 bits; here, the final unit of encoded output will be three + characters followed by one "=" padding character. + */ + + for ($i = 0; $i < 30; ++$i) { + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn(pack('C', rand(0, 255))); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is); + $this->assertRegExp('~^[a-zA-Z0-9/\+]{2}==$~', $collection->content, + '%s: A single byte should have 2 bytes of padding' + ); + } + + for ($i = 0; $i < 30; ++$i) { + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn(pack('C*', rand(0, 255), rand(0, 255))); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is); + $this->assertRegExp('~^[a-zA-Z0-9/\+]{3}=$~', $collection->content, + '%s: Two bytes should have 1 byte of padding' + ); + } + + for ($i = 0; $i < 30; ++$i) { + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn(pack('C*', rand(0, 255), rand(0, 255), rand(0, 255))); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is); + $this->assertRegExp('~^[a-zA-Z0-9/\+]{4}$~', $collection->content, + '%s: Three bytes should have no padding' + ); + } + } + + public function testMaximumLineLengthIs76Characters() + { + /* + The encoded output stream must be represented in lines of no more + than 76 characters each. All line breaks or other characters not + found in Table 1 must be ignored by decoding software. + */ + + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //12 + $os->shouldReceive('read') + ->once() + ->andReturn('mnopqrstuvwx'); //24 + $os->shouldReceive('read') + ->once() + ->andReturn('yzabc1234567'); //36 + $os->shouldReceive('read') + ->once() + ->andReturn('890ABCDEFGHI'); //48 + $os->shouldReceive('read') + ->once() + ->andReturn('JKLMNOPQRSTU'); //60 + $os->shouldReceive('read') + ->once() + ->andReturn('VWXYZ1234567'); //72 + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //84 + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is); + $this->assertEquals( + "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXphYmMxMjM0NTY3ODkwQUJDREVGR0hJSktMTU5PUFFS\r\n". + 'U1RVVldYWVoxMjM0NTY3YWJjZGVmZ2hpamts', + $collection->content + ); + } + + public function testMaximumLineLengthCanBeDifferent() + { + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //12 + $os->shouldReceive('read') + ->once() + ->andReturn('mnopqrstuvwx'); //24 + $os->shouldReceive('read') + ->once() + ->andReturn('yzabc1234567'); //36 + $os->shouldReceive('read') + ->once() + ->andReturn('890ABCDEFGHI'); //48 + $os->shouldReceive('read') + ->once() + ->andReturn('JKLMNOPQRSTU'); //60 + $os->shouldReceive('read') + ->once() + ->andReturn('VWXYZ1234567'); //72 + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //84 + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is, 0, 50); + $this->assertEquals( + "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXphYmMxMjM0NTY3OD\r\n". + "kwQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoxMjM0NTY3YWJj\r\n". + 'ZGVmZ2hpamts', + $collection->content + ); + } + + public function testMaximumLineLengthIsNeverMoreThan76Chars() + { + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //12 + $os->shouldReceive('read') + ->once() + ->andReturn('mnopqrstuvwx'); //24 + $os->shouldReceive('read') + ->once() + ->andReturn('yzabc1234567'); //36 + $os->shouldReceive('read') + ->once() + ->andReturn('890ABCDEFGHI'); //48 + $os->shouldReceive('read') + ->once() + ->andReturn('JKLMNOPQRSTU'); //60 + $os->shouldReceive('read') + ->once() + ->andReturn('VWXYZ1234567'); //72 + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //84 + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is, 0, 100); + $this->assertEquals( + "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXphYmMxMjM0NTY3ODkwQUJDREVGR0hJSktMTU5PUFFS\r\n". + 'U1RVVldYWVoxMjM0NTY3YWJjZGVmZ2hpamts', + $collection->content + ); + } + + public function testFirstLineLengthCanBeDifferent() + { + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //12 + $os->shouldReceive('read') + ->once() + ->andReturn('mnopqrstuvwx'); //24 + $os->shouldReceive('read') + ->once() + ->andReturn('yzabc1234567'); //36 + $os->shouldReceive('read') + ->once() + ->andReturn('890ABCDEFGHI'); //48 + $os->shouldReceive('read') + ->once() + ->andReturn('JKLMNOPQRSTU'); //60 + $os->shouldReceive('read') + ->once() + ->andReturn('VWXYZ1234567'); //72 + $os->shouldReceive('read') + ->once() + ->andReturn('abcdefghijkl'); //84 + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_encoder->encodeByteStream($os, $is, 19); + $this->assertEquals( + "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXphYmMxMjM0NTY3ODkwQUJDR\r\n". + 'EVGR0hJSktMTU5PUFFSU1RVVldYWVoxMjM0NTY3YWJjZGVmZ2hpamts', + $collection->content + ); + } + + private function _createOutputByteStream($stub = false) + { + return $this->getMockery('Swift_OutputByteStream')->shouldIgnoreMissing(); + } + + private function _createInputByteStream($stub = false) + { + return $this->getMockery('Swift_InputByteStream')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/PlainContentEncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/PlainContentEncoderTest.php new file mode 100644 index 0000000..526cedc --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/PlainContentEncoderTest.php @@ -0,0 +1,173 @@ +_getEncoder('7bit'); + $this->assertEquals('7bit', $encoder->getName()); + + $encoder = $this->_getEncoder('8bit'); + $this->assertEquals('8bit', $encoder->getName()); + } + + public function testNoOctetsAreModifiedInString() + { + $encoder = $this->_getEncoder('7bit'); + foreach (range(0x00, 0xFF) as $octet) { + $byte = pack('C', $octet); + $this->assertIdenticalBinary($byte, $encoder->encodeString($byte)); + } + } + + public function testNoOctetsAreModifiedInByteStream() + { + $encoder = $this->_getEncoder('7bit'); + foreach (range(0x00, 0xFF) as $octet) { + $byte = pack('C', $octet); + + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn($byte); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder->encodeByteStream($os, $is); + $this->assertIdenticalBinary($byte, $collection->content); + } + } + + public function testLineLengthCanBeSpecified() + { + $encoder = $this->_getEncoder('7bit'); + + $chars = array(); + for ($i = 0; $i < 50; $i++) { + $chars[] = 'a'; + } + $input = implode(' ', $chars); //99 chars long + + $this->assertEquals( + 'a a a a a a a a a a a a a a a a a a a a a a a a a '."\r\n".//50 * + 'a a a a a a a a a a a a a a a a a a a a a a a a a', //99 + $encoder->encodeString($input, 0, 50), + '%s: Lines should be wrapped at 50 chars' + ); + } + + public function testLineLengthCanBeSpecifiedInByteStream() + { + $encoder = $this->_getEncoder('7bit'); + + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + + for ($i = 0; $i < 50; $i++) { + $os->shouldReceive('read') + ->once() + ->andReturn('a '); + } + + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder->encodeByteStream($os, $is, 0, 50); + $this->assertEquals( + str_repeat('a ', 25)."\r\n".str_repeat('a ', 25), + $collection->content + ); + } + + public function testencodeStringGeneratesCorrectCrlf() + { + $encoder = $this->_getEncoder('7bit', true); + $this->assertEquals("a\r\nb", $encoder->encodeString("a\rb"), + '%s: Line endings should be standardized' + ); + $this->assertEquals("a\r\nb", $encoder->encodeString("a\nb"), + '%s: Line endings should be standardized' + ); + $this->assertEquals("a\r\n\r\nb", $encoder->encodeString("a\n\rb"), + '%s: Line endings should be standardized' + ); + $this->assertEquals("a\r\n\r\nb", $encoder->encodeString("a\r\rb"), + '%s: Line endings should be standardized' + ); + $this->assertEquals("a\r\n\r\nb", $encoder->encodeString("a\n\nb"), + '%s: Line endings should be standardized' + ); + } + + public function crlfProvider() + { + return array( + array("\r", "a\r\nb"), + array("\n", "a\r\nb"), + array("\n\r", "a\r\n\r\nb"), + array("\n\n", "a\r\n\r\nb"), + array("\r\r", "a\r\n\r\nb"), + ); + } + + /** + * @dataProvider crlfProvider + */ + public function testCanonicEncodeByteStreamGeneratesCorrectCrlf($test, $expected) + { + $encoder = $this->_getEncoder('7bit', true); + + $os = $this->_createOutputByteStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $os->shouldReceive('read') + ->once() + ->andReturn('a'); + $os->shouldReceive('read') + ->once() + ->andReturn($test); + $os->shouldReceive('read') + ->once() + ->andReturn('b'); + $os->shouldReceive('read') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder->encodeByteStream($os, $is); + $this->assertEquals($expected, $collection->content); + } + + // -- Private helpers + + private function _getEncoder($name, $canonical = false) + { + return new Swift_Mime_ContentEncoder_PlainContentEncoder($name, $canonical); + } + + private function _createOutputByteStream($stub = false) + { + return $this->getMockery('Swift_OutputByteStream')->shouldIgnoreMissing(); + } + + private function _createInputByteStream($stub = false) + { + return $this->getMockery('Swift_InputByteStream')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/QpContentEncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/QpContentEncoderTest.php new file mode 100644 index 0000000..66fa8f3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/QpContentEncoderTest.php @@ -0,0 +1,496 @@ +_createCharacterStream(true) + ); + $this->assertEquals('quoted-printable', $encoder->getName()); + } + + /* -- RFC 2045, 6.7 -- + (1) (General 8bit representation) Any octet, except a CR or + LF that is part of a CRLF line break of the canonical + (standard) form of the data being encoded, may be + represented by an "=" followed by a two digit + hexadecimal representation of the octet's value. The + digits of the hexadecimal alphabet, for this purpose, + are "0123456789ABCDEF". Uppercase letters must be + used; lowercase letters are not allowed. Thus, for + example, the decimal value 12 (US-ASCII form feed) can + be represented by "=0C", and the decimal value 61 (US- + ASCII EQUAL SIGN) can be represented by "=3D". This + rule must be followed except when the following rules + allow an alternative encoding. + */ + + public function testPermittedCharactersAreNotEncoded() + { + /* -- RFC 2045, 6.7 -- + (2) (Literal representation) Octets with decimal values of + 33 through 60 inclusive, and 62 through 126, inclusive, + MAY be represented as the US-ASCII characters which + correspond to those octets (EXCLAMATION POINT through + LESS THAN, and GREATER THAN through TILDE, + respectively). + */ + + foreach (array_merge(range(33, 60), range(62, 126)) as $ordinal) { + $char = chr($ordinal); + + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($ordinal)); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + $this->assertIdenticalBinary($char, $collection->content); + } + } + + public function testLinearWhiteSpaceAtLineEndingIsEncoded() + { + /* -- RFC 2045, 6.7 -- + (3) (White Space) Octets with values of 9 and 32 MAY be + represented as US-ASCII TAB (HT) and SPACE characters, + respectively, but MUST NOT be so represented at the end + of an encoded line. Any TAB (HT) or SPACE characters + on an encoded line MUST thus be followed on that line + by a printable character. In particular, an "=" at the + end of an encoded line, indicating a soft line break + (see rule #5) may follow one or more TAB (HT) or SPACE + characters. It follows that an octet with decimal + value 9 or 32 appearing at the end of an encoded line + must be represented according to Rule #1. This rule is + necessary because some MTAs (Message Transport Agents, + programs which transport messages from one user to + another, or perform a portion of such transfers) are + known to pad lines of text with SPACEs, and others are + known to remove "white space" characters from the end + of a line. Therefore, when decoding a Quoted-Printable + body, any trailing white space on a line must be + deleted, as it will necessarily have been added by + intermediate transport agents. + */ + + $HT = chr(0x09); //9 + $SPACE = chr(0x20); //32 + + //HT + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x09)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x09)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + + $this->assertEquals("a\t=09\r\nb", $collection->content); + + //SPACE + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x20)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x20)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + + $this->assertEquals("a =20\r\nb", $collection->content); + } + + public function testCRLFIsLeftAlone() + { + /* + (4) (Line Breaks) A line break in a text body, represented + as a CRLF sequence in the text canonical form, must be + represented by a (RFC 822) line break, which is also a + CRLF sequence, in the Quoted-Printable encoding. Since + the canonical representation of media types other than + text do not generally include the representation of + line breaks as CRLF sequences, no hard line breaks + (i.e. line breaks that are intended to be meaningful + and to be displayed to the user) can occur in the + quoted-printable encoding of such types. Sequences + like "=0D", "=0A", "=0A=0D" and "=0D=0A" will routinely + appear in non-text data represented in quoted- + printable, of course. + + Note that many implementations may elect to encode the + local representation of various content types directly + rather than converting to canonical form first, + encoding, and then converting back to local + representation. In particular, this may apply to plain + text material on systems that use newline conventions + other than a CRLF terminator sequence. Such an + implementation optimization is permissible, but only + when the combined canonicalization-encoding step is + equivalent to performing the three steps separately. + */ + + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('c'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0D)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x0A)); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + $this->assertEquals("a\r\nb\r\nc\r\n", $collection->content); + } + + public function testLinesLongerThan76CharactersAreSoftBroken() + { + /* + (5) (Soft Line Breaks) The Quoted-Printable encoding + REQUIRES that encoded lines be no more than 76 + characters long. If longer lines are to be encoded + with the Quoted-Printable encoding, "soft" line breaks + must be used. An equal sign as the last character on a + encoded line indicates such a non-significant ("soft") + line break in the encoded text. + */ + + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + + for ($seq = 0; $seq <= 140; ++$seq) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + } + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + $this->assertEquals(str_repeat('a', 75)."=\r\n".str_repeat('a', 66), $collection->content); + } + + public function testMaxLineLengthCanBeSpecified() + { + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + + for ($seq = 0; $seq <= 100; ++$seq) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + } + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is, 0, 54); + $this->assertEquals(str_repeat('a', 53)."=\r\n".str_repeat('a', 48), $collection->content); + } + + public function testBytesBelowPermittedRangeAreEncoded() + { + /* + According to Rule (1 & 2) + */ + + foreach (range(0, 32) as $ordinal) { + $char = chr($ordinal); + + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($ordinal)); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + $this->assertEquals(sprintf('=%02X', $ordinal), $collection->content); + } + } + + public function testDecimalByte61IsEncoded() + { + /* + According to Rule (1 & 2) + */ + + $char = chr(61); + + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(61)); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + $this->assertEquals(sprintf('=%02X', 61), $collection->content); + } + + public function testBytesAbovePermittedRangeAreEncoded() + { + /* + According to Rule (1 & 2) + */ + + foreach (range(127, 255) as $ordinal) { + $char = chr($ordinal); + + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($ordinal)); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is); + $this->assertEquals(sprintf('=%02X', $ordinal), $collection->content); + } + } + + public function testFirstLineLengthCanBeDifferent() + { + $os = $this->_createOutputByteStream(true); + $charStream = $this->_createCharacterStream(); + $is = $this->_createInputByteStream(); + $collection = new Swift_StreamCollector(); + + $is->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturnUsing($collection); + $charStream->shouldReceive('flushContents') + ->once(); + $charStream->shouldReceive('importByteStream') + ->once() + ->with($os); + + for ($seq = 0; $seq <= 140; ++$seq) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + } + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($charStream); + $encoder->encodeByteStream($os, $is, 22); + $this->assertEquals( + str_repeat('a', 53)."=\r\n".str_repeat('a', 75)."=\r\n".str_repeat('a', 13), + $collection->content + ); + } + + public function testObserverInterfaceCanChangeCharset() + { + $stream = $this->_createCharacterStream(); + $stream->shouldReceive('setCharacterSet') + ->once() + ->with('windows-1252'); + + $encoder = new Swift_Mime_ContentEncoder_QpContentEncoder($stream); + $encoder->charsetChanged('windows-1252'); + } + + // -- Creation Methods + + private function _createCharacterStream($stub = false) + { + return $this->getMockery('Swift_CharacterStream')->shouldIgnoreMissing(); + } + + private function _createEncoder($charStream) + { + return new Swift_Mime_HeaderEncoder_QpHeaderEncoder($charStream); + } + + private function _createOutputByteStream($stub = false) + { + return $this->getMockery('Swift_OutputByteStream')->shouldIgnoreMissing(); + } + + private function _createInputByteStream($stub = false) + { + return $this->getMockery('Swift_InputByteStream')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/EmbeddedFileTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/EmbeddedFileTest.php new file mode 100644 index 0000000..f4c3ac8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/EmbeddedFileTest.php @@ -0,0 +1,57 @@ +_createEmbeddedFile($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals( + Swift_Mime_MimeEntity::LEVEL_RELATED, $file->getNestingLevel() + ); + } + + public function testIdIsAutoGenerated() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addIdHeader') + ->once() + ->with('Content-ID', '/^.*?@.*?$/D'); + + $file = $this->_createEmbeddedFile($headers, $this->_createEncoder(), + $this->_createCache() + ); + } + + public function testDefaultDispositionIsInline() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addParameterizedHeader') + ->once() + ->with('Content-Disposition', 'inline'); + $headers->shouldReceive('addParameterizedHeader') + ->zeroOrMoreTimes(); + + $file = $this->_createEmbeddedFile($headers, $this->_createEncoder(), + $this->_createCache() + ); + } + + // -- Private helpers + + protected function _createAttachment($headers, $encoder, $cache, $mimeTypes = array()) + { + return $this->_createEmbeddedFile($headers, $encoder, $cache, $mimeTypes); + } + + private function _createEmbeddedFile($headers, $encoder, $cache) + { + return new Swift_Mime_EmbeddedFile($headers, $encoder, $cache, new Swift_Mime_Grammar()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/Base64HeaderEncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/Base64HeaderEncoderTest.php new file mode 100644 index 0000000..3580155 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/Base64HeaderEncoderTest.php @@ -0,0 +1,13 @@ +assertEquals('B', $encoder->getName()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/QpHeaderEncoderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/QpHeaderEncoderTest.php new file mode 100644 index 0000000..54a792a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/QpHeaderEncoderTest.php @@ -0,0 +1,223 @@ +_createEncoder( + $this->_createCharacterStream(true) + ); + $this->assertEquals('Q', $encoder->getName()); + } + + public function testSpaceAndTabNeverAppear() + { + /* -- RFC 2047, 4. + Only a subset of the printable ASCII characters may be used in + 'encoded-text'. Space and tab characters are not allowed, so that + the beginning and end of an 'encoded-word' are obvious. + */ + + $charStream = $this->_createCharacterStream(); + $charStream->shouldReceive('readBytes') + ->atLeast()->times(6) + ->andReturn(array(ord('a')), array(0x20), array(0x09), array(0x20), array(ord('b')), false); + + $encoder = $this->_createEncoder($charStream); + $this->assertNotRegExp('~[ \t]~', $encoder->encodeString("a \t b"), + '%s: encoded-words in headers cannot contain LWSP as per RFC 2047.' + ); + } + + public function testSpaceIsRepresentedByUnderscore() + { + /* -- RFC 2047, 4.2. + (2) The 8-bit hexadecimal value 20 (e.g., ISO-8859-1 SPACE) may be + represented as "_" (underscore, ASCII 95.). (This character may + not pass through some internetwork mail gateways, but its use + will greatly enhance readability of "Q" encoded data with mail + readers that do not support this encoding.) Note that the "_" + always represents hexadecimal 20, even if the SPACE character + occupies a different code position in the character set in use. + */ + $charStream = $this->_createCharacterStream(); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(0x20)); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('b'))); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = $this->_createEncoder($charStream); + $this->assertEquals('a_b', $encoder->encodeString('a b'), + '%s: Spaces can be represented by more readable underscores as per RFC 2047.' + ); + } + + public function testEqualsAndQuestionAndUnderscoreAreEncoded() + { + /* -- RFC 2047, 4.2. + (3) 8-bit values which correspond to printable ASCII characters other + than "=", "?", and "_" (underscore), MAY be represented as those + characters. (But see section 5 for restrictions.) In + particular, SPACE and TAB MUST NOT be represented as themselves + within encoded words. + */ + $charStream = $this->_createCharacterStream(); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('='))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('?'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('_'))); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = $this->_createEncoder($charStream); + $this->assertEquals('=3D=3F=5F', $encoder->encodeString('=?_'), + '%s: Chars =, ? and _ (underscore) may not appear as per RFC 2047.' + ); + } + + public function testParensAndQuotesAreEncoded() + { + /* -- RFC 2047, 5 (2). + A "Q"-encoded 'encoded-word' which appears in a 'comment' MUST NOT + contain the characters "(", ")" or " + */ + + $charStream = $this->_createCharacterStream(); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('('))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('"'))); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord(')'))); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = $this->_createEncoder($charStream); + $this->assertEquals('=28=22=29', $encoder->encodeString('(")'), + '%s: Chars (, " (DQUOTE) and ) may not appear as per RFC 2047.' + ); + } + + public function testOnlyCharactersAllowedInPhrasesAreUsed() + { + /* -- RFC 2047, 5. + (3) As a replacement for a 'word' entity within a 'phrase', for example, + one that precedes an address in a From, To, or Cc header. The ABNF + definition for 'phrase' from RFC 822 thus becomes: + + phrase = 1*( encoded-word / word ) + + In this case the set of characters that may be used in a "Q"-encoded + 'encoded-word' is restricted to: . An 'encoded-word' that appears within a + 'phrase' MUST be separated from any adjacent 'word', 'text' or + 'special' by 'linear-white-space'. + */ + + $allowedBytes = array_merge( + range(ord('a'), ord('z')), range(ord('A'), ord('Z')), + range(ord('0'), ord('9')), + array(ord('!'), ord('*'), ord('+'), ord('-'), ord('/')) + ); + + foreach (range(0x00, 0xFF) as $byte) { + $char = pack('C', $byte); + + $charStream = $this->_createCharacterStream(); + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array($byte)); + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = $this->_createEncoder($charStream); + $encodedChar = $encoder->encodeString($char); + + if (in_array($byte, $allowedBytes)) { + $this->assertEquals($char, $encodedChar, + '%s: Character '.$char.' should not be encoded.' + ); + } elseif (0x20 == $byte) { + //Special case + $this->assertEquals('_', $encodedChar, + '%s: Space character should be replaced.' + ); + } else { + $this->assertEquals(sprintf('=%02X', $byte), $encodedChar, + '%s: Byte '.$byte.' should be encoded.' + ); + } + } + } + + public function testEqualsNeverAppearsAtEndOfLine() + { + /* -- RFC 2047, 5 (3). + The 'encoded-text' in an 'encoded-word' must be self-contained; + 'encoded-text' MUST NOT be continued from one 'encoded-word' to + another. This implies that the 'encoded-text' portion of a "B" + 'encoded-word' will be a multiple of 4 characters long; for a "Q" + 'encoded-word', any "=" character that appears in the 'encoded-text' + portion will be followed by two hexadecimal characters. + */ + + $input = str_repeat('a', 140); + + $charStream = $this->_createCharacterStream(); + + $output = ''; + $seq = 0; + for (; $seq < 140; ++$seq) { + $charStream->shouldReceive('readBytes') + ->once() + ->andReturn(array(ord('a'))); + + if (75 == $seq) { + $output .= "\r\n"; // =\r\n + } + $output .= 'a'; + } + + $charStream->shouldReceive('readBytes') + ->zeroOrMoreTimes() + ->andReturn(false); + + $encoder = $this->_createEncoder($charStream); + $this->assertEquals($output, $encoder->encodeString($input)); + } + + // -- Creation Methods + + private function _createEncoder($charStream) + { + return new Swift_Mime_HeaderEncoder_QpHeaderEncoder($charStream); + } + + private function _createCharacterStream($stub = false) + { + return $this->getMockery('Swift_CharacterStream')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/DateHeaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/DateHeaderTest.php new file mode 100644 index 0000000..1822ea6 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/DateHeaderTest.php @@ -0,0 +1,69 @@ +_getHeader('Date'); + $this->assertEquals(Swift_Mime_Header::TYPE_DATE, $header->getFieldType()); + } + + public function testGetTimestamp() + { + $timestamp = time(); + $header = $this->_getHeader('Date'); + $header->setTimestamp($timestamp); + $this->assertSame($timestamp, $header->getTimestamp()); + } + + public function testTimestampCanBeSetBySetter() + { + $timestamp = time(); + $header = $this->_getHeader('Date'); + $header->setTimestamp($timestamp); + $this->assertSame($timestamp, $header->getTimestamp()); + } + + public function testIntegerTimestampIsConvertedToRfc2822Date() + { + $timestamp = time(); + $header = $this->_getHeader('Date'); + $header->setTimestamp($timestamp); + $this->assertEquals(date('r', $timestamp), $header->getFieldBody()); + } + + public function testSetBodyModel() + { + $timestamp = time(); + $header = $this->_getHeader('Date'); + $header->setFieldBodyModel($timestamp); + $this->assertEquals(date('r', $timestamp), $header->getFieldBody()); + } + + public function testGetBodyModel() + { + $timestamp = time(); + $header = $this->_getHeader('Date'); + $header->setTimestamp($timestamp); + $this->assertEquals($timestamp, $header->getFieldBodyModel()); + } + + public function testToString() + { + $timestamp = time(); + $header = $this->_getHeader('Date'); + $header->setTimestamp($timestamp); + $this->assertEquals('Date: '.date('r', $timestamp)."\r\n", + $header->toString() + ); + } + + private function _getHeader($name) + { + return new Swift_Mime_Headers_DateHeader($name, new Swift_Mime_Grammar()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/IdentificationHeaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/IdentificationHeaderTest.php new file mode 100644 index 0000000..93b3f60 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/IdentificationHeaderTest.php @@ -0,0 +1,189 @@ +_getHeader('Message-ID'); + $this->assertEquals(Swift_Mime_Header::TYPE_ID, $header->getFieldType()); + } + + public function testValueMatchesMsgIdSpec() + { + /* -- RFC 2822, 3.6.4. + message-id = "Message-ID:" msg-id CRLF + + in-reply-to = "In-Reply-To:" 1*msg-id CRLF + + references = "References:" 1*msg-id CRLF + + msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] + + id-left = dot-atom-text / no-fold-quote / obs-id-left + + id-right = dot-atom-text / no-fold-literal / obs-id-right + + no-fold-quote = DQUOTE *(qtext / quoted-pair) DQUOTE + + no-fold-literal = "[" *(dtext / quoted-pair) "]" + */ + + $header = $this->_getHeader('Message-ID'); + $header->setId('id-left@id-right'); + $this->assertEquals('', $header->getFieldBody()); + } + + public function testIdCanBeRetrievedVerbatim() + { + $header = $this->_getHeader('Message-ID'); + $header->setId('id-left@id-right'); + $this->assertEquals('id-left@id-right', $header->getId()); + } + + public function testMultipleIdsCanBeSet() + { + $header = $this->_getHeader('References'); + $header->setIds(array('a@b', 'x@y')); + $this->assertEquals(array('a@b', 'x@y'), $header->getIds()); + } + + public function testSettingMultipleIdsProducesAListValue() + { + /* -- RFC 2822, 3.6.4. + The "References:" and "In-Reply-To:" field each contain one or more + unique message identifiers, optionally separated by CFWS. + + .. SNIP .. + + in-reply-to = "In-Reply-To:" 1*msg-id CRLF + + references = "References:" 1*msg-id CRLF + */ + + $header = $this->_getHeader('References'); + $header->setIds(array('a@b', 'x@y')); + $this->assertEquals(' ', $header->getFieldBody()); + } + + public function testIdLeftCanBeQuoted() + { + /* -- RFC 2822, 3.6.4. + id-left = dot-atom-text / no-fold-quote / obs-id-left + */ + + $header = $this->_getHeader('References'); + $header->setId('"ab"@c'); + $this->assertEquals('"ab"@c', $header->getId()); + $this->assertEquals('<"ab"@c>', $header->getFieldBody()); + } + + public function testIdLeftCanContainAnglesAsQuotedPairs() + { + /* -- RFC 2822, 3.6.4. + no-fold-quote = DQUOTE *(qtext / quoted-pair) DQUOTE + */ + + $header = $this->_getHeader('References'); + $header->setId('"a\\<\\>b"@c'); + $this->assertEquals('"a\\<\\>b"@c', $header->getId()); + $this->assertEquals('<"a\\<\\>b"@c>', $header->getFieldBody()); + } + + public function testIdLeftCanBeDotAtom() + { + $header = $this->_getHeader('References'); + $header->setId('a.b+&%$.c@d'); + $this->assertEquals('a.b+&%$.c@d', $header->getId()); + $this->assertEquals('', $header->getFieldBody()); + } + + public function testInvalidIdLeftThrowsException() + { + try { + $header = $this->_getHeader('References'); + $header->setId('a b c@d'); + $this->fail( + 'Exception should be thrown since "a b c" is not valid id-left.' + ); + } catch (Exception $e) { + } + } + + public function testIdRightCanBeDotAtom() + { + /* -- RFC 2822, 3.6.4. + id-right = dot-atom-text / no-fold-literal / obs-id-right + */ + + $header = $this->_getHeader('References'); + $header->setId('a@b.c+&%$.d'); + $this->assertEquals('a@b.c+&%$.d', $header->getId()); + $this->assertEquals('', $header->getFieldBody()); + } + + public function testIdRightCanBeLiteral() + { + /* -- RFC 2822, 3.6.4. + no-fold-literal = "[" *(dtext / quoted-pair) "]" + */ + + $header = $this->_getHeader('References'); + $header->setId('a@[1.2.3.4]'); + $this->assertEquals('a@[1.2.3.4]', $header->getId()); + $this->assertEquals('', $header->getFieldBody()); + } + + public function testInvalidIdRightThrowsException() + { + try { + $header = $this->_getHeader('References'); + $header->setId('a@b c d'); + $this->fail( + 'Exception should be thrown since "b c d" is not valid id-right.' + ); + } catch (Exception $e) { + } + } + + public function testMissingAtSignThrowsException() + { + /* -- RFC 2822, 3.6.4. + msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] + */ + + try { + $header = $this->_getHeader('References'); + $header->setId('abc'); + $this->fail( + 'Exception should be thrown since "abc" is does not contain @.' + ); + } catch (Exception $e) { + } + } + + public function testSetBodyModel() + { + $header = $this->_getHeader('Message-ID'); + $header->setFieldBodyModel('a@b'); + $this->assertEquals(array('a@b'), $header->getIds()); + } + + public function testGetBodyModel() + { + $header = $this->_getHeader('Message-ID'); + $header->setId('a@b'); + $this->assertEquals(array('a@b'), $header->getFieldBodyModel()); + } + + public function testStringValue() + { + $header = $this->_getHeader('References'); + $header->setIds(array('a@b', 'x@y')); + $this->assertEquals('References: '."\r\n", $header->toString()); + } + + private function _getHeader($name) + { + return new Swift_Mime_Headers_IdentificationHeader($name, new Swift_Mime_Grammar()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/MailboxHeaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/MailboxHeaderTest.php new file mode 100644 index 0000000..0713ff4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/MailboxHeaderTest.php @@ -0,0 +1,327 @@ +_getHeader('To', $this->_getEncoder('Q', true)); + $this->assertEquals(Swift_Mime_Header::TYPE_MAILBOX, $header->getFieldType()); + } + + public function testMailboxIsSetForAddress() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setAddresses('chris@swiftmailer.org'); + $this->assertEquals(array('chris@swiftmailer.org'), + $header->getNameAddressStrings() + ); + } + + public function testMailboxIsRenderedForNameAddress() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array('chris@swiftmailer.org' => 'Chris Corbyn')); + $this->assertEquals( + array('Chris Corbyn '), $header->getNameAddressStrings() + ); + } + + public function testAddressCanBeReturnedForAddress() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setAddresses('chris@swiftmailer.org'); + $this->assertEquals(array('chris@swiftmailer.org'), $header->getAddresses()); + } + + public function testAddressCanBeReturnedForNameAddress() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array('chris@swiftmailer.org' => 'Chris Corbyn')); + $this->assertEquals(array('chris@swiftmailer.org'), $header->getAddresses()); + } + + public function testQuotesInNameAreQuoted() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn, "DHE"', + )); + $this->assertEquals( + array('"Chris Corbyn, \"DHE\"" '), + $header->getNameAddressStrings() + ); + } + + public function testEscapeCharsInNameAreQuoted() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn, \\escaped\\', + )); + $this->assertEquals( + array('"Chris Corbyn, \\\\escaped\\\\" '), + $header->getNameAddressStrings() + ); + } + + public function testGetMailboxesReturnsNameValuePairs() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn, DHE', + )); + $this->assertEquals( + array('chris@swiftmailer.org' => 'Chris Corbyn, DHE'), $header->getNameAddresses() + ); + } + + public function testMultipleAddressesCanBeSetAndFetched() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setAddresses(array( + 'chris@swiftmailer.org', 'mark@swiftmailer.org', + )); + $this->assertEquals( + array('chris@swiftmailer.org', 'mark@swiftmailer.org'), + $header->getAddresses() + ); + } + + public function testMultipleAddressesAsMailboxes() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setAddresses(array( + 'chris@swiftmailer.org', 'mark@swiftmailer.org', + )); + $this->assertEquals( + array('chris@swiftmailer.org' => null, 'mark@swiftmailer.org' => null), + $header->getNameAddresses() + ); + } + + public function testMultipleAddressesAsMailboxStrings() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setAddresses(array( + 'chris@swiftmailer.org', 'mark@swiftmailer.org', + )); + $this->assertEquals( + array('chris@swiftmailer.org', 'mark@swiftmailer.org'), + $header->getNameAddressStrings() + ); + } + + public function testMultipleNamedMailboxesReturnsMultipleAddresses() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $this->assertEquals( + array('chris@swiftmailer.org', 'mark@swiftmailer.org'), + $header->getAddresses() + ); + } + + public function testMultipleNamedMailboxesReturnsMultipleMailboxes() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $this->assertEquals(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + ), + $header->getNameAddresses() + ); + } + + public function testMultipleMailboxesProducesMultipleMailboxStrings() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $this->assertEquals(array( + 'Chris Corbyn ', + 'Mark Corbyn ', + ), + $header->getNameAddressStrings() + ); + } + + public function testSetAddressesOverwritesAnyMailboxes() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $this->assertEquals( + array('chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', ), + $header->getNameAddresses() + ); + $this->assertEquals( + array('chris@swiftmailer.org', 'mark@swiftmailer.org'), + $header->getAddresses() + ); + + $header->setAddresses(array('chris@swiftmailer.org', 'mark@swiftmailer.org')); + + $this->assertEquals( + array('chris@swiftmailer.org' => null, 'mark@swiftmailer.org' => null), + $header->getNameAddresses() + ); + $this->assertEquals( + array('chris@swiftmailer.org', 'mark@swiftmailer.org'), + $header->getAddresses() + ); + } + + public function testNameIsEncodedIfNonAscii() + { + $name = 'C'.pack('C', 0x8F).'rbyn'; + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($name, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('C=8Frbyn'); + + $header = $this->_getHeader('From', $encoder); + $header->setNameAddresses(array('chris@swiftmailer.org' => 'Chris '.$name)); + + $addresses = $header->getNameAddressStrings(); + $this->assertEquals( + 'Chris =?'.$this->_charset.'?Q?C=8Frbyn?= ', + array_shift($addresses) + ); + } + + public function testEncodingLineLengthCalculations() + { + /* -- RFC 2047, 2. + An 'encoded-word' may not be more than 75 characters long, including + 'charset', 'encoding', 'encoded-text', and delimiters. + */ + + $name = 'C'.pack('C', 0x8F).'rbyn'; + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($name, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('C=8Frbyn'); + + $header = $this->_getHeader('From', $encoder); + $header->setNameAddresses(array('chris@swiftmailer.org' => 'Chris '.$name)); + + $header->getNameAddressStrings(); + } + + public function testGetValueReturnsMailboxStringValue() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + )); + $this->assertEquals( + 'Chris Corbyn ', $header->getFieldBody() + ); + } + + public function testGetValueReturnsMailboxStringValueForMultipleMailboxes() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $this->assertEquals( + 'Chris Corbyn , Mark Corbyn ', + $header->getFieldBody() + ); + } + + public function testRemoveAddressesWithSingleValue() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $header->removeAddresses('chris@swiftmailer.org'); + $this->assertEquals(array('mark@swiftmailer.org'), + $header->getAddresses() + ); + } + + public function testRemoveAddressesWithList() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $header->removeAddresses( + array('chris@swiftmailer.org', 'mark@swiftmailer.org') + ); + $this->assertEquals(array(), $header->getAddresses()); + } + + public function testSetBodyModel() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setFieldBodyModel('chris@swiftmailer.org'); + $this->assertEquals(array('chris@swiftmailer.org' => null), $header->getNameAddresses()); + } + + public function testGetBodyModel() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setAddresses(array('chris@swiftmailer.org')); + $this->assertEquals(array('chris@swiftmailer.org' => null), $header->getFieldBodyModel()); + } + + public function testToString() + { + $header = $this->_getHeader('From', $this->_getEncoder('Q', true)); + $header->setNameAddresses(array( + 'chris@swiftmailer.org' => 'Chris Corbyn', + 'mark@swiftmailer.org' => 'Mark Corbyn', + )); + $this->assertEquals( + 'From: Chris Corbyn , '. + 'Mark Corbyn '."\r\n", + $header->toString() + ); + } + + private function _getHeader($name, $encoder) + { + $header = new Swift_Mime_Headers_MailboxHeader($name, $encoder, new Swift_Mime_Grammar()); + $header->setCharset($this->_charset); + + return $header; + } + + private function _getEncoder($type, $stub = false) + { + $encoder = $this->getMockery('Swift_Mime_HeaderEncoder')->shouldIgnoreMissing(); + $encoder->shouldReceive('getName') + ->zeroOrMoreTimes() + ->andReturn($type); + + return $encoder; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/ParameterizedHeaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/ParameterizedHeaderTest.php new file mode 100644 index 0000000..0f3fe14 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/ParameterizedHeaderTest.php @@ -0,0 +1,400 @@ +_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $this->assertEquals(Swift_Mime_Header::TYPE_PARAMETERIZED, $header->getFieldType()); + } + + public function testValueIsReturnedVerbatim() + { + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setValue('text/plain'); + $this->assertEquals('text/plain', $header->getValue()); + } + + public function testParametersAreAppended() + { + /* -- RFC 2045, 5.1 + parameter := attribute "=" value + + attribute := token + ; Matching of attributes + ; is ALWAYS case-insensitive. + + value := token / quoted-string + + token := 1* + + tspecials := "(" / ")" / "<" / ">" / "@" / + "," / ";" / ":" / "\" / <"> + "/" / "[" / "]" / "?" / "=" + ; Must be in quoted-string, + ; to use within parameter values + */ + + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setValue('text/plain'); + $header->setParameters(array('charset' => 'utf-8')); + $this->assertEquals('text/plain; charset=utf-8', $header->getFieldBody()); + } + + public function testSpaceInParamResultsInQuotedString() + { + $header = $this->_getHeader('Content-Disposition', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setValue('attachment'); + $header->setParameters(array('filename' => 'my file.txt')); + $this->assertEquals('attachment; filename="my file.txt"', + $header->getFieldBody() + ); + } + + public function testLongParamsAreBrokenIntoMultipleAttributeStrings() + { + /* -- RFC 2231, 3. + The asterisk character ("*") followed + by a decimal count is employed to indicate that multiple parameters + are being used to encapsulate a single parameter value. The count + starts at 0 and increments by 1 for each subsequent section of the + parameter value. Decimal values are used and neither leading zeroes + nor gaps in the sequence are allowed. + + The original parameter value is recovered by concatenating the + various sections of the parameter, in order. For example, the + content-type field + + Content-Type: message/external-body; access-type=URL; + URL*0="ftp://"; + URL*1="cs.utk.edu/pub/moore/bulk-mailer/bulk-mailer.tar" + + is semantically identical to + + Content-Type: message/external-body; access-type=URL; + URL="ftp://cs.utk.edu/pub/moore/bulk-mailer/bulk-mailer.tar" + + Note that quotes around parameter values are part of the value + syntax; they are NOT part of the value itself. Furthermore, it is + explicitly permitted to have a mixture of quoted and unquoted + continuation fields. + */ + + $value = str_repeat('a', 180); + + $encoder = $this->_getParameterEncoder(); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), 63, \Mockery::any()) + ->andReturn(str_repeat('a', 63)."\r\n". + str_repeat('a', 63)."\r\n".str_repeat('a', 54)); + + $header = $this->_getHeader('Content-Disposition', + $this->_getHeaderEncoder('Q', true), $encoder + ); + $header->setValue('attachment'); + $header->setParameters(array('filename' => $value)); + $header->setMaxLineLength(78); + $this->assertEquals( + 'attachment; '. + 'filename*0*=utf-8\'\''.str_repeat('a', 63).";\r\n ". + 'filename*1*='.str_repeat('a', 63).";\r\n ". + 'filename*2*='.str_repeat('a', 54), + $header->getFieldBody() + ); + } + + public function testEncodedParamDataIncludesCharsetAndLanguage() + { + /* -- RFC 2231, 4. + Asterisks ("*") are reused to provide the indicator that language and + character set information is present and encoding is being used. A + single quote ("'") is used to delimit the character set and language + information at the beginning of the parameter value. Percent signs + ("%") are used as the encoding flag, which agrees with RFC 2047. + + Specifically, an asterisk at the end of a parameter name acts as an + indicator that character set and language information may appear at + the beginning of the parameter value. A single quote is used to + separate the character set, language, and actual value information in + the parameter value string, and an percent sign is used to flag + octets encoded in hexadecimal. For example: + + Content-Type: application/x-stuff; + title*=us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A + + Note that it is perfectly permissible to leave either the character + set or language field blank. Note also that the single quote + delimiters MUST be present even when one of the field values is + omitted. + */ + + $value = str_repeat('a', 20).pack('C', 0x8F).str_repeat('a', 10); + + $encoder = $this->_getParameterEncoder(); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, 12, 62, \Mockery::any()) + ->andReturn(str_repeat('a', 20).'%8F'.str_repeat('a', 10)); + + $header = $this->_getHeader('Content-Disposition', + $this->_getHeaderEncoder('Q', true), $encoder + ); + $header->setValue('attachment'); + $header->setParameters(array('filename' => $value)); + $header->setMaxLineLength(78); + $header->setLanguage($this->_lang); + $this->assertEquals( + 'attachment; filename*='.$this->_charset."'".$this->_lang."'". + str_repeat('a', 20).'%8F'.str_repeat('a', 10), + $header->getFieldBody() + ); + } + + public function testMultipleEncodedParamLinesAreFormattedCorrectly() + { + /* -- RFC 2231, 4.1. + Character set and language information may be combined with the + parameter continuation mechanism. For example: + + Content-Type: application/x-stuff + title*0*=us-ascii'en'This%20is%20even%20more%20 + title*1*=%2A%2A%2Afun%2A%2A%2A%20 + title*2="isn't it!" + + Note that: + + (1) Language and character set information only appear at + the beginning of a given parameter value. + + (2) Continuations do not provide a facility for using more + than one character set or language in the same + parameter value. + + (3) A value presented using multiple continuations may + contain a mixture of encoded and unencoded segments. + + (4) The first segment of a continuation MUST be encoded if + language and character set information are given. + + (5) If the first segment of a continued parameter value is + encoded the language and character set field delimiters + MUST be present even when the fields are left blank. + */ + + $value = str_repeat('a', 20).pack('C', 0x8F).str_repeat('a', 60); + + $encoder = $this->_getParameterEncoder(); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, 12, 62, \Mockery::any()) + ->andReturn(str_repeat('a', 20).'%8F'.str_repeat('a', 28)."\r\n". + str_repeat('a', 32)); + + $header = $this->_getHeader('Content-Disposition', + $this->_getHeaderEncoder('Q', true), $encoder + ); + $header->setValue('attachment'); + $header->setParameters(array('filename' => $value)); + $header->setMaxLineLength(78); + $header->setLanguage($this->_lang); + $this->assertEquals( + 'attachment; filename*0*='.$this->_charset."'".$this->_lang."'". + str_repeat('a', 20).'%8F'.str_repeat('a', 28).";\r\n ". + 'filename*1*='.str_repeat('a', 32), + $header->getFieldBody() + ); + } + + public function testToString() + { + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setValue('text/html'); + $header->setParameters(array('charset' => 'utf-8')); + $this->assertEquals('Content-Type: text/html; charset=utf-8'."\r\n", + $header->toString() + ); + } + + public function testValueCanBeEncodedIfNonAscii() + { + $value = 'fo'.pack('C', 0x8F).'bar'; + + $encoder = $this->_getHeaderEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo=8Fbar'); + + $header = $this->_getHeader('X-Foo', $encoder, $this->_getParameterEncoder(true)); + $header->setValue($value); + $header->setParameters(array('lookslike' => 'foobar')); + $this->assertEquals('X-Foo: =?utf-8?Q?fo=8Fbar?=; lookslike=foobar'."\r\n", + $header->toString() + ); + } + + public function testValueAndParamCanBeEncodedIfNonAscii() + { + $value = 'fo'.pack('C', 0x8F).'bar'; + + $encoder = $this->_getHeaderEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo=8Fbar'); + + $paramEncoder = $this->_getParameterEncoder(); + $paramEncoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo%8Fbar'); + + $header = $this->_getHeader('X-Foo', $encoder, $paramEncoder); + $header->setValue($value); + $header->setParameters(array('says' => $value)); + $this->assertEquals("X-Foo: =?utf-8?Q?fo=8Fbar?=; says*=utf-8''fo%8Fbar\r\n", + $header->toString() + ); + } + + public function testParamsAreEncodedWithEncodedWordsIfNoParamEncoderSet() + { + $value = 'fo'.pack('C', 0x8F).'bar'; + + $encoder = $this->_getHeaderEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo=8Fbar'); + + $header = $this->_getHeader('X-Foo', $encoder, null); + $header->setValue('bar'); + $header->setParameters(array('says' => $value)); + $this->assertEquals("X-Foo: bar; says=\"=?utf-8?Q?fo=8Fbar?=\"\r\n", + $header->toString() + ); + } + + public function testLanguageInformationAppearsInEncodedWords() + { + /* -- RFC 2231, 5. + 5. Language specification in Encoded Words + + RFC 2047 provides support for non-US-ASCII character sets in RFC 822 + message header comments, phrases, and any unstructured text field. + This is done by defining an encoded word construct which can appear + in any of these places. Given that these are fields intended for + display, it is sometimes necessary to associate language information + with encoded words as well as just the character set. This + specification extends the definition of an encoded word to allow the + inclusion of such information. This is simply done by suffixing the + character set specification with an asterisk followed by the language + tag. For example: + + From: =?US-ASCII*EN?Q?Keith_Moore?= + */ + + $value = 'fo'.pack('C', 0x8F).'bar'; + + $encoder = $this->_getHeaderEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo=8Fbar'); + + $paramEncoder = $this->_getParameterEncoder(); + $paramEncoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo%8Fbar'); + + $header = $this->_getHeader('X-Foo', $encoder, $paramEncoder); + $header->setLanguage('en'); + $header->setValue($value); + $header->setParameters(array('says' => $value)); + $this->assertEquals("X-Foo: =?utf-8*en?Q?fo=8Fbar?=; says*=utf-8'en'fo%8Fbar\r\n", + $header->toString() + ); + } + + public function testSetBodyModel() + { + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setFieldBodyModel('text/html'); + $this->assertEquals('text/html', $header->getValue()); + } + + public function testGetBodyModel() + { + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setValue('text/plain'); + $this->assertEquals('text/plain', $header->getFieldBodyModel()); + } + + public function testSetParameter() + { + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setParameters(array('charset' => 'utf-8', 'delsp' => 'yes')); + $header->setParameter('delsp', 'no'); + $this->assertEquals(array('charset' => 'utf-8', 'delsp' => 'no'), + $header->getParameters() + ); + } + + public function testGetParameter() + { + $header = $this->_getHeader('Content-Type', + $this->_getHeaderEncoder('Q', true), $this->_getParameterEncoder(true) + ); + $header->setParameters(array('charset' => 'utf-8', 'delsp' => 'yes')); + $this->assertEquals('utf-8', $header->getParameter('charset')); + } + + // -- Private helper + + private function _getHeader($name, $encoder, $paramEncoder) + { + $header = new Swift_Mime_Headers_ParameterizedHeader($name, $encoder, + $paramEncoder, new Swift_Mime_Grammar() + ); + $header->setCharset($this->_charset); + + return $header; + } + + private function _getHeaderEncoder($type, $stub = false) + { + $encoder = $this->getMockery('Swift_Mime_HeaderEncoder')->shouldIgnoreMissing(); + $encoder->shouldReceive('getName') + ->zeroOrMoreTimes() + ->andReturn($type); + + return $encoder; + } + + private function _getParameterEncoder($stub = false) + { + return $this->getMockery('Swift_Encoder')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/PathHeaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/PathHeaderTest.php new file mode 100644 index 0000000..a9f35e9 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/PathHeaderTest.php @@ -0,0 +1,77 @@ +_getHeader('Return-Path'); + $this->assertEquals(Swift_Mime_Header::TYPE_PATH, $header->getFieldType()); + } + + public function testSingleAddressCanBeSetAndFetched() + { + $header = $this->_getHeader('Return-Path'); + $header->setAddress('chris@swiftmailer.org'); + $this->assertEquals('chris@swiftmailer.org', $header->getAddress()); + } + + public function testAddressMustComplyWithRfc2822() + { + try { + $header = $this->_getHeader('Return-Path'); + $header->setAddress('chr is@swiftmailer.org'); + $this->fail('Addresses not valid according to RFC 2822 addr-spec grammar must be rejected.'); + } catch (Exception $e) { + } + } + + public function testValueIsAngleAddrWithValidAddress() + { + /* -- RFC 2822, 3.6.7. + + return = "Return-Path:" path CRLF + + path = ([CFWS] "<" ([CFWS] / addr-spec) ">" [CFWS]) / + obs-path + */ + + $header = $this->_getHeader('Return-Path'); + $header->setAddress('chris@swiftmailer.org'); + $this->assertEquals('', $header->getFieldBody()); + } + + public function testValueIsEmptyAngleBracketsIfEmptyAddressSet() + { + $header = $this->_getHeader('Return-Path'); + $header->setAddress(''); + $this->assertEquals('<>', $header->getFieldBody()); + } + + public function testSetBodyModel() + { + $header = $this->_getHeader('Return-Path'); + $header->setFieldBodyModel('foo@bar.tld'); + $this->assertEquals('foo@bar.tld', $header->getAddress()); + } + + public function testGetBodyModel() + { + $header = $this->_getHeader('Return-Path'); + $header->setAddress('foo@bar.tld'); + $this->assertEquals('foo@bar.tld', $header->getFieldBodyModel()); + } + + public function testToString() + { + $header = $this->_getHeader('Return-Path'); + $header->setAddress('chris@swiftmailer.org'); + $this->assertEquals('Return-Path: '."\r\n", + $header->toString() + ); + } + + private function _getHeader($name) + { + return new Swift_Mime_Headers_PathHeader($name, new Swift_Mime_Grammar()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/UnstructuredHeaderTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/UnstructuredHeaderTest.php new file mode 100644 index 0000000..2e1dc8c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/UnstructuredHeaderTest.php @@ -0,0 +1,355 @@ +_getHeader('Subject', $this->_getEncoder('Q', true)); + $this->assertEquals(Swift_Mime_Header::TYPE_TEXT, $header->getFieldType()); + } + + public function testGetNameReturnsNameVerbatim() + { + $header = $this->_getHeader('Subject', $this->_getEncoder('Q', true)); + $this->assertEquals('Subject', $header->getFieldName()); + } + + public function testGetValueReturnsValueVerbatim() + { + $header = $this->_getHeader('Subject', $this->_getEncoder('Q', true)); + $header->setValue('Test'); + $this->assertEquals('Test', $header->getValue()); + } + + public function testBasicStructureIsKeyValuePair() + { + /* -- RFC 2822, 2.2 + Header fields are lines composed of a field name, followed by a colon + (":"), followed by a field body, and terminated by CRLF. + */ + $header = $this->_getHeader('Subject', $this->_getEncoder('Q', true)); + $header->setValue('Test'); + $this->assertEquals('Subject: Test'."\r\n", $header->toString()); + } + + public function testLongHeadersAreFoldedAtWordBoundary() + { + /* -- RFC 2822, 2.2.3 + Each header field is logically a single line of characters comprising + the field name, the colon, and the field body. For convenience + however, and to deal with the 998/78 character limitations per line, + the field body portion of a header field can be split into a multiple + line representation; this is called "folding". The general rule is + that wherever this standard allows for folding white space (not + simply WSP characters), a CRLF may be inserted before any WSP. + */ + + $value = 'The quick brown fox jumped over the fence, he was a very very '. + 'scary brown fox with a bushy tail'; + $header = $this->_getHeader('X-Custom-Header', + $this->_getEncoder('Q', true) + ); + $header->setValue($value); + $header->setMaxLineLength(78); //A safe [RFC 2822, 2.2.3] default + /* + X-Custom-Header: The quick brown fox jumped over the fence, he was a very very + scary brown fox with a bushy tail + */ + $this->assertEquals( + 'X-Custom-Header: The quick brown fox jumped over the fence, he was a'. + ' very very'."\r\n".//Folding + ' scary brown fox with a bushy tail'."\r\n", + $header->toString(), '%s: The header should have been folded at 78th char' + ); + } + + public function testPrintableAsciiOnlyAppearsInHeaders() + { + /* -- RFC 2822, 2.2. + A field name MUST be composed of printable US-ASCII characters (i.e., + characters that have values between 33 and 126, inclusive), except + colon. A field body may be composed of any US-ASCII characters, + except for CR and LF. + */ + + $nonAsciiChar = pack('C', 0x8F); + $header = $this->_getHeader('X-Test', $this->_getEncoder('Q', true)); + $header->setValue($nonAsciiChar); + $this->assertRegExp( + '~^[^:\x00-\x20\x80-\xFF]+: [^\x80-\xFF\r\n]+\r\n$~s', + $header->toString() + ); + } + + public function testEncodedWordsFollowGeneralStructure() + { + /* -- RFC 2047, 1. + Generally, an "encoded-word" is a sequence of printable ASCII + characters that begins with "=?", ends with "?=", and has two "?"s in + between. + */ + + $nonAsciiChar = pack('C', 0x8F); + $header = $this->_getHeader('X-Test', $this->_getEncoder('Q', true)); + $header->setValue($nonAsciiChar); + $this->assertRegExp( + '~^X-Test: \=?.*?\?.*?\?.*?\?=\r\n$~s', + $header->toString() + ); + } + + public function testEncodedWordIncludesCharsetAndEncodingMethodAndText() + { + /* -- RFC 2047, 2. + An 'encoded-word' is defined by the following ABNF grammar. The + notation of RFC 822 is used, with the exception that white space + characters MUST NOT appear between components of an 'encoded-word'. + + encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" + */ + + $nonAsciiChar = pack('C', 0x8F); + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($nonAsciiChar, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('=8F'); + + $header = $this->_getHeader('X-Test', $encoder); + $header->setValue($nonAsciiChar); + $this->assertEquals( + 'X-Test: =?'.$this->_charset.'?Q?=8F?='."\r\n", + $header->toString() + ); + } + + public function testEncodedWordsAreUsedToEncodedNonPrintableAscii() + { + //SPACE and TAB permitted + $nonPrintableBytes = array_merge( + range(0x00, 0x08), range(0x10, 0x19), array(0x7F) + ); + + foreach ($nonPrintableBytes as $byte) { + $char = pack('C', $byte); + $encodedChar = sprintf('=%02X', $byte); + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($char, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn($encodedChar); + + $header = $this->_getHeader('X-A', $encoder); + $header->setValue($char); + + $this->assertEquals( + 'X-A: =?'.$this->_charset.'?Q?'.$encodedChar.'?='."\r\n", + $header->toString(), '%s: Non-printable ascii should be encoded' + ); + } + } + + public function testEncodedWordsAreUsedToEncode8BitOctets() + { + $_8BitBytes = range(0x80, 0xFF); + + foreach ($_8BitBytes as $byte) { + $char = pack('C', $byte); + $encodedChar = sprintf('=%02X', $byte); + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($char, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn($encodedChar); + + $header = $this->_getHeader('X-A', $encoder); + $header->setValue($char); + + $this->assertEquals( + 'X-A: =?'.$this->_charset.'?Q?'.$encodedChar.'?='."\r\n", + $header->toString(), '%s: 8-bit octets should be encoded' + ); + } + } + + public function testEncodedWordsAreNoMoreThan75CharsPerLine() + { + /* -- RFC 2047, 2. + An 'encoded-word' may not be more than 75 characters long, including + 'charset', 'encoding', 'encoded-text', and delimiters. + + ... SNIP ... + + While there is no limit to the length of a multiple-line header + field, each line of a header field that contains one or more + 'encoded-word's is limited to 76 characters. + */ + + $nonAsciiChar = pack('C', 0x8F); + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($nonAsciiChar, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('=8F'); + //Note that multi-line headers begin with LWSP which makes 75 + 1 = 76 + //Note also that =?utf-8?q??= is 12 chars which makes 75 - 12 = 63 + + //* X-Test: is 8 chars + $header = $this->_getHeader('X-Test', $encoder); + $header->setValue($nonAsciiChar); + + $this->assertEquals( + 'X-Test: =?'.$this->_charset.'?Q?=8F?='."\r\n", + $header->toString() + ); + } + + public function testFWSPIsUsedWhenEncoderReturnsMultipleLines() + { + /* --RFC 2047, 2. + If it is desirable to encode more text than will fit in an 'encoded-word' of + 75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may + be used. + */ + + //Note the Mock does NOT return 8F encoded, the 8F merely triggers + // encoding for the sake of testing + $nonAsciiChar = pack('C', 0x8F); + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($nonAsciiChar, 8, 63, \Mockery::any()) + ->andReturn('line_one_here'."\r\n".'line_two_here'); + + //Note that multi-line headers begin with LWSP which makes 75 + 1 = 76 + //Note also that =?utf-8?q??= is 12 chars which makes 75 - 12 = 63 + + //* X-Test: is 8 chars + $header = $this->_getHeader('X-Test', $encoder); + $header->setValue($nonAsciiChar); + + $this->assertEquals( + 'X-Test: =?'.$this->_charset.'?Q?line_one_here?='."\r\n". + ' =?'.$this->_charset.'?Q?line_two_here?='."\r\n", + $header->toString() + ); + } + + public function testAdjacentWordsAreEncodedTogether() + { + /* -- RFC 2047, 5 (1) + Ordinary ASCII text and 'encoded-word's may appear together in the + same header field. However, an 'encoded-word' that appears in a + header field defined as '*text' MUST be separated from any adjacent + 'encoded-word' or 'text' by 'linear-white-space'. + + -- RFC 2047, 2. + IMPORTANT: 'encoded-word's are designed to be recognized as 'atom's + by an RFC 822 parser. As a consequence, unencoded white space + characters (such as SPACE and HTAB) are FORBIDDEN within an + 'encoded-word'. + */ + + //It would be valid to encode all words needed, however it's probably + // easiest to encode the longest amount required at a time + + $word = 'w'.pack('C', 0x8F).'rd'; + $text = 'start '.$word.' '.$word.' then end '.$word; + // 'start', ' word word', ' and end', ' word' + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($word.' '.$word, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('w=8Frd_w=8Frd'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($word, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('w=8Frd'); + + $header = $this->_getHeader('X-Test', $encoder); + $header->setValue($text); + + $headerString = $header->toString(); + + $this->assertEquals('X-Test: start =?'.$this->_charset.'?Q?'. + 'w=8Frd_w=8Frd?= then end =?'.$this->_charset.'?Q?'. + 'w=8Frd?='."\r\n", $headerString, + '%s: Adjacent encoded words should appear grouped with WSP encoded' + ); + } + + public function testLanguageInformationAppearsInEncodedWords() + { + /* -- RFC 2231, 5. + 5. Language specification in Encoded Words + + RFC 2047 provides support for non-US-ASCII character sets in RFC 822 + message header comments, phrases, and any unstructured text field. + This is done by defining an encoded word construct which can appear + in any of these places. Given that these are fields intended for + display, it is sometimes necessary to associate language information + with encoded words as well as just the character set. This + specification extends the definition of an encoded word to allow the + inclusion of such information. This is simply done by suffixing the + character set specification with an asterisk followed by the language + tag. For example: + + From: =?US-ASCII*EN?Q?Keith_Moore?= + */ + + $value = 'fo'.pack('C', 0x8F).'bar'; + + $encoder = $this->_getEncoder('Q'); + $encoder->shouldReceive('encodeString') + ->once() + ->with($value, \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn('fo=8Fbar'); + + $header = $this->_getHeader('Subject', $encoder); + $header->setLanguage('en'); + $header->setValue($value); + $this->assertEquals("Subject: =?utf-8*en?Q?fo=8Fbar?=\r\n", + $header->toString() + ); + } + + public function testSetBodyModel() + { + $header = $this->_getHeader('Subject', $this->_getEncoder('Q', true)); + $header->setFieldBodyModel('test'); + $this->assertEquals('test', $header->getValue()); + } + + public function testGetBodyModel() + { + $header = $this->_getHeader('Subject', $this->_getEncoder('Q', true)); + $header->setValue('test'); + $this->assertEquals('test', $header->getFieldBodyModel()); + } + + private function _getHeader($name, $encoder) + { + $header = new Swift_Mime_Headers_UnstructuredHeader($name, $encoder, new Swift_Mime_Grammar()); + $header->setCharset($this->_charset); + + return $header; + } + + private function _getEncoder($type, $stub = false) + { + $encoder = $this->getMockery('Swift_Mime_HeaderEncoder')->shouldIgnoreMissing(); + $encoder->shouldReceive('getName') + ->zeroOrMoreTimes() + ->andReturn($type); + + return $encoder; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/MimePartTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/MimePartTest.php new file mode 100644 index 0000000..af69088 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/MimePartTest.php @@ -0,0 +1,233 @@ +_createMimePart($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals( + Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE, $part->getNestingLevel() + ); + } + + public function testCharsetIsReturnedFromHeader() + { + /* -- RFC 2046, 4.1.2. + A critical parameter that may be specified in the Content-Type field + for "text/plain" data is the character set. This is specified with a + "charset" parameter, as in: + + Content-type: text/plain; charset=iso-8859-1 + + Unlike some other parameter values, the values of the charset + parameter are NOT case sensitive. The default character set, which + must be assumed in the absence of a charset parameter, is US-ASCII. + */ + + $cType = $this->_createHeader('Content-Type', 'text/plain', + array('charset' => 'iso-8859-1') + ); + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('iso-8859-1', $part->getCharset()); + } + + public function testCharsetIsSetInHeader() + { + $cType = $this->_createHeader('Content-Type', 'text/plain', + array('charset' => 'iso-8859-1'), false + ); + $cType->shouldReceive('setParameter')->once()->with('charset', 'utf-8'); + + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $part->setCharset('utf-8'); + } + + public function testCharsetIsSetInHeaderIfPassedToSetBody() + { + $cType = $this->_createHeader('Content-Type', 'text/plain', + array('charset' => 'iso-8859-1'), false + ); + $cType->shouldReceive('setParameter')->once()->with('charset', 'utf-8'); + + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $part->setBody('', 'text/plian', 'utf-8'); + } + + public function testSettingCharsetNotifiesEncoder() + { + $encoder = $this->_createEncoder('quoted-printable', false); + $encoder->expects($this->once()) + ->method('charsetChanged') + ->with('utf-8'); + + $part = $this->_createMimePart($this->_createHeaderSet(), + $encoder, $this->_createCache() + ); + $part->setCharset('utf-8'); + } + + public function testSettingCharsetNotifiesHeaders() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('charsetChanged') + ->zeroOrMoreTimes() + ->with('utf-8'); + + $part = $this->_createMimePart($headers, $this->_createEncoder(), + $this->_createCache() + ); + $part->setCharset('utf-8'); + } + + public function testSettingCharsetNotifiesChildren() + { + $child = $this->_createChild(0, '', false); + $child->shouldReceive('charsetChanged') + ->once() + ->with('windows-874'); + + $part = $this->_createMimePart($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $part->setChildren(array($child)); + $part->setCharset('windows-874'); + } + + public function testCharsetChangeUpdatesCharset() + { + $cType = $this->_createHeader('Content-Type', 'text/plain', + array('charset' => 'iso-8859-1'), false + ); + $cType->shouldReceive('setParameter')->once()->with('charset', 'utf-8'); + + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $part->charsetChanged('utf-8'); + } + + public function testSettingCharsetClearsCache() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn("Content-Type: text/plain; charset=utf-8\r\n"); + + $cache = $this->_createCache(false); + + $entity = $this->_createEntity($headers, $this->_createEncoder(), + $cache + ); + + $entity->setBody("blah\r\nblah!"); + $entity->toString(); + + // Initialize the expectation here because we only care about what happens in setCharset() + $cache->shouldReceive('clearKey') + ->once() + ->with(\Mockery::any(), 'body'); + + $entity->setCharset('iso-2022'); + } + + public function testFormatIsReturnedFromHeader() + { + /* -- RFC 3676. + */ + + $cType = $this->_createHeader('Content-Type', 'text/plain', + array('format' => 'flowed') + ); + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('flowed', $part->getFormat()); + } + + public function testFormatIsSetInHeader() + { + $cType = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $cType->shouldReceive('setParameter')->once()->with('format', 'fixed'); + + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $part->setFormat('fixed'); + } + + public function testDelSpIsReturnedFromHeader() + { + /* -- RFC 3676. + */ + + $cType = $this->_createHeader('Content-Type', 'text/plain', + array('delsp' => 'no') + ); + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertSame(false, $part->getDelSp()); + } + + public function testDelSpIsSetInHeader() + { + $cType = $this->_createHeader('Content-Type', 'text/plain', array(), false); + $cType->shouldReceive('setParameter')->once()->with('delsp', 'yes'); + + $part = $this->_createMimePart($this->_createHeaderSet(array( + 'Content-Type' => $cType, )), + $this->_createEncoder(), $this->_createCache() + ); + $part->setDelSp(true); + } + + public function testFluidInterface() + { + $part = $this->_createMimePart($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + + $this->assertSame($part, + $part + ->setContentType('text/plain') + ->setEncoder($this->_createEncoder()) + ->setId('foo@bar') + ->setDescription('my description') + ->setMaxLineLength(998) + ->setBody('xx') + ->setBoundary('xyz') + ->setChildren(array()) + ->setCharset('utf-8') + ->setFormat('flowed') + ->setDelSp(true) + ); + } + + // -- Private helpers + + //abstract + protected function _createEntity($headers, $encoder, $cache) + { + return $this->_createMimePart($headers, $encoder, $cache); + } + + protected function _createMimePart($headers, $encoder, $cache) + { + return new Swift_Mime_MimePart($headers, $encoder, $cache, new Swift_Mime_Grammar()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderFactoryTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderFactoryTest.php new file mode 100644 index 0000000..0d5573f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderFactoryTest.php @@ -0,0 +1,168 @@ +_factory = $this->_createFactory(); + } + + public function testMailboxHeaderIsCorrectType() + { + $header = $this->_factory->createMailboxHeader('X-Foo'); + $this->assertInstanceof('Swift_Mime_Headers_MailboxHeader', $header); + } + + public function testMailboxHeaderHasCorrectName() + { + $header = $this->_factory->createMailboxHeader('X-Foo'); + $this->assertEquals('X-Foo', $header->getFieldName()); + } + + public function testMailboxHeaderHasCorrectModel() + { + $header = $this->_factory->createMailboxHeader('X-Foo', + array('foo@bar' => 'FooBar') + ); + $this->assertEquals(array('foo@bar' => 'FooBar'), $header->getFieldBodyModel()); + } + + public function testDateHeaderHasCorrectType() + { + $header = $this->_factory->createDateHeader('X-Date'); + $this->assertInstanceof('Swift_Mime_Headers_DateHeader', $header); + } + + public function testDateHeaderHasCorrectName() + { + $header = $this->_factory->createDateHeader('X-Date'); + $this->assertEquals('X-Date', $header->getFieldName()); + } + + public function testDateHeaderHasCorrectModel() + { + $header = $this->_factory->createDateHeader('X-Date', 123); + $this->assertEquals(123, $header->getFieldBodyModel()); + } + + public function testTextHeaderHasCorrectType() + { + $header = $this->_factory->createTextHeader('X-Foo'); + $this->assertInstanceof('Swift_Mime_Headers_UnstructuredHeader', $header); + } + + public function testTextHeaderHasCorrectName() + { + $header = $this->_factory->createTextHeader('X-Foo'); + $this->assertEquals('X-Foo', $header->getFieldName()); + } + + public function testTextHeaderHasCorrectModel() + { + $header = $this->_factory->createTextHeader('X-Foo', 'bar'); + $this->assertEquals('bar', $header->getFieldBodyModel()); + } + + public function testParameterizedHeaderHasCorrectType() + { + $header = $this->_factory->createParameterizedHeader('X-Foo'); + $this->assertInstanceof('Swift_Mime_Headers_ParameterizedHeader', $header); + } + + public function testParameterizedHeaderHasCorrectName() + { + $header = $this->_factory->createParameterizedHeader('X-Foo'); + $this->assertEquals('X-Foo', $header->getFieldName()); + } + + public function testParameterizedHeaderHasCorrectModel() + { + $header = $this->_factory->createParameterizedHeader('X-Foo', 'bar'); + $this->assertEquals('bar', $header->getFieldBodyModel()); + } + + public function testParameterizedHeaderHasCorrectParams() + { + $header = $this->_factory->createParameterizedHeader('X-Foo', 'bar', + array('zip' => 'button') + ); + $this->assertEquals(array('zip' => 'button'), $header->getParameters()); + } + + public function testIdHeaderHasCorrectType() + { + $header = $this->_factory->createIdHeader('X-ID'); + $this->assertInstanceof('Swift_Mime_Headers_IdentificationHeader', $header); + } + + public function testIdHeaderHasCorrectName() + { + $header = $this->_factory->createIdHeader('X-ID'); + $this->assertEquals('X-ID', $header->getFieldName()); + } + + public function testIdHeaderHasCorrectModel() + { + $header = $this->_factory->createIdHeader('X-ID', 'xyz@abc'); + $this->assertEquals(array('xyz@abc'), $header->getFieldBodyModel()); + } + + public function testPathHeaderHasCorrectType() + { + $header = $this->_factory->createPathHeader('X-Path'); + $this->assertInstanceof('Swift_Mime_Headers_PathHeader', $header); + } + + public function testPathHeaderHasCorrectName() + { + $header = $this->_factory->createPathHeader('X-Path'); + $this->assertEquals('X-Path', $header->getFieldName()); + } + + public function testPathHeaderHasCorrectModel() + { + $header = $this->_factory->createPathHeader('X-Path', 'foo@bar'); + $this->assertEquals('foo@bar', $header->getFieldBodyModel()); + } + + public function testCharsetChangeNotificationNotifiesEncoders() + { + $encoder = $this->_createHeaderEncoder(); + $encoder->expects($this->once()) + ->method('charsetChanged') + ->with('utf-8'); + $paramEncoder = $this->_createParamEncoder(); + $paramEncoder->expects($this->once()) + ->method('charsetChanged') + ->with('utf-8'); + + $factory = $this->_createFactory($encoder, $paramEncoder); + + $factory->charsetChanged('utf-8'); + } + + // -- Creation methods + + private function _createFactory($encoder = null, $paramEncoder = null) + { + return new Swift_Mime_SimpleHeaderFactory( + $encoder + ? $encoder : $this->_createHeaderEncoder(), + $paramEncoder + ? $paramEncoder : $this->_createParamEncoder(), + new Swift_Mime_Grammar() + ); + } + + private function _createHeaderEncoder() + { + return $this->getMock('Swift_Mime_HeaderEncoder'); + } + + private function _createParamEncoder() + { + return $this->getMock('Swift_Encoder'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderSetTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderSetTest.php new file mode 100644 index 0000000..a781a08 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderSetTest.php @@ -0,0 +1,734 @@ +_createFactory(); + $factory->expects($this->once()) + ->method('createMailboxHeader') + ->with('From', array('person@domain' => 'Person')) + ->will($this->returnValue($this->_createHeader('From'))); + + $set = $this->_createSet($factory); + $set->addMailboxHeader('From', array('person@domain' => 'Person')); + } + + public function testAddDateHeaderDelegatesToFactory() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createDateHeader') + ->with('Date', 1234) + ->will($this->returnValue($this->_createHeader('Date'))); + + $set = $this->_createSet($factory); + $set->addDateHeader('Date', 1234); + } + + public function testAddTextHeaderDelegatesToFactory() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createTextHeader') + ->with('Subject', 'some text') + ->will($this->returnValue($this->_createHeader('Subject'))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Subject', 'some text'); + } + + public function testAddParameterizedHeaderDelegatesToFactory() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createParameterizedHeader') + ->with('Content-Type', 'text/plain', array('charset' => 'utf-8')) + ->will($this->returnValue($this->_createHeader('Content-Type'))); + + $set = $this->_createSet($factory); + $set->addParameterizedHeader('Content-Type', 'text/plain', + array('charset' => 'utf-8') + ); + } + + public function testAddIdHeaderDelegatesToFactory() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($this->_createHeader('Message-ID'))); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + } + + public function testAddPathHeaderDelegatesToFactory() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createPathHeader') + ->with('Return-Path', 'some@path') + ->will($this->returnValue($this->_createHeader('Return-Path'))); + + $set = $this->_createSet($factory); + $set->addPathHeader('Return-Path', 'some@path'); + } + + public function testHasReturnsFalseWhenNoHeaders() + { + $set = $this->_createSet($this->_createFactory()); + $this->assertFalse($set->has('Some-Header')); + } + + public function testAddedMailboxHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createMailboxHeader') + ->with('From', array('person@domain' => 'Person')) + ->will($this->returnValue($this->_createHeader('From'))); + + $set = $this->_createSet($factory); + $set->addMailboxHeader('From', array('person@domain' => 'Person')); + $this->assertTrue($set->has('From')); + } + + public function testAddedDateHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createDateHeader') + ->with('Date', 1234) + ->will($this->returnValue($this->_createHeader('Date'))); + + $set = $this->_createSet($factory); + $set->addDateHeader('Date', 1234); + $this->assertTrue($set->has('Date')); + } + + public function testAddedTextHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createTextHeader') + ->with('Subject', 'some text') + ->will($this->returnValue($this->_createHeader('Subject'))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Subject', 'some text'); + $this->assertTrue($set->has('Subject')); + } + + public function testAddedParameterizedHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createParameterizedHeader') + ->with('Content-Type', 'text/plain', array('charset' => 'utf-8')) + ->will($this->returnValue($this->_createHeader('Content-Type'))); + + $set = $this->_createSet($factory); + $set->addParameterizedHeader('Content-Type', 'text/plain', + array('charset' => 'utf-8') + ); + $this->assertTrue($set->has('Content-Type')); + } + + public function testAddedIdHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($this->_createHeader('Message-ID'))); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertTrue($set->has('Message-ID')); + } + + public function testAddedPathHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createPathHeader') + ->with('Return-Path', 'some@path') + ->will($this->returnValue($this->_createHeader('Return-Path'))); + + $set = $this->_createSet($factory); + $set->addPathHeader('Return-Path', 'some@path'); + $this->assertTrue($set->has('Return-Path')); + } + + public function testNewlySetHeaderIsSeenByHas() + { + $factory = $this->_createFactory(); + $header = $this->_createHeader('X-Foo', 'bar'); + $set = $this->_createSet($factory); + $set->set($header); + $this->assertTrue($set->has('X-Foo')); + } + + public function testHasCanAcceptOffset() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($this->_createHeader('Message-ID'))); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertTrue($set->has('Message-ID', 0)); + } + + public function testHasWithIllegalOffsetReturnsFalse() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($this->_createHeader('Message-ID'))); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertFalse($set->has('Message-ID', 1)); + } + + public function testHasCanDistinguishMultipleHeaders() + { + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($this->_createHeader('Message-ID'))); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Message-ID', 'other@id') + ->will($this->returnValue($this->_createHeader('Message-ID'))); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Message-ID', 'other@id'); + $this->assertTrue($set->has('Message-ID', 1)); + } + + public function testGetWithUnspecifiedOffset() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertSame($header, $set->get('Message-ID')); + } + + public function testGetWithSpeiciedOffset() + { + $header0 = $this->_createHeader('Message-ID'); + $header1 = $this->_createHeader('Message-ID'); + $header2 = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header0)); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Message-ID', 'other@id') + ->will($this->returnValue($header1)); + $factory->expects($this->at(2)) + ->method('createIdHeader') + ->with('Message-ID', 'more@id') + ->will($this->returnValue($header2)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Message-ID', 'other@id'); + $set->addIdHeader('Message-ID', 'more@id'); + $this->assertSame($header1, $set->get('Message-ID', 1)); + } + + public function testGetReturnsNullIfHeaderNotSet() + { + $set = $this->_createSet($this->_createFactory()); + $this->assertNull($set->get('Message-ID', 99)); + } + + public function testGetAllReturnsAllHeadersMatchingName() + { + $header0 = $this->_createHeader('Message-ID'); + $header1 = $this->_createHeader('Message-ID'); + $header2 = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header0)); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Message-ID', 'other@id') + ->will($this->returnValue($header1)); + $factory->expects($this->at(2)) + ->method('createIdHeader') + ->with('Message-ID', 'more@id') + ->will($this->returnValue($header2)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Message-ID', 'other@id'); + $set->addIdHeader('Message-ID', 'more@id'); + + $this->assertEquals(array($header0, $header1, $header2), + $set->getAll('Message-ID') + ); + } + + public function testGetAllReturnsAllHeadersIfNoArguments() + { + $header0 = $this->_createHeader('Message-ID'); + $header1 = $this->_createHeader('Subject'); + $header2 = $this->_createHeader('To'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header0)); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Subject', 'thing') + ->will($this->returnValue($header1)); + $factory->expects($this->at(2)) + ->method('createIdHeader') + ->with('To', 'person@example.org') + ->will($this->returnValue($header2)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Subject', 'thing'); + $set->addIdHeader('To', 'person@example.org'); + + $this->assertEquals(array($header0, $header1, $header2), + $set->getAll() + ); + } + + public function testGetAllReturnsEmptyArrayIfNoneSet() + { + $set = $this->_createSet($this->_createFactory()); + $this->assertEquals(array(), $set->getAll('Received')); + } + + public function testRemoveWithUnspecifiedOffset() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->remove('Message-ID'); + $this->assertFalse($set->has('Message-ID')); + } + + public function testRemoveWithSpecifiedIndexRemovesHeader() + { + $header0 = $this->_createHeader('Message-ID'); + $header1 = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header0)); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Message-ID', 'other@id') + ->will($this->returnValue($header1)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Message-ID', 'other@id'); + $set->remove('Message-ID', 1); + $this->assertFalse($set->has('Message-ID', 1)); + } + + public function testRemoveWithSpecifiedIndexLeavesOtherHeaders() + { + $header0 = $this->_createHeader('Message-ID'); + $header1 = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header0)); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Message-ID', 'other@id') + ->will($this->returnValue($header1)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Message-ID', 'other@id'); + $set->remove('Message-ID', 1); + $this->assertTrue($set->has('Message-ID', 0)); + } + + public function testRemoveWithInvalidOffsetDoesNothing() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->remove('Message-ID', 50); + $this->assertTrue($set->has('Message-ID')); + } + + public function testRemoveAllRemovesAllHeadersWithName() + { + $header0 = $this->_createHeader('Message-ID'); + $header1 = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header0)); + $factory->expects($this->at(1)) + ->method('createIdHeader') + ->with('Message-ID', 'other@id') + ->will($this->returnValue($header1)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->addIdHeader('Message-ID', 'other@id'); + $set->removeAll('Message-ID'); + $this->assertFalse($set->has('Message-ID', 0)); + $this->assertFalse($set->has('Message-ID', 1)); + } + + public function testHasIsNotCaseSensitive() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertTrue($set->has('message-id')); + } + + public function testGetIsNotCaseSensitive() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertSame($header, $set->get('message-id')); + } + + public function testGetAllIsNotCaseSensitive() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $this->assertEquals(array($header), $set->getAll('message-id')); + } + + public function testRemoveIsNotCaseSensitive() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->remove('message-id'); + $this->assertFalse($set->has('Message-ID')); + } + + public function testRemoveAllIsNotCaseSensitive() + { + $header = $this->_createHeader('Message-ID'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createIdHeader') + ->with('Message-ID', 'some@id') + ->will($this->returnValue($header)); + + $set = $this->_createSet($factory); + $set->addIdHeader('Message-ID', 'some@id'); + $set->removeAll('message-id'); + $this->assertFalse($set->has('Message-ID')); + } + + public function testNewInstance() + { + $set = $this->_createSet($this->_createFactory()); + $instance = $set->newInstance(); + $this->assertInstanceof('Swift_Mime_HeaderSet', $instance); + } + + public function testToStringJoinsHeadersTogether() + { + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Foo', 'bar') + ->will($this->returnValue($this->_createHeader('Foo', 'bar'))); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('Zip', 'buttons') + ->will($this->returnValue($this->_createHeader('Zip', 'buttons'))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Foo', 'bar'); + $set->addTextHeader('Zip', 'buttons'); + $this->assertEquals( + "Foo: bar\r\n". + "Zip: buttons\r\n", + $set->toString() + ); + } + + public function testHeadersWithoutBodiesAreNotDisplayed() + { + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Foo', 'bar') + ->will($this->returnValue($this->_createHeader('Foo', 'bar'))); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('Zip', '') + ->will($this->returnValue($this->_createHeader('Zip', ''))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Foo', 'bar'); + $set->addTextHeader('Zip', ''); + $this->assertEquals( + "Foo: bar\r\n", + $set->toString() + ); + } + + public function testHeadersWithoutBodiesCanBeForcedToDisplay() + { + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Foo', '') + ->will($this->returnValue($this->_createHeader('Foo', ''))); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('Zip', '') + ->will($this->returnValue($this->_createHeader('Zip', ''))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Foo', ''); + $set->addTextHeader('Zip', ''); + $set->setAlwaysDisplayed(array('Foo', 'Zip')); + $this->assertEquals( + "Foo: \r\n". + "Zip: \r\n", + $set->toString() + ); + } + + public function testHeaderSequencesCanBeSpecified() + { + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Third', 'three') + ->will($this->returnValue($this->_createHeader('Third', 'three'))); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('First', 'one') + ->will($this->returnValue($this->_createHeader('First', 'one'))); + $factory->expects($this->at(2)) + ->method('createTextHeader') + ->with('Second', 'two') + ->will($this->returnValue($this->_createHeader('Second', 'two'))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Third', 'three'); + $set->addTextHeader('First', 'one'); + $set->addTextHeader('Second', 'two'); + + $set->defineOrdering(array('First', 'Second', 'Third')); + + $this->assertEquals( + "First: one\r\n". + "Second: two\r\n". + "Third: three\r\n", + $set->toString() + ); + } + + public function testUnsortedHeadersAppearAtEnd() + { + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Fourth', 'four') + ->will($this->returnValue($this->_createHeader('Fourth', 'four'))); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('Fifth', 'five') + ->will($this->returnValue($this->_createHeader('Fifth', 'five'))); + $factory->expects($this->at(2)) + ->method('createTextHeader') + ->with('Third', 'three') + ->will($this->returnValue($this->_createHeader('Third', 'three'))); + $factory->expects($this->at(3)) + ->method('createTextHeader') + ->with('First', 'one') + ->will($this->returnValue($this->_createHeader('First', 'one'))); + $factory->expects($this->at(4)) + ->method('createTextHeader') + ->with('Second', 'two') + ->will($this->returnValue($this->_createHeader('Second', 'two'))); + + $set = $this->_createSet($factory); + $set->addTextHeader('Fourth', 'four'); + $set->addTextHeader('Fifth', 'five'); + $set->addTextHeader('Third', 'three'); + $set->addTextHeader('First', 'one'); + $set->addTextHeader('Second', 'two'); + + $set->defineOrdering(array('First', 'Second', 'Third')); + + $this->assertEquals( + "First: one\r\n". + "Second: two\r\n". + "Third: three\r\n". + "Fourth: four\r\n". + "Fifth: five\r\n", + $set->toString() + ); + } + + public function testSettingCharsetNotifiesAlreadyExistingHeaders() + { + $subject = $this->_createHeader('Subject', 'some text'); + $xHeader = $this->_createHeader('X-Header', 'some text'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Subject', 'some text') + ->will($this->returnValue($subject)); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('X-Header', 'some text') + ->will($this->returnValue($xHeader)); + $subject->expects($this->once()) + ->method('setCharset') + ->with('utf-8'); + $xHeader->expects($this->once()) + ->method('setCharset') + ->with('utf-8'); + + $set = $this->_createSet($factory); + $set->addTextHeader('Subject', 'some text'); + $set->addTextHeader('X-Header', 'some text'); + + $set->setCharset('utf-8'); + } + + public function testCharsetChangeNotifiesAlreadyExistingHeaders() + { + $subject = $this->_createHeader('Subject', 'some text'); + $xHeader = $this->_createHeader('X-Header', 'some text'); + $factory = $this->_createFactory(); + $factory->expects($this->at(0)) + ->method('createTextHeader') + ->with('Subject', 'some text') + ->will($this->returnValue($subject)); + $factory->expects($this->at(1)) + ->method('createTextHeader') + ->with('X-Header', 'some text') + ->will($this->returnValue($xHeader)); + $subject->expects($this->once()) + ->method('setCharset') + ->with('utf-8'); + $xHeader->expects($this->once()) + ->method('setCharset') + ->with('utf-8'); + + $set = $this->_createSet($factory); + $set->addTextHeader('Subject', 'some text'); + $set->addTextHeader('X-Header', 'some text'); + + $set->charsetChanged('utf-8'); + } + + public function testCharsetChangeNotifiesFactory() + { + $factory = $this->_createFactory(); + $factory->expects($this->once()) + ->method('charsetChanged') + ->with('utf-8'); + + $set = $this->_createSet($factory); + + $set->setCharset('utf-8'); + } + + // -- Creation methods + + private function _createSet($factory) + { + return new Swift_Mime_SimpleHeaderSet($factory); + } + + private function _createFactory() + { + return $this->getMock('Swift_Mime_HeaderFactory'); + } + + private function _createHeader($name, $body = '') + { + $header = $this->getMock('Swift_Mime_Header'); + $header->expects($this->any()) + ->method('getFieldName') + ->will($this->returnValue($name)); + $header->expects($this->any()) + ->method('toString') + ->will($this->returnValue(sprintf("%s: %s\r\n", $name, $body))); + $header->expects($this->any()) + ->method('getFieldBody') + ->will($this->returnValue($body)); + + return $header; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMessageTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMessageTest.php new file mode 100644 index 0000000..a2cbbca --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMessageTest.php @@ -0,0 +1,829 @@ +_createMessage($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals( + Swift_Mime_MimeEntity::LEVEL_TOP, $message->getNestingLevel() + ); + } + + public function testDateIsReturnedFromHeader() + { + $date = $this->_createHeader('Date', 123); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Date' => $date)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(123, $message->getDate()); + } + + public function testDateIsSetInHeader() + { + $date = $this->_createHeader('Date', 123, array(), false); + $date->shouldReceive('setFieldBodyModel') + ->once() + ->with(1234); + $date->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Date' => $date)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setDate(1234); + } + + public function testDateHeaderIsCreatedIfNonePresent() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addDateHeader') + ->once() + ->with('Date', 1234); + $headers->shouldReceive('addDateHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setDate(1234); + } + + public function testDateHeaderIsAddedDuringConstruction() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addDateHeader') + ->once() + ->with('Date', '/^[0-9]+$/D'); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + } + + public function testIdIsReturnedFromHeader() + { + /* -- RFC 2045, 7. + In constructing a high-level user agent, it may be desirable to allow + one body to make reference to another. Accordingly, bodies may be + labelled using the "Content-ID" header field, which is syntactically + identical to the "Message-ID" header field + */ + + $messageId = $this->_createHeader('Message-ID', 'a@b'); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Message-ID' => $messageId)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('a@b', $message->getId()); + } + + public function testIdIsSetInHeader() + { + $messageId = $this->_createHeader('Message-ID', 'a@b', array(), false); + $messageId->shouldReceive('setFieldBodyModel') + ->once() + ->with('x@y'); + $messageId->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Message-ID' => $messageId)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setId('x@y'); + } + + public function testIdIsAutoGenerated() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addIdHeader') + ->once() + ->with('Message-ID', '/^.*?@.*?$/D'); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + } + + public function testSubjectIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.5. + */ + + $subject = $this->_createHeader('Subject', 'example subject'); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Subject' => $subject)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('example subject', $message->getSubject()); + } + + public function testSubjectIsSetInHeader() + { + $subject = $this->_createHeader('Subject', '', array(), false); + $subject->shouldReceive('setFieldBodyModel') + ->once() + ->with('foo'); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Subject' => $subject)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setSubject('foo'); + } + + public function testSubjectHeaderIsCreatedIfNotPresent() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addTextHeader') + ->once() + ->with('Subject', 'example subject'); + $headers->shouldReceive('addTextHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setSubject('example subject'); + } + + public function testReturnPathIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.7. + */ + + $path = $this->_createHeader('Return-Path', 'bounces@domain'); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Return-Path' => $path)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals('bounces@domain', $message->getReturnPath()); + } + + public function testReturnPathIsSetInHeader() + { + $path = $this->_createHeader('Return-Path', '', array(), false); + $path->shouldReceive('setFieldBodyModel') + ->once() + ->with('bounces@domain'); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Return-Path' => $path)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setReturnPath('bounces@domain'); + } + + public function testReturnPathHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addPathHeader') + ->once() + ->with('Return-Path', 'bounces@domain'); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setReturnPath('bounces@domain'); + } + + public function testSenderIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.2. + */ + + $sender = $this->_createHeader('Sender', array('sender@domain' => 'Name')); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Sender' => $sender)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('sender@domain' => 'Name'), $message->getSender()); + } + + public function testSenderIsSetInHeader() + { + $sender = $this->_createHeader('Sender', array('sender@domain' => 'Name'), + array(), false + ); + $sender->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Sender' => $sender)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setSender(array('other@domain' => 'Other')); + } + + public function testSenderHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Sender', (array) 'sender@domain'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setSender('sender@domain'); + } + + public function testNameCanBeUsedInSenderHeader() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Sender', array('sender@domain' => 'Name')); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setSender('sender@domain', 'Name'); + } + + public function testFromIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.2. + */ + + $from = $this->_createHeader('From', array('from@domain' => 'Name')); + $message = $this->_createMessage( + $this->_createHeaderSet(array('From' => $from)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('from@domain' => 'Name'), $message->getFrom()); + } + + public function testFromIsSetInHeader() + { + $from = $this->_createHeader('From', array('from@domain' => 'Name'), + array(), false + ); + $from->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('From' => $from)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setFrom(array('other@domain' => 'Other')); + } + + public function testFromIsAddedToHeadersDuringAddFrom() + { + $from = $this->_createHeader('From', array('from@domain' => 'Name'), + array(), false + ); + $from->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('from@domain' => 'Name', 'other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('From' => $from)), + $this->_createEncoder(), $this->_createCache() + ); + $message->addFrom('other@domain', 'Other'); + } + + public function testFromHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('From', (array) 'from@domain'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setFrom('from@domain'); + } + + public function testPersonalNameCanBeUsedInFromAddress() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('From', array('from@domain' => 'Name')); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setFrom('from@domain', 'Name'); + } + + public function testReplyToIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.2. + */ + + $reply = $this->_createHeader('Reply-To', array('reply@domain' => 'Name')); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Reply-To' => $reply)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('reply@domain' => 'Name'), $message->getReplyTo()); + } + + public function testReplyToIsSetInHeader() + { + $reply = $this->_createHeader('Reply-To', array('reply@domain' => 'Name'), + array(), false + ); + $reply->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Reply-To' => $reply)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setReplyTo(array('other@domain' => 'Other')); + } + + public function testReplyToIsAddedToHeadersDuringAddReplyTo() + { + $replyTo = $this->_createHeader('Reply-To', array('from@domain' => 'Name'), + array(), false + ); + $replyTo->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('from@domain' => 'Name', 'other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Reply-To' => $replyTo)), + $this->_createEncoder(), $this->_createCache() + ); + $message->addReplyTo('other@domain', 'Other'); + } + + public function testReplyToHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Reply-To', (array) 'reply@domain'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setReplyTo('reply@domain'); + } + + public function testNameCanBeUsedInReplyTo() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Reply-To', array('reply@domain' => 'Name')); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setReplyTo('reply@domain', 'Name'); + } + + public function testToIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.3. + */ + + $to = $this->_createHeader('To', array('to@domain' => 'Name')); + $message = $this->_createMessage( + $this->_createHeaderSet(array('To' => $to)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('to@domain' => 'Name'), $message->getTo()); + } + + public function testToIsSetInHeader() + { + $to = $this->_createHeader('To', array('to@domain' => 'Name'), + array(), false + ); + $to->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('To' => $to)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setTo(array('other@domain' => 'Other')); + } + + public function testToIsAddedToHeadersDuringAddTo() + { + $to = $this->_createHeader('To', array('from@domain' => 'Name'), + array(), false + ); + $to->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('from@domain' => 'Name', 'other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('To' => $to)), + $this->_createEncoder(), $this->_createCache() + ); + $message->addTo('other@domain', 'Other'); + } + + public function testToHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('To', (array) 'to@domain'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setTo('to@domain'); + } + + public function testNameCanBeUsedInToHeader() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('To', array('to@domain' => 'Name')); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setTo('to@domain', 'Name'); + } + + public function testCcIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.3. + */ + + $cc = $this->_createHeader('Cc', array('cc@domain' => 'Name')); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Cc' => $cc)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('cc@domain' => 'Name'), $message->getCc()); + } + + public function testCcIsSetInHeader() + { + $cc = $this->_createHeader('Cc', array('cc@domain' => 'Name'), + array(), false + ); + $cc->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Cc' => $cc)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setCc(array('other@domain' => 'Other')); + } + + public function testCcIsAddedToHeadersDuringAddCc() + { + $cc = $this->_createHeader('Cc', array('from@domain' => 'Name'), + array(), false + ); + $cc->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('from@domain' => 'Name', 'other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Cc' => $cc)), + $this->_createEncoder(), $this->_createCache() + ); + $message->addCc('other@domain', 'Other'); + } + + public function testCcHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Cc', (array) 'cc@domain'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setCc('cc@domain'); + } + + public function testNameCanBeUsedInCcHeader() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Cc', array('cc@domain' => 'Name')); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setCc('cc@domain', 'Name'); + } + + public function testBccIsReturnedFromHeader() + { + /* -- RFC 2822, 3.6.3. + */ + + $bcc = $this->_createHeader('Bcc', array('bcc@domain' => 'Name')); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Bcc' => $bcc)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('bcc@domain' => 'Name'), $message->getBcc()); + } + + public function testBccIsSetInHeader() + { + $bcc = $this->_createHeader('Bcc', array('bcc@domain' => 'Name'), + array(), false + ); + $bcc->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Bcc' => $bcc)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setBcc(array('other@domain' => 'Other')); + } + + public function testBccIsAddedToHeadersDuringAddBcc() + { + $bcc = $this->_createHeader('Bcc', array('from@domain' => 'Name'), + array(), false + ); + $bcc->shouldReceive('setFieldBodyModel') + ->once() + ->with(array('from@domain' => 'Name', 'other@domain' => 'Other')); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Bcc' => $bcc)), + $this->_createEncoder(), $this->_createCache() + ); + $message->addBcc('other@domain', 'Other'); + } + + public function testBccHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Bcc', (array) 'bcc@domain'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setBcc('bcc@domain'); + } + + public function testNameCanBeUsedInBcc() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Bcc', array('bcc@domain' => 'Name')); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setBcc('bcc@domain', 'Name'); + } + + public function testPriorityIsReadFromHeader() + { + $prio = $this->_createHeader('X-Priority', '2 (High)'); + $message = $this->_createMessage( + $this->_createHeaderSet(array('X-Priority' => $prio)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(2, $message->getPriority()); + } + + public function testPriorityIsSetInHeader() + { + $prio = $this->_createHeader('X-Priority', '2 (High)', array(), false); + $prio->shouldReceive('setFieldBodyModel') + ->once() + ->with('5 (Lowest)'); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('X-Priority' => $prio)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setPriority(5); + } + + public function testPriorityHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addTextHeader') + ->once() + ->with('X-Priority', '4 (Low)'); + $headers->shouldReceive('addTextHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setPriority(4); + } + + public function testReadReceiptAddressReadFromHeader() + { + $rcpt = $this->_createHeader('Disposition-Notification-To', + array('chris@swiftmailer.org' => 'Chris') + ); + $message = $this->_createMessage( + $this->_createHeaderSet(array('Disposition-Notification-To' => $rcpt)), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertEquals(array('chris@swiftmailer.org' => 'Chris'), + $message->getReadReceiptTo() + ); + } + + public function testReadReceiptIsSetInHeader() + { + $rcpt = $this->_createHeader('Disposition-Notification-To', array(), array(), false); + $rcpt->shouldReceive('setFieldBodyModel') + ->once() + ->with('mark@swiftmailer.org'); + + $message = $this->_createMessage( + $this->_createHeaderSet(array('Disposition-Notification-To' => $rcpt)), + $this->_createEncoder(), $this->_createCache() + ); + $message->setReadReceiptTo('mark@swiftmailer.org'); + } + + public function testReadReceiptHeaderIsAddedIfNoneSet() + { + $headers = $this->_createHeaderSet(array(), false); + $headers->shouldReceive('addMailboxHeader') + ->once() + ->with('Disposition-Notification-To', 'mark@swiftmailer.org'); + $headers->shouldReceive('addMailboxHeader') + ->zeroOrMoreTimes(); + + $message = $this->_createMessage($headers, $this->_createEncoder(), + $this->_createCache() + ); + $message->setReadReceiptTo('mark@swiftmailer.org'); + } + + public function testChildrenCanBeAttached() + { + $child1 = $this->_createChild(); + $child2 = $this->_createChild(); + + $message = $this->_createMessage($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + + $message->attach($child1); + $message->attach($child2); + + $this->assertEquals(array($child1, $child2), $message->getChildren()); + } + + public function testChildrenCanBeDetached() + { + $child1 = $this->_createChild(); + $child2 = $this->_createChild(); + + $message = $this->_createMessage($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + + $message->attach($child1); + $message->attach($child2); + + $message->detach($child1); + + $this->assertEquals(array($child2), $message->getChildren()); + } + + public function testEmbedAttachesChild() + { + $child = $this->_createChild(); + + $message = $this->_createMessage($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + + $message->embed($child); + + $this->assertEquals(array($child), $message->getChildren()); + } + + public function testEmbedReturnsValidCid() + { + $child = $this->_createChild(Swift_Mime_MimeEntity::LEVEL_RELATED, '', + false + ); + $child->shouldReceive('getId') + ->zeroOrMoreTimes() + ->andReturn('foo@bar'); + + $message = $this->_createMessage($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + + $this->assertEquals('cid:foo@bar', $message->embed($child)); + } + + public function testFluidInterface() + { + $child = $this->_createChild(); + $message = $this->_createMessage($this->_createHeaderSet(), + $this->_createEncoder(), $this->_createCache() + ); + $this->assertSame($message, + $message + ->setContentType('text/plain') + ->setEncoder($this->_createEncoder()) + ->setId('foo@bar') + ->setDescription('my description') + ->setMaxLineLength(998) + ->setBody('xx') + ->setBoundary('xyz') + ->setChildren(array()) + ->setCharset('iso-8859-1') + ->setFormat('flowed') + ->setDelSp(false) + ->setSubject('subj') + ->setDate(123) + ->setReturnPath('foo@bar') + ->setSender('foo@bar') + ->setFrom(array('x@y' => 'XY')) + ->setReplyTo(array('ab@cd' => 'ABCD')) + ->setTo(array('chris@site.tld', 'mark@site.tld')) + ->setCc('john@somewhere.tld') + ->setBcc(array('one@site', 'two@site' => 'Two')) + ->setPriority(4) + ->setReadReceiptTo('a@b') + ->attach($child) + ->detach($child) + ); + } + + // -- Private helpers + + //abstract + protected function _createEntity($headers, $encoder, $cache) + { + return $this->_createMessage($headers, $encoder, $cache); + } + + protected function _createMimePart($headers, $encoder, $cache) + { + return $this->_createMessage($headers, $encoder, $cache); + } + + private function _createMessage($headers, $encoder, $cache) + { + return new Swift_Mime_SimpleMessage($headers, $encoder, $cache, new Swift_Mime_Grammar()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMimeEntityTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMimeEntityTest.php new file mode 100644 index 0000000..b54d7f8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMimeEntityTest.php @@ -0,0 +1,11 @@ +assertEquals(10, $plugin->getThreshold()); + $plugin->setThreshold(100); + $this->assertEquals(100, $plugin->getThreshold()); + } + + public function testSleepTimeCanBeSetAndFetched() + { + $plugin = new Swift_Plugins_AntiFloodPlugin(10, 5); + $this->assertEquals(5, $plugin->getSleepTime()); + $plugin->setSleepTime(1); + $this->assertEquals(1, $plugin->getSleepTime()); + } + + public function testPluginStopsConnectionAfterThreshold() + { + $transport = $this->_createTransport(); + $transport->expects($this->once()) + ->method('start'); + $transport->expects($this->once()) + ->method('stop'); + + $evt = $this->_createSendEvent($transport); + + $plugin = new Swift_Plugins_AntiFloodPlugin(10); + for ($i = 0; $i < 12; $i++) { + $plugin->sendPerformed($evt); + } + } + + public function testPluginCanStopAndStartMultipleTimes() + { + $transport = $this->_createTransport(); + $transport->expects($this->exactly(5)) + ->method('start'); + $transport->expects($this->exactly(5)) + ->method('stop'); + + $evt = $this->_createSendEvent($transport); + + $plugin = new Swift_Plugins_AntiFloodPlugin(2); + for ($i = 0; $i < 11; $i++) { + $plugin->sendPerformed($evt); + } + } + + public function testPluginCanSleepDuringRestart() + { + $sleeper = $this->getMock('Swift_Plugins_Sleeper'); + $sleeper->expects($this->once()) + ->method('sleep') + ->with(10); + + $transport = $this->_createTransport(); + $transport->expects($this->once()) + ->method('start'); + $transport->expects($this->once()) + ->method('stop'); + + $evt = $this->_createSendEvent($transport); + + $plugin = new Swift_Plugins_AntiFloodPlugin(99, 10, $sleeper); + for ($i = 0; $i < 101; $i++) { + $plugin->sendPerformed($evt); + } + } + + // -- Creation Methods + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } + + private function _createSendEvent($transport) + { + $evt = $this->getMockBuilder('Swift_Events_SendEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getSource') + ->will($this->returnValue($transport)); + $evt->expects($this->any()) + ->method('getTransport') + ->will($this->returnValue($transport)); + + return $evt; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/BandwidthMonitorPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/BandwidthMonitorPluginTest.php new file mode 100644 index 0000000..f140993 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/BandwidthMonitorPluginTest.php @@ -0,0 +1,127 @@ +_monitor = new Swift_Plugins_BandwidthMonitorPlugin(); + } + + public function testBytesOutIncreasesWhenCommandsSent() + { + $evt = $this->_createCommandEvent("RCPT TO:\r\n"); + + $this->assertEquals(0, $this->_monitor->getBytesOut()); + $this->_monitor->commandSent($evt); + $this->assertEquals(23, $this->_monitor->getBytesOut()); + $this->_monitor->commandSent($evt); + $this->assertEquals(46, $this->_monitor->getBytesOut()); + } + + public function testBytesInIncreasesWhenResponsesReceived() + { + $evt = $this->_createResponseEvent("250 Ok\r\n"); + + $this->assertEquals(0, $this->_monitor->getBytesIn()); + $this->_monitor->responseReceived($evt); + $this->assertEquals(8, $this->_monitor->getBytesIn()); + $this->_monitor->responseReceived($evt); + $this->assertEquals(16, $this->_monitor->getBytesIn()); + } + + public function testCountersCanBeReset() + { + $evt = $this->_createResponseEvent("250 Ok\r\n"); + + $this->assertEquals(0, $this->_monitor->getBytesIn()); + $this->_monitor->responseReceived($evt); + $this->assertEquals(8, $this->_monitor->getBytesIn()); + $this->_monitor->responseReceived($evt); + $this->assertEquals(16, $this->_monitor->getBytesIn()); + + $evt = $this->_createCommandEvent("RCPT TO:\r\n"); + + $this->assertEquals(0, $this->_monitor->getBytesOut()); + $this->_monitor->commandSent($evt); + $this->assertEquals(23, $this->_monitor->getBytesOut()); + $this->_monitor->commandSent($evt); + $this->assertEquals(46, $this->_monitor->getBytesOut()); + + $this->_monitor->reset(); + + $this->assertEquals(0, $this->_monitor->getBytesOut()); + $this->assertEquals(0, $this->_monitor->getBytesIn()); + } + + public function testBytesOutIncreasesAccordingToMessageLength() + { + $message = $this->_createMessageWithByteCount(6); + $evt = $this->_createSendEvent($message); + + $this->assertEquals(0, $this->_monitor->getBytesOut()); + $this->_monitor->sendPerformed($evt); + $this->assertEquals(6, $this->_monitor->getBytesOut()); + $this->_monitor->sendPerformed($evt); + $this->assertEquals(12, $this->_monitor->getBytesOut()); + } + + // -- Creation Methods + + private function _createSendEvent($message) + { + $evt = $this->getMockBuilder('Swift_Events_SendEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getMessage') + ->will($this->returnValue($message)); + + return $evt; + } + + private function _createCommandEvent($command) + { + $evt = $this->getMockBuilder('Swift_Events_CommandEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getCommand') + ->will($this->returnValue($command)); + + return $evt; + } + + private function _createResponseEvent($response) + { + $evt = $this->getMockBuilder('Swift_Events_ResponseEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($response)); + + return $evt; + } + + private function _createMessageWithByteCount($bytes) + { + $this->_bytes = $bytes; + $msg = $this->getMock('Swift_Mime_Message'); + $msg->expects($this->any()) + ->method('toByteStream') + ->will($this->returnCallback(array($this, '_write'))); + /* $this->_checking(Expectations::create() + -> ignoring($msg)->toByteStream(any()) -> calls(array($this, '_write')) + ); */ + + return $msg; + } + + private $_bytes = 0; + public function _write($is) + { + for ($i = 0; $i < $this->_bytes; ++$i) { + $is->write('x'); + } + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/DecoratorPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/DecoratorPluginTest.php new file mode 100644 index 0000000..7f4cdef --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/DecoratorPluginTest.php @@ -0,0 +1,269 @@ +_createMessage( + $this->_createHeaders(), + array('zip@button.tld' => 'Zipathon'), + array('chris.corbyn@swiftmailer.org' => 'Chris'), + 'Subject', + 'Hello {name}, you are customer #{id}' + ); + $message->shouldReceive('setBody') + ->once() + ->with('Hello Zip, you are customer #456'); + $message->shouldReceive('setBody') + ->zeroOrMoreTimes(); + + $plugin = $this->_createPlugin( + array('zip@button.tld' => array('{name}' => 'Zip', '{id}' => '456')) + ); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + + public function testReplacementsCanBeAppliedToSameMessageMultipleTimes() + { + $message = $this->_createMessage( + $this->_createHeaders(), + array('zip@button.tld' => 'Zipathon', 'foo@bar.tld' => 'Foo'), + array('chris.corbyn@swiftmailer.org' => 'Chris'), + 'Subject', + 'Hello {name}, you are customer #{id}' + ); + $message->shouldReceive('setBody') + ->once() + ->with('Hello Zip, you are customer #456'); + $message->shouldReceive('setBody') + ->once() + ->with('Hello {name}, you are customer #{id}'); + $message->shouldReceive('setBody') + ->once() + ->with('Hello Foo, you are customer #123'); + $message->shouldReceive('setBody') + ->zeroOrMoreTimes(); + + $plugin = $this->_createPlugin( + array( + 'foo@bar.tld' => array('{name}' => 'Foo', '{id}' => '123'), + 'zip@button.tld' => array('{name}' => 'Zip', '{id}' => '456'), + ) + ); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + + public function testReplacementsCanBeMadeInHeaders() + { + $headers = $this->_createHeaders(array( + $returnPathHeader = $this->_createHeader('Return-Path', 'foo-{id}@swiftmailer.org'), + $toHeader = $this->_createHeader('Subject', 'A message for {name}!'), + )); + + $message = $this->_createMessage( + $headers, + array('zip@button.tld' => 'Zipathon'), + array('chris.corbyn@swiftmailer.org' => 'Chris'), + 'A message for {name}!', + 'Hello {name}, you are customer #{id}' + ); + + $message->shouldReceive('setBody') + ->once() + ->with('Hello Zip, you are customer #456'); + $toHeader->shouldReceive('setFieldBodyModel') + ->once() + ->with('A message for Zip!'); + $returnPathHeader->shouldReceive('setFieldBodyModel') + ->once() + ->with('foo-456@swiftmailer.org'); + $message->shouldReceive('setBody') + ->zeroOrMoreTimes(); + $toHeader->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + $returnPathHeader->shouldReceive('setFieldBodyModel') + ->zeroOrMoreTimes(); + + $plugin = $this->_createPlugin( + array('zip@button.tld' => array('{name}' => 'Zip', '{id}' => '456')) + ); + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + + public function testReplacementsAreMadeOnSubparts() + { + $part1 = $this->_createPart('text/plain', 'Your name is {name}?', '1@x'); + $part2 = $this->_createPart('text/html', 'Your name is {name}?', '2@x'); + $message = $this->_createMessage( + $this->_createHeaders(), + array('zip@button.tld' => 'Zipathon'), + array('chris.corbyn@swiftmailer.org' => 'Chris'), + 'A message for {name}!', + 'Subject' + ); + $message->shouldReceive('getChildren') + ->zeroOrMoreTimes() + ->andReturn(array($part1, $part2)); + $part1->shouldReceive('setBody') + ->once() + ->with('Your name is Zip?'); + $part2->shouldReceive('setBody') + ->once() + ->with('Your name is Zip?'); + $part1->shouldReceive('setBody') + ->zeroOrMoreTimes(); + $part2->shouldReceive('setBody') + ->zeroOrMoreTimes(); + + $plugin = $this->_createPlugin( + array('zip@button.tld' => array('{name}' => 'Zip', '{id}' => '456')) + ); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + + public function testReplacementsCanBeTakenFromCustomReplacementsObject() + { + $message = $this->_createMessage( + $this->_createHeaders(), + array('foo@bar' => 'Foobar', 'zip@zap' => 'Zip zap'), + array('chris.corbyn@swiftmailer.org' => 'Chris'), + 'Subject', + 'Something {a}' + ); + + $replacements = $this->_createReplacements(); + + $message->shouldReceive('setBody') + ->once() + ->with('Something b'); + $message->shouldReceive('setBody') + ->once() + ->with('Something c'); + $message->shouldReceive('setBody') + ->zeroOrMoreTimes(); + $replacements->shouldReceive('getReplacementsFor') + ->once() + ->with('foo@bar') + ->andReturn(array('{a}' => 'b')); + $replacements->shouldReceive('getReplacementsFor') + ->once() + ->with('zip@zap') + ->andReturn(array('{a}' => 'c')); + + $plugin = $this->_createPlugin($replacements); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + + // -- Creation methods + + private function _createMessage($headers, $to = array(), $from = null, $subject = null, + $body = null) + { + $message = $this->getMockery('Swift_Mime_Message')->shouldIgnoreMissing(); + foreach ($to as $addr => $name) { + $message->shouldReceive('getTo') + ->once() + ->andReturn(array($addr => $name)); + } + $message->shouldReceive('getHeaders') + ->zeroOrMoreTimes() + ->andReturn($headers); + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn($from); + $message->shouldReceive('getSubject') + ->zeroOrMoreTimes() + ->andReturn($subject); + $message->shouldReceive('getBody') + ->zeroOrMoreTimes() + ->andReturn($body); + + return $message; + } + + private function _createPlugin($replacements) + { + return new Swift_Plugins_DecoratorPlugin($replacements); + } + + private function _createReplacements() + { + return $this->getMockery('Swift_Plugins_Decorator_Replacements')->shouldIgnoreMissing(); + } + + private function _createSendEvent(Swift_Mime_Message $message) + { + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + $evt->shouldReceive('getMessage') + ->zeroOrMoreTimes() + ->andReturn($message); + + return $evt; + } + + private function _createPart($type, $body, $id) + { + $part = $this->getMockery('Swift_Mime_MimeEntity')->shouldIgnoreMissing(); + $part->shouldReceive('getContentType') + ->zeroOrMoreTimes() + ->andReturn($type); + $part->shouldReceive('getBody') + ->zeroOrMoreTimes() + ->andReturn($body); + $part->shouldReceive('getId') + ->zeroOrMoreTimes() + ->andReturn($id); + + return $part; + } + + private function _createHeaders($headers = array()) + { + $set = $this->getMockery('Swift_Mime_HeaderSet')->shouldIgnoreMissing(); + $set->shouldReceive('getAll') + ->zeroOrMoreTimes() + ->andReturn($headers); + + foreach ($headers as $header) { + $set->set($header); + } + + return $set; + } + + private function _createHeader($name, $body = '') + { + $header = $this->getMockery('Swift_Mime_Header')->shouldIgnoreMissing(); + $header->shouldReceive('getFieldName') + ->zeroOrMoreTimes() + ->andReturn($name); + $header->shouldReceive('getFieldBodyModel') + ->zeroOrMoreTimes() + ->andReturn($body); + + return $header; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/LoggerPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/LoggerPluginTest.php new file mode 100644 index 0000000..bd1fd97 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/LoggerPluginTest.php @@ -0,0 +1,190 @@ +_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with('foo'); + + $plugin = $this->_createPlugin($logger); + $plugin->add('foo'); + } + + public function testLoggerDelegatesDumpingEntries() + { + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('dump') + ->will($this->returnValue('foobar')); + + $plugin = $this->_createPlugin($logger); + $this->assertEquals('foobar', $plugin->dump()); + } + + public function testLoggerDelegatesClearingEntries() + { + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('clear'); + + $plugin = $this->_createPlugin($logger); + $plugin->clear(); + } + + public function testCommandIsSentToLogger() + { + $evt = $this->_createCommandEvent("foo\r\n"); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->regExp('~foo\r\n~')); + + $plugin = $this->_createPlugin($logger); + $plugin->commandSent($evt); + } + + public function testResponseIsSentToLogger() + { + $evt = $this->_createResponseEvent("354 Go ahead\r\n"); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->regExp('~354 Go ahead\r\n~')); + + $plugin = $this->_createPlugin($logger); + $plugin->responseReceived($evt); + } + + public function testTransportBeforeStartChangeIsSentToLogger() + { + $evt = $this->_createTransportChangeEvent(); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->anything()); + + $plugin = $this->_createPlugin($logger); + $plugin->beforeTransportStarted($evt); + } + + public function testTransportStartChangeIsSentToLogger() + { + $evt = $this->_createTransportChangeEvent(); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->anything()); + + $plugin = $this->_createPlugin($logger); + $plugin->transportStarted($evt); + } + + public function testTransportStopChangeIsSentToLogger() + { + $evt = $this->_createTransportChangeEvent(); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->anything()); + + $plugin = $this->_createPlugin($logger); + $plugin->transportStopped($evt); + } + + public function testTransportBeforeStopChangeIsSentToLogger() + { + $evt = $this->_createTransportChangeEvent(); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->anything()); + + $plugin = $this->_createPlugin($logger); + $plugin->beforeTransportStopped($evt); + } + + public function testExceptionsArePassedToDelegateAndLeftToBubbleUp() + { + $transport = $this->_createTransport(); + $evt = $this->_createTransportExceptionEvent(); + $logger = $this->_createLogger(); + $logger->expects($this->once()) + ->method('add') + ->with($this->anything()); + + $plugin = $this->_createPlugin($logger); + try { + $plugin->exceptionThrown($evt); + $this->fail('Exception should bubble up.'); + } catch (Swift_TransportException $ex) { + } + } + + // -- Creation Methods + + private function _createLogger() + { + return $this->getMock('Swift_Plugins_Logger'); + } + + private function _createPlugin($logger) + { + return new Swift_Plugins_LoggerPlugin($logger); + } + + private function _createCommandEvent($command) + { + $evt = $this->getMockBuilder('Swift_Events_CommandEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getCommand') + ->will($this->returnValue($command)); + + return $evt; + } + + private function _createResponseEvent($response) + { + $evt = $this->getMockBuilder('Swift_Events_ResponseEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($response)); + + return $evt; + } + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } + + private function _createTransportChangeEvent() + { + $evt = $this->getMockBuilder('Swift_Events_TransportChangeEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getSource') + ->will($this->returnValue($this->_createTransport())); + + return $evt; + } + + public function _createTransportExceptionEvent() + { + $evt = $this->getMockBuilder('Swift_Events_TransportExceptionEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getException') + ->will($this->returnValue(new Swift_TransportException(''))); + + return $evt; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/ArrayLoggerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/ArrayLoggerTest.php new file mode 100644 index 0000000..880bb32 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/ArrayLoggerTest.php @@ -0,0 +1,65 @@ +add(">> Foo\r\n"); + $this->assertEquals(">> Foo\r\n", $logger->dump()); + } + + public function testAddingMultipleEntriesDumpsMultipleLines() + { + $logger = new Swift_Plugins_Loggers_ArrayLogger(); + $logger->add(">> FOO\r\n"); + $logger->add("<< 502 That makes no sense\r\n"); + $logger->add(">> RSET\r\n"); + $logger->add("<< 250 OK\r\n"); + + $this->assertEquals( + ">> FOO\r\n".PHP_EOL. + "<< 502 That makes no sense\r\n".PHP_EOL. + ">> RSET\r\n".PHP_EOL. + "<< 250 OK\r\n", + $logger->dump() + ); + } + + public function testLogCanBeCleared() + { + $logger = new Swift_Plugins_Loggers_ArrayLogger(); + $logger->add(">> FOO\r\n"); + $logger->add("<< 502 That makes no sense\r\n"); + $logger->add(">> RSET\r\n"); + $logger->add("<< 250 OK\r\n"); + + $this->assertEquals( + ">> FOO\r\n".PHP_EOL. + "<< 502 That makes no sense\r\n".PHP_EOL. + ">> RSET\r\n".PHP_EOL. + "<< 250 OK\r\n", + $logger->dump() + ); + + $logger->clear(); + + $this->assertEquals('', $logger->dump()); + } + + public function testLengthCanBeTruncated() + { + $logger = new Swift_Plugins_Loggers_ArrayLogger(2); + $logger->add(">> FOO\r\n"); + $logger->add("<< 502 That makes no sense\r\n"); + $logger->add(">> RSET\r\n"); + $logger->add("<< 250 OK\r\n"); + + $this->assertEquals( + ">> RSET\r\n".PHP_EOL. + "<< 250 OK\r\n", + $logger->dump(), + '%s: Log should be truncated to last 2 entries' + ); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/EchoLoggerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/EchoLoggerTest.php new file mode 100644 index 0000000..6134fe6 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/EchoLoggerTest.php @@ -0,0 +1,24 @@ +add('>> Foo'); + $data = ob_get_clean(); + + $this->assertEquals('>> Foo'.PHP_EOL, $data); + } + + public function testAddingEntryDumpsEscapedLineWithHtml() + { + $logger = new Swift_Plugins_Loggers_EchoLogger(true); + ob_start(); + $logger->add('>> Foo'); + $data = ob_get_clean(); + + $this->assertEquals('>> Foo
'.PHP_EOL, $data); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/PopBeforeSmtpPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/PopBeforeSmtpPluginTest.php new file mode 100644 index 0000000..1227c24 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/PopBeforeSmtpPluginTest.php @@ -0,0 +1,103 @@ +_createConnection(); + $connection->expects($this->once()) + ->method('connect'); + + $plugin = $this->_createPlugin('pop.host.tld', 110); + $plugin->setConnection($connection); + + $transport = $this->_createTransport(); + $evt = $this->_createTransportChangeEvent($transport); + + $plugin->beforeTransportStarted($evt); + } + + public function testPluginDisconnectsFromPop3HostBeforeTransportStarts() + { + $connection = $this->_createConnection(); + $connection->expects($this->once()) + ->method('disconnect'); + + $plugin = $this->_createPlugin('pop.host.tld', 110); + $plugin->setConnection($connection); + + $transport = $this->_createTransport(); + $evt = $this->_createTransportChangeEvent($transport); + + $plugin->beforeTransportStarted($evt); + } + + public function testPluginDoesNotConnectToSmtpIfBoundToDifferentTransport() + { + $connection = $this->_createConnection(); + $connection->expects($this->never()) + ->method('disconnect'); + $connection->expects($this->never()) + ->method('connect'); + + $smtp = $this->_createTransport(); + + $plugin = $this->_createPlugin('pop.host.tld', 110); + $plugin->setConnection($connection); + $plugin->bindSmtp($smtp); + + $transport = $this->_createTransport(); + $evt = $this->_createTransportChangeEvent($transport); + + $plugin->beforeTransportStarted($evt); + } + + public function testPluginCanBindToSpecificTransport() + { + $connection = $this->_createConnection(); + $connection->expects($this->once()) + ->method('connect'); + + $smtp = $this->_createTransport(); + + $plugin = $this->_createPlugin('pop.host.tld', 110); + $plugin->setConnection($connection); + $plugin->bindSmtp($smtp); + + $evt = $this->_createTransportChangeEvent($smtp); + + $plugin->beforeTransportStarted($evt); + } + + // -- Creation Methods + + private function _createTransport() + { + return $this->getMock('Swift_Transport'); + } + + private function _createTransportChangeEvent($transport) + { + $evt = $this->getMockBuilder('Swift_Events_TransportChangeEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getSource') + ->will($this->returnValue($transport)); + $evt->expects($this->any()) + ->method('getTransport') + ->will($this->returnValue($transport)); + + return $evt; + } + + public function _createConnection() + { + return $this->getMock('Swift_Plugins_Pop_Pop3Connection'); + } + + public function _createPlugin($host, $port, $crypto = null) + { + return new Swift_Plugins_PopBeforeSmtpPlugin($host, $port, $crypto); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/RedirectingPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/RedirectingPluginTest.php new file mode 100644 index 0000000..4cc7e89 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/RedirectingPluginTest.php @@ -0,0 +1,185 @@ +assertEquals('fabien@example.com', $plugin->getRecipient()); + $plugin->setRecipient('chris@example.com'); + $this->assertEquals('chris@example.com', $plugin->getRecipient()); + } + + public function testPluginChangesRecipients() + { + $message = Swift_Message::newInstance() + ->setSubject('...') + ->setFrom(array('john@example.com' => 'John Doe')) + ->setTo($to = array( + 'fabien-to@example.com' => 'Fabien (To)', + 'chris-to@example.com' => 'Chris (To)', + )) + ->setCc($cc = array( + 'fabien-cc@example.com' => 'Fabien (Cc)', + 'chris-cc@example.com' => 'Chris (Cc)', + )) + ->setBcc($bcc = array( + 'fabien-bcc@example.com' => 'Fabien (Bcc)', + 'chris-bcc@example.com' => 'Chris (Bcc)', + )) + ->setBody('...') + ; + + $plugin = new Swift_Plugins_RedirectingPlugin('god@example.com'); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + + $this->assertEquals($message->getTo(), array('god@example.com' => '')); + $this->assertEquals($message->getCc(), array()); + $this->assertEquals($message->getBcc(), array()); + + $plugin->sendPerformed($evt); + + $this->assertEquals($message->getTo(), $to); + $this->assertEquals($message->getCc(), $cc); + $this->assertEquals($message->getBcc(), $bcc); + } + + public function testPluginRespectsUnsetToList() + { + $message = Swift_Message::newInstance() + ->setSubject('...') + ->setFrom(array('john@example.com' => 'John Doe')) + ->setCc($cc = array( + 'fabien-cc@example.com' => 'Fabien (Cc)', + 'chris-cc@example.com' => 'Chris (Cc)', + )) + ->setBcc($bcc = array( + 'fabien-bcc@example.com' => 'Fabien (Bcc)', + 'chris-bcc@example.com' => 'Chris (Bcc)', + )) + ->setBody('...') + ; + + $plugin = new Swift_Plugins_RedirectingPlugin('god@example.com'); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + + $this->assertEquals($message->getTo(), array('god@example.com' => '')); + $this->assertEquals($message->getCc(), array()); + $this->assertEquals($message->getBcc(), array()); + + $plugin->sendPerformed($evt); + + $this->assertEquals($message->getTo(), array()); + $this->assertEquals($message->getCc(), $cc); + $this->assertEquals($message->getBcc(), $bcc); + } + + public function testPluginRespectsAWhitelistOfPatterns() + { + $message = Swift_Message::newInstance() + ->setSubject('...') + ->setFrom(array('john@example.com' => 'John Doe')) + ->setTo($to = array( + 'fabien-to@example.com' => 'Fabien (To)', + 'chris-to@example.com' => 'Chris (To)', + 'lars-to@internal.com' => 'Lars (To)', + )) + ->setCc($cc = array( + 'fabien-cc@example.com' => 'Fabien (Cc)', + 'chris-cc@example.com' => 'Chris (Cc)', + 'lars-cc@internal.org' => 'Lars (Cc)', + )) + ->setBcc($bcc = array( + 'fabien-bcc@example.com' => 'Fabien (Bcc)', + 'chris-bcc@example.com' => 'Chris (Bcc)', + 'john-bcc@example.org' => 'John (Bcc)', + )) + ->setBody('...') + ; + + $recipient = 'god@example.com'; + $patterns = array('/^.*@internal.[a-z]+$/', '/^john-.*$/'); + + $plugin = new Swift_Plugins_RedirectingPlugin($recipient, $patterns); + + $this->assertEquals($recipient, $plugin->getRecipient()); + $this->assertEquals($plugin->getWhitelist(), $patterns); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + + $this->assertEquals($message->getTo(), array('lars-to@internal.com' => 'Lars (To)', 'god@example.com' => null)); + $this->assertEquals($message->getCc(), array('lars-cc@internal.org' => 'Lars (Cc)')); + $this->assertEquals($message->getBcc(), array('john-bcc@example.org' => 'John (Bcc)')); + + $plugin->sendPerformed($evt); + + $this->assertEquals($message->getTo(), $to); + $this->assertEquals($message->getCc(), $cc); + $this->assertEquals($message->getBcc(), $bcc); + } + + public function testArrayOfRecipientsCanBeExplicitlyDefined() + { + $message = Swift_Message::newInstance() + ->setSubject('...') + ->setFrom(array('john@example.com' => 'John Doe')) + ->setTo(array( + 'fabien@example.com' => 'Fabien', + 'chris@example.com' => 'Chris (To)', + 'lars-to@internal.com' => 'Lars (To)', + )) + ->setCc(array( + 'fabien@example.com' => 'Fabien', + 'chris-cc@example.com' => 'Chris (Cc)', + 'lars-cc@internal.org' => 'Lars (Cc)', + )) + ->setBcc(array( + 'fabien@example.com' => 'Fabien', + 'chris-bcc@example.com' => 'Chris (Bcc)', + 'john-bcc@example.org' => 'John (Bcc)', + )) + ->setBody('...') + ; + + $recipients = array('god@example.com', 'fabien@example.com'); + $patterns = array('/^.*@internal.[a-z]+$/'); + + $plugin = new Swift_Plugins_RedirectingPlugin($recipients, $patterns); + + $evt = $this->_createSendEvent($message); + + $plugin->beforeSendPerformed($evt); + + $this->assertEquals( + $message->getTo(), + array('fabien@example.com' => 'Fabien', 'lars-to@internal.com' => 'Lars (To)', 'god@example.com' => null) + ); + $this->assertEquals( + $message->getCc(), + array('fabien@example.com' => 'Fabien', 'lars-cc@internal.org' => 'Lars (Cc)') + ); + $this->assertEquals($message->getBcc(), array('fabien@example.com' => 'Fabien')); + } + + // -- Creation Methods + + private function _createSendEvent(Swift_Mime_Message $message) + { + $evt = $this->getMockBuilder('Swift_Events_SendEvent') + ->disableOriginalConstructor() + ->getMock(); + $evt->expects($this->any()) + ->method('getMessage') + ->will($this->returnValue($message)); + + return $evt; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ReporterPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ReporterPluginTest.php new file mode 100644 index 0000000..8101883 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ReporterPluginTest.php @@ -0,0 +1,88 @@ +_createMessage(); + $evt = $this->_createSendEvent(); + $reporter = $this->_createReporter(); + + $message->shouldReceive('getTo')->zeroOrMoreTimes()->andReturn(array('foo@bar.tld' => 'Foo')); + $evt->shouldReceive('getMessage')->zeroOrMoreTimes()->andReturn($message); + $evt->shouldReceive('getFailedRecipients')->zeroOrMoreTimes()->andReturn(array()); + $reporter->shouldReceive('notify')->once()->with($message, 'foo@bar.tld', Swift_Plugins_Reporter::RESULT_PASS); + + $plugin = new Swift_Plugins_ReporterPlugin($reporter); + $plugin->sendPerformed($evt); + } + + public function testReportingFailedTo() + { + $message = $this->_createMessage(); + $evt = $this->_createSendEvent(); + $reporter = $this->_createReporter(); + + $message->shouldReceive('getTo')->zeroOrMoreTimes()->andReturn(array('foo@bar.tld' => 'Foo', 'zip@button' => 'Zip')); + $evt->shouldReceive('getMessage')->zeroOrMoreTimes()->andReturn($message); + $evt->shouldReceive('getFailedRecipients')->zeroOrMoreTimes()->andReturn(array('zip@button')); + $reporter->shouldReceive('notify')->once()->with($message, 'foo@bar.tld', Swift_Plugins_Reporter::RESULT_PASS); + $reporter->shouldReceive('notify')->once()->with($message, 'zip@button', Swift_Plugins_Reporter::RESULT_FAIL); + + $plugin = new Swift_Plugins_ReporterPlugin($reporter); + $plugin->sendPerformed($evt); + } + + public function testReportingFailedCc() + { + $message = $this->_createMessage(); + $evt = $this->_createSendEvent(); + $reporter = $this->_createReporter(); + + $message->shouldReceive('getTo')->zeroOrMoreTimes()->andReturn(array('foo@bar.tld' => 'Foo')); + $message->shouldReceive('getCc')->zeroOrMoreTimes()->andReturn(array('zip@button' => 'Zip', 'test@test.com' => 'Test')); + $evt->shouldReceive('getMessage')->zeroOrMoreTimes()->andReturn($message); + $evt->shouldReceive('getFailedRecipients')->zeroOrMoreTimes()->andReturn(array('zip@button')); + $reporter->shouldReceive('notify')->once()->with($message, 'foo@bar.tld', Swift_Plugins_Reporter::RESULT_PASS); + $reporter->shouldReceive('notify')->once()->with($message, 'zip@button', Swift_Plugins_Reporter::RESULT_FAIL); + $reporter->shouldReceive('notify')->once()->with($message, 'test@test.com', Swift_Plugins_Reporter::RESULT_PASS); + + $plugin = new Swift_Plugins_ReporterPlugin($reporter); + $plugin->sendPerformed($evt); + } + + public function testReportingFailedBcc() + { + $message = $this->_createMessage(); + $evt = $this->_createSendEvent(); + $reporter = $this->_createReporter(); + + $message->shouldReceive('getTo')->zeroOrMoreTimes()->andReturn(array('foo@bar.tld' => 'Foo')); + $message->shouldReceive('getBcc')->zeroOrMoreTimes()->andReturn(array('zip@button' => 'Zip', 'test@test.com' => 'Test')); + $evt->shouldReceive('getMessage')->zeroOrMoreTimes()->andReturn($message); + $evt->shouldReceive('getFailedRecipients')->zeroOrMoreTimes()->andReturn(array('zip@button')); + $reporter->shouldReceive('notify')->once()->with($message, 'foo@bar.tld', Swift_Plugins_Reporter::RESULT_PASS); + $reporter->shouldReceive('notify')->once()->with($message, 'zip@button', Swift_Plugins_Reporter::RESULT_FAIL); + $reporter->shouldReceive('notify')->once()->with($message, 'test@test.com', Swift_Plugins_Reporter::RESULT_PASS); + + $plugin = new Swift_Plugins_ReporterPlugin($reporter); + $plugin->sendPerformed($evt); + } + + // -- Creation Methods + + private function _createMessage() + { + return $this->getMockery('Swift_Mime_Message')->shouldIgnoreMissing(); + } + + private function _createSendEvent() + { + return $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + } + + private function _createReporter() + { + return $this->getMockery('Swift_Plugins_Reporter')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HitReporterTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HitReporterTest.php new file mode 100644 index 0000000..4d31c3c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HitReporterTest.php @@ -0,0 +1,64 @@ +_hitReporter = new Swift_Plugins_Reporters_HitReporter(); + $this->_message = $this->getMock('Swift_Mime_Message'); + } + + public function testReportingFail() + { + $this->_hitReporter->notify($this->_message, 'foo@bar.tld', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $this->assertEquals(array('foo@bar.tld'), + $this->_hitReporter->getFailedRecipients() + ); + } + + public function testMultipleReports() + { + $this->_hitReporter->notify($this->_message, 'foo@bar.tld', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $this->_hitReporter->notify($this->_message, 'zip@button', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $this->assertEquals(array('foo@bar.tld', 'zip@button'), + $this->_hitReporter->getFailedRecipients() + ); + } + + public function testReportingPassIsIgnored() + { + $this->_hitReporter->notify($this->_message, 'foo@bar.tld', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $this->_hitReporter->notify($this->_message, 'zip@button', + Swift_Plugins_Reporter::RESULT_PASS + ); + $this->assertEquals(array('foo@bar.tld'), + $this->_hitReporter->getFailedRecipients() + ); + } + + public function testBufferCanBeCleared() + { + $this->_hitReporter->notify($this->_message, 'foo@bar.tld', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $this->_hitReporter->notify($this->_message, 'zip@button', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $this->assertEquals(array('foo@bar.tld', 'zip@button'), + $this->_hitReporter->getFailedRecipients() + ); + $this->_hitReporter->clear(); + $this->assertEquals(array(), $this->_hitReporter->getFailedRecipients()); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HtmlReporterTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HtmlReporterTest.php new file mode 100644 index 0000000..3e78fca --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HtmlReporterTest.php @@ -0,0 +1,54 @@ +_html = new Swift_Plugins_Reporters_HtmlReporter(); + $this->_message = $this->getMock('Swift_Mime_Message'); + } + + public function testReportingPass() + { + ob_start(); + $this->_html->notify($this->_message, 'foo@bar.tld', + Swift_Plugins_Reporter::RESULT_PASS + ); + $html = ob_get_clean(); + + $this->assertRegExp('~ok|pass~i', $html, '%s: Reporter should indicate pass'); + $this->assertRegExp('~foo@bar\.tld~', $html, '%s: Reporter should show address'); + } + + public function testReportingFail() + { + ob_start(); + $this->_html->notify($this->_message, 'zip@button', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $html = ob_get_clean(); + + $this->assertRegExp('~fail~i', $html, '%s: Reporter should indicate fail'); + $this->assertRegExp('~zip@button~', $html, '%s: Reporter should show address'); + } + + public function testMultipleReports() + { + ob_start(); + $this->_html->notify($this->_message, 'foo@bar.tld', + Swift_Plugins_Reporter::RESULT_PASS + ); + $this->_html->notify($this->_message, 'zip@button', + Swift_Plugins_Reporter::RESULT_FAIL + ); + $html = ob_get_clean(); + + $this->assertRegExp('~ok|pass~i', $html, '%s: Reporter should indicate pass'); + $this->assertRegExp('~foo@bar\.tld~', $html, '%s: Reporter should show address'); + $this->assertRegExp('~fail~i', $html, '%s: Reporter should indicate fail'); + $this->assertRegExp('~zip@button~', $html, '%s: Reporter should show address'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ThrottlerPluginTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ThrottlerPluginTest.php new file mode 100644 index 0000000..a50f14f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ThrottlerPluginTest.php @@ -0,0 +1,104 @@ +_createSleeper(); + $timer = $this->_createTimer(); + + //10MB/min + $plugin = new Swift_Plugins_ThrottlerPlugin( + 10000000, Swift_Plugins_ThrottlerPlugin::BYTES_PER_MINUTE, + $sleeper, $timer + ); + + $timer->shouldReceive('getTimestamp')->once()->andReturn(0); + $timer->shouldReceive('getTimestamp')->once()->andReturn(1); //expected 0.6 + $timer->shouldReceive('getTimestamp')->once()->andReturn(1); //expected 1.2 (sleep 1) + $timer->shouldReceive('getTimestamp')->once()->andReturn(2); //expected 1.8 + $timer->shouldReceive('getTimestamp')->once()->andReturn(2); //expected 2.4 (sleep 1) + $sleeper->shouldReceive('sleep')->twice()->with(1); + + //10,000,000 bytes per minute + //100,000 bytes per email + + // .: (10,000,000/100,000)/60 emails per second = 1.667 emais/sec + + $message = $this->_createMessageWithByteCount(100000); //100KB + + $evt = $this->_createSendEvent($message); + + for ($i = 0; $i < 5; ++$i) { + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + } + + public function testMessagesPerMinuteThrottling() + { + $sleeper = $this->_createSleeper(); + $timer = $this->_createTimer(); + + //60/min + $plugin = new Swift_Plugins_ThrottlerPlugin( + 60, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE, + $sleeper, $timer + ); + + $timer->shouldReceive('getTimestamp')->once()->andReturn(0); + $timer->shouldReceive('getTimestamp')->once()->andReturn(0); //expected 1 (sleep 1) + $timer->shouldReceive('getTimestamp')->once()->andReturn(2); //expected 2 + $timer->shouldReceive('getTimestamp')->once()->andReturn(2); //expected 3 (sleep 1) + $timer->shouldReceive('getTimestamp')->once()->andReturn(4); //expected 4 + $sleeper->shouldReceive('sleep')->twice()->with(1); + + //60 messages per minute + //1 message per second + + $message = $this->_createMessageWithByteCount(10); + + $evt = $this->_createSendEvent($message); + + for ($i = 0; $i < 5; ++$i) { + $plugin->beforeSendPerformed($evt); + $plugin->sendPerformed($evt); + } + } + + // -- Creation Methods + + private function _createSleeper() + { + return $this->getMockery('Swift_Plugins_Sleeper'); + } + + private function _createTimer() + { + return $this->getMockery('Swift_Plugins_Timer'); + } + + private function _createMessageWithByteCount($bytes) + { + $msg = $this->getMockery('Swift_Mime_Message'); + $msg->shouldReceive('toByteStream') + ->zeroOrMoreTimes() + ->andReturnUsing(function ($is) use ($bytes) { + for ($i = 0; $i < $bytes; ++$i) { + $is->write('x'); + } + }); + + return $msg; + } + + private function _createSendEvent($message) + { + $evt = $this->getMockery('Swift_Events_SendEvent'); + $evt->shouldReceive('getMessage') + ->zeroOrMoreTimes() + ->andReturn($message); + + return $evt; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/DKIMSignerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/DKIMSignerTest.php new file mode 100644 index 0000000..13c1b4c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/DKIMSignerTest.php @@ -0,0 +1,227 @@ +markTestSkipped( + 'skipping because of https://bugs.php.net/bug.php?id=61421' + ); + } + } + + public function testBasicSigningHeaderManipulation() + { + $headers = $this->_createHeaders(); + $messageContent = 'Hello World'; + $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))).'/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector'); + /* @var $signer Swift_Signers_HeaderSigner */ + $altered = $signer->getAlteredHeaders(); + $signer->reset(); + // Headers + $signer->setHeaders($headers); + // Body + $signer->startBody(); + $signer->write($messageContent); + $signer->endBody(); + // Signing + $signer->addSignature($headers); + } + + // Default Signing + public function testSigningDefaults() + { + $headerSet = $this->_createHeaderSet(); + $messageContent = 'Hello World'; + $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))).'/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector'); + $signer->setSignatureTimestamp('1299879181'); + $altered = $signer->getAlteredHeaders(); + $this->assertEquals(array('DKIM-Signature'), $altered); + $signer->reset(); + $signer->setHeaders($headerSet); + $this->assertFalse($headerSet->has('DKIM-Signature')); + $signer->startBody(); + $signer->write($messageContent); + $signer->endBody(); + $signer->addSignature($headerSet); + $this->assertTrue($headerSet->has('DKIM-Signature')); + $dkim = $headerSet->getAll('DKIM-Signature'); + $sig = reset($dkim); + $this->assertEquals($sig->getValue(), 'v=1; a=rsa-sha1; bh=wlbYcY9O9OPInGJ4D0E/rGsvMLE=; d=dummy.nxdomain.be; h=; i=@dummy.nxdomain.be; s=dummySelector; t=1299879181; b=RMSNelzM2O5MAAnMjT3G3/VF36S3DGJXoPCXR001F1WDReu0prGphWjuzK/m6V1pwqQL8cCNg Hi74mTx2bvyAvmkjvQtJf1VMUOCc9WHGcm1Yec66I3ZWoNMGSWZ1EKAm2CtTzyG0IFw4ml9DI wSkyAFxlgicckDD6FibhqwX4w='); + } + + // SHA256 Signing + public function testSigning256() + { + $headerSet = $this->_createHeaderSet(); + $messageContent = 'Hello World'; + $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))).'/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector'); + $signer->setHashAlgorithm('rsa-sha256'); + $signer->setSignatureTimestamp('1299879181'); + $altered = $signer->getAlteredHeaders(); + $this->assertEquals(array('DKIM-Signature'), $altered); + $signer->reset(); + $signer->setHeaders($headerSet); + $this->assertFalse($headerSet->has('DKIM-Signature')); + $signer->startBody(); + $signer->write($messageContent); + $signer->endBody(); + $signer->addSignature($headerSet); + $this->assertTrue($headerSet->has('DKIM-Signature')); + $dkim = $headerSet->getAll('DKIM-Signature'); + $sig = reset($dkim); + $this->assertEquals($sig->getValue(), 'v=1; a=rsa-sha256; bh=f+W+hu8dIhf2VAni89o8lF6WKTXi7nViA4RrMdpD5/U=; d=dummy.nxdomain.be; h=; i=@dummy.nxdomain.be; s=dummySelector; t=1299879181; b=jqPmieHzF5vR9F4mXCAkowuphpO4iJ8IAVuioh1BFZ3VITXZj5jlOFxULJMBiiApm2keJirnh u4mzogj444QkpT3lJg8/TBGAYQPdcvkG3KC0jdyN6QpSgpITBJG2BwWa+keXsv2bkQgLRAzNx qRhP45vpHCKun0Tg9LrwW/KCg='); + } + + // Relaxed/Relaxed Hash Signing + public function testSigningRelaxedRelaxed256() + { + $headerSet = $this->_createHeaderSet(); + $messageContent = 'Hello World'; + $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))).'/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector'); + $signer->setHashAlgorithm('rsa-sha256'); + $signer->setSignatureTimestamp('1299879181'); + $signer->setBodyCanon('relaxed'); + $signer->setHeaderCanon('relaxed'); + $altered = $signer->getAlteredHeaders(); + $this->assertEquals(array('DKIM-Signature'), $altered); + $signer->reset(); + $signer->setHeaders($headerSet); + $this->assertFalse($headerSet->has('DKIM-Signature')); + $signer->startBody(); + $signer->write($messageContent); + $signer->endBody(); + $signer->addSignature($headerSet); + $this->assertTrue($headerSet->has('DKIM-Signature')); + $dkim = $headerSet->getAll('DKIM-Signature'); + $sig = reset($dkim); + $this->assertEquals($sig->getValue(), 'v=1; a=rsa-sha256; bh=f+W+hu8dIhf2VAni89o8lF6WKTXi7nViA4RrMdpD5/U=; d=dummy.nxdomain.be; h=; i=@dummy.nxdomain.be; s=dummySelector; c=relaxed/relaxed; t=1299879181; b=gzOI+PX6HpZKQFzwwmxzcVJsyirdLXOS+4pgfCpVHQIdqYusKLrhlLeFBTNoz75HrhNvGH6T0 Rt3w5aTqkrWfUuAEYt0Ns14GowLM7JojaFN+pZ4eYnRB3CBBgW6fee4NEMD5WPca3uS09tr1E 10RYh9ILlRtl+84sovhx5id3Y='); + } + + // Relaxed/Simple Hash Signing + public function testSigningRelaxedSimple256() + { + $headerSet = $this->_createHeaderSet(); + $messageContent = 'Hello World'; + $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))).'/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector'); + $signer->setHashAlgorithm('rsa-sha256'); + $signer->setSignatureTimestamp('1299879181'); + $signer->setHeaderCanon('relaxed'); + $altered = $signer->getAlteredHeaders(); + $this->assertEquals(array('DKIM-Signature'), $altered); + $signer->reset(); + $signer->setHeaders($headerSet); + $this->assertFalse($headerSet->has('DKIM-Signature')); + $signer->startBody(); + $signer->write($messageContent); + $signer->endBody(); + $signer->addSignature($headerSet); + $this->assertTrue($headerSet->has('DKIM-Signature')); + $dkim = $headerSet->getAll('DKIM-Signature'); + $sig = reset($dkim); + $this->assertEquals($sig->getValue(), 'v=1; a=rsa-sha256; bh=f+W+hu8dIhf2VAni89o8lF6WKTXi7nViA4RrMdpD5/U=; d=dummy.nxdomain.be; h=; i=@dummy.nxdomain.be; s=dummySelector; c=relaxed; t=1299879181; b=dLPJNec5v81oelyzGOY0qPqTlGnQeNfUNBOrV/JKbStr3NqWGI9jH4JAe2YvO2V32lfPNoby1 4MMzZ6EPkaZkZDDSPa+53YbCPQAlqiD9QZZIUe2UNM33HN8yAMgiWEF5aP7MbQnxeVZMfVLEl 9S8qOImu+K5JZqhQQTL0dgLwA='); + } + + // Simple/Relaxed Hash Signing + public function testSigningSimpleRelaxed256() + { + $headerSet = $this->_createHeaderSet(); + $messageContent = 'Hello World'; + $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))).'/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector'); + $signer->setHashAlgorithm('rsa-sha256'); + $signer->setSignatureTimestamp('1299879181'); + $signer->setBodyCanon('relaxed'); + $altered = $signer->getAlteredHeaders(); + $this->assertEquals(array('DKIM-Signature'), $altered); + $signer->reset(); + $signer->setHeaders($headerSet); + $this->assertFalse($headerSet->has('DKIM-Signature')); + $signer->startBody(); + $signer->write($messageContent); + $signer->endBody(); + $signer->addSignature($headerSet); + $this->assertTrue($headerSet->has('DKIM-Signature')); + $dkim = $headerSet->getAll('DKIM-Signature'); + $sig = reset($dkim); + $this->assertEquals($sig->getValue(), 'v=1; a=rsa-sha256; bh=f+W+hu8dIhf2VAni89o8lF6WKTXi7nViA4RrMdpD5/U=; d=dummy.nxdomain.be; h=; i=@dummy.nxdomain.be; s=dummySelector; c=simple/relaxed; t=1299879181; b=M5eomH/zamyzix9kOes+6YLzQZxuJdBP4x3nP9zF2N26eMLG2/cBKbnNyqiOTDhJdYfWPbLIa 1CWnjST0j5p4CpeOkGYuiE+M4TWEZwhRmRWootlPO3Ii6XpbBJKFk1o9zviS7OmXblUUE4aqb yRSIMDhtLdCK5GlaCneFLN7RQ='); + } + + // -- Creation Methods + private function _createHeaderSet() + { + $cache = new Swift_KeyCache_ArrayKeyCache(new Swift_KeyCache_SimpleKeyCacheInputStream()); + $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + $contentEncoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + + $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder(new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')); + $paramEncoder = new Swift_Encoder_Rfc2231Encoder(new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')); + $grammar = new Swift_Mime_Grammar(); + $headers = new Swift_Mime_SimpleHeaderSet(new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $grammar)); + + return $headers; + } + + /** + * @return Swift_Mime_Headers + */ + private function _createHeaders() + { + $x = 0; + $cache = new Swift_KeyCache_ArrayKeyCache(new Swift_KeyCache_SimpleKeyCacheInputStream()); + $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory(); + $contentEncoder = new Swift_Mime_ContentEncoder_Base64ContentEncoder(); + + $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder(new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')); + $paramEncoder = new Swift_Encoder_Rfc2231Encoder(new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')); + $grammar = new Swift_Mime_Grammar(); + $headerFactory = new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $grammar); + $headers = $this->getMockery('Swift_Mime_HeaderSet'); + + $headers->shouldReceive('listAll') + ->zeroOrMoreTimes() + ->andReturn(array('From', 'To', 'Date', 'Subject')); + $headers->shouldReceive('has') + ->zeroOrMoreTimes() + ->with('From') + ->andReturn(true); + $headers->shouldReceive('getAll') + ->zeroOrMoreTimes() + ->with('From') + ->andReturn(array($headerFactory->createMailboxHeader('From', 'test@test.test'))); + $headers->shouldReceive('has') + ->zeroOrMoreTimes() + ->with('To') + ->andReturn(true); + $headers->shouldReceive('getAll') + ->zeroOrMoreTimes() + ->with('To') + ->andReturn(array($headerFactory->createMailboxHeader('To', 'test@test.test'))); + $headers->shouldReceive('has') + ->zeroOrMoreTimes() + ->with('Date') + ->andReturn(true); + $headers->shouldReceive('getAll') + ->zeroOrMoreTimes() + ->with('Date') + ->andReturn(array($headerFactory->createTextHeader('Date', 'Fri, 11 Mar 2011 20:56:12 +0000 (GMT)'))); + $headers->shouldReceive('has') + ->zeroOrMoreTimes() + ->with('Subject') + ->andReturn(true); + $headers->shouldReceive('getAll') + ->zeroOrMoreTimes() + ->with('Subject') + ->andReturn(array($headerFactory->createTextHeader('Subject', 'Foo Bar Text Message'))); + $headers->shouldReceive('addTextHeader') + ->zeroOrMoreTimes() + ->with('DKIM-Signature', \Mockery::any()) + ->andReturn(true); + $headers->shouldReceive('getAll') + ->zeroOrMoreTimes() + ->with('DKIM-Signature') + ->andReturn(array($headerFactory->createTextHeader('DKIM-Signature', 'Foo Bar Text Message'))); + + return $headers; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/OpenDKIMSignerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/OpenDKIMSignerTest.php new file mode 100644 index 0000000..00e48c1 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/OpenDKIMSignerTest.php @@ -0,0 +1,45 @@ +markTestSkipped( + 'Need OpenDKIM extension run these tests.' + ); + } + } + + public function testBasicSigningHeaderManipulation() + { + } + + // Default Signing + public function testSigningDefaults() + { + } + + // SHA256 Signing + public function testSigning256() + { + } + + // Relaxed/Relaxed Hash Signing + public function testSigningRelaxedRelaxed256() + { + } + + // Relaxed/Simple Hash Signing + public function testSigningRelaxedSimple256() + { + } + + // Simple/Relaxed Hash Signing + public function testSigningSimpleRelaxed256() + { + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/SMimeSignerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/SMimeSignerTest.php new file mode 100644 index 0000000..df745ef --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/SMimeSignerTest.php @@ -0,0 +1,554 @@ +replacementFactory = Swift_DependencyContainer::getInstance() + ->lookup('transport.replacementfactory'); + + $this->samplesDir = str_replace('\\', '/', realpath(__DIR__.'/../../../_samples/')).'/'; + } + + public function testUnSingedMessage() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $this->assertEquals('Here is the message itself', $message->getBody()); + } + + public function testSingedMessage() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setSignCertificate($this->samplesDir.'smime/sign.crt', $this->samplesDir.'smime/sign.key'); + $message->attachSigner($signer); + + $messageStream = $this->newFilteredStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!($boundary = $this->getBoundary($headers['content-type']))) { + return false; + } + + $expectedBody = <<assertValidVerify($expectedBody, $messageStream); + unset($messageStream); + } + + public function testSingedMessageExtraCerts() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setSignCertificate($this->samplesDir.'smime/sign2.crt', $this->samplesDir.'smime/sign2.key', PKCS7_DETACHED, $this->samplesDir.'smime/intermediate.crt'); + $message->attachSigner($signer); + + $messageStream = $this->newFilteredStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!($boundary = $this->getBoundary($headers['content-type']))) { + return false; + } + + $expectedBody = <<assertValidVerify($expectedBody, $messageStream); + unset($messageStream); + } + + public function testSingedMessageBinary() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setSignCertificate($this->samplesDir.'smime/sign.crt', $this->samplesDir.'smime/sign.key', PKCS7_BINARY); + $message->attachSigner($signer); + + $messageStream = $this->newFilteredStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!preg_match('#^application/(x\-)?pkcs7-mime; smime-type=signed\-data;#', $headers['content-type'])) { + $this->fail('Content-type does not match.'); + + return false; + } + + $this->assertEquals($headers['content-transfer-encoding'], 'base64'); + $this->assertEquals($headers['content-disposition'], 'attachment; filename="smime.p7m"'); + + $expectedBody = '(?:^[a-zA-Z0-9\/\\r\\n+]*={0,2})'; + + $messageStreamClean = $this->newFilteredStream(); + + $this->assertValidVerify($expectedBody, $messageStream); + unset($messageStreamClean, $messageStream); + } + + public function testSingedMessageWithAttachments() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $message->attach(Swift_Attachment::fromPath($this->samplesDir.'/files/textfile.zip')); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setSignCertificate($this->samplesDir.'smime/sign.crt', $this->samplesDir.'smime/sign.key'); + $message->attachSigner($signer); + + $messageStream = $this->newFilteredStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!($boundary = $this->getBoundary($headers['content-type']))) { + return false; + } + + $expectedBody = <<assertValidVerify($expectedBody, $messageStream); + unset($messageStream); + } + + public function testEncryptedMessage() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $originalMessage = $this->cleanMessage($message->toString()); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setEncryptCertificate($this->samplesDir.'smime/encrypt.crt'); + $message->attachSigner($signer); + + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!preg_match('#^application/(x\-)?pkcs7-mime; smime-type=enveloped\-data;#', $headers['content-type'])) { + $this->fail('Content-type does not match.'); + + return false; + } + + $expectedBody = '(?:^[a-zA-Z0-9\/\\r\\n+]*={0,2})'; + + $decryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if (!openssl_pkcs7_decrypt($messageStream->getPath(), $decryptedMessageStream->getPath(), 'file://'.$this->samplesDir.'smime/encrypt.crt', array('file://'.$this->samplesDir.'smime/encrypt.key', 'swift'))) { + $this->fail(sprintf('Decrypt of the message failed. Internal error "%s".', openssl_error_string())); + } + + $this->assertEquals($originalMessage, $decryptedMessageStream->getContent()); + unset($decryptedMessageStream, $messageStream); + } + + public function testEncryptedMessageWithMultipleCerts() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $originalMessage = $this->cleanMessage($message->toString()); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setEncryptCertificate(array($this->samplesDir.'smime/encrypt.crt', $this->samplesDir.'smime/encrypt2.crt')); + $message->attachSigner($signer); + + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!preg_match('#^application/(x\-)?pkcs7-mime; smime-type=enveloped\-data;#', $headers['content-type'])) { + $this->fail('Content-type does not match.'); + + return false; + } + + $expectedBody = '(?:^[a-zA-Z0-9\/\\r\\n+]*={0,2})'; + + $decryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if (!openssl_pkcs7_decrypt($messageStream->getPath(), $decryptedMessageStream->getPath(), 'file://'.$this->samplesDir.'smime/encrypt.crt', array('file://'.$this->samplesDir.'smime/encrypt.key', 'swift'))) { + $this->fail(sprintf('Decrypt of the message failed. Internal error "%s".', openssl_error_string())); + } + + $this->assertEquals($originalMessage, $decryptedMessageStream->getContent()); + unset($decryptedMessageStream); + + $decryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if (!openssl_pkcs7_decrypt($messageStream->getPath(), $decryptedMessageStream->getPath(), 'file://'.$this->samplesDir.'smime/encrypt2.crt', array('file://'.$this->samplesDir.'smime/encrypt2.key', 'swift'))) { + $this->fail(sprintf('Decrypt of the message failed. Internal error "%s".', openssl_error_string())); + } + + $this->assertEquals($originalMessage, $decryptedMessageStream->getContent()); + unset($decryptedMessageStream, $messageStream); + } + + public function testSignThenEncryptedMessage() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $signer = new Swift_Signers_SMimeSigner(); + $signer->setSignCertificate($this->samplesDir.'smime/sign.crt', $this->samplesDir.'smime/sign.key'); + $signer->setEncryptCertificate($this->samplesDir.'smime/encrypt.crt'); + $message->attachSigner($signer); + + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!preg_match('#^application/(x\-)?pkcs7-mime; smime-type=enveloped\-data;#', $headers['content-type'])) { + $this->fail('Content-type does not match.'); + + return false; + } + + $expectedBody = '(?:^[a-zA-Z0-9\/\\r\\n+]*={0,2})'; + + $decryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if (!openssl_pkcs7_decrypt($messageStream->getPath(), $decryptedMessageStream->getPath(), 'file://'.$this->samplesDir.'smime/encrypt.crt', array('file://'.$this->samplesDir.'smime/encrypt.key', 'swift'))) { + $this->fail(sprintf('Decrypt of the message failed. Internal error "%s".', openssl_error_string())); + } + + $entityString = $decryptedMessageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!($boundary = $this->getBoundary($headers['content-type']))) { + return false; + } + + $expectedBody = <<assertValidVerify($expectedBody, $decryptedMessageStream)) { + return false; + } + + unset($decryptedMessageStream, $messageStream); + } + + public function testEncryptThenSignMessage() + { + $message = Swift_SignedMessage::newInstance('Wonderful Subject') + ->setFrom(array('john@doe.com' => 'John Doe')) + ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) + ->setBody('Here is the message itself'); + + $originalMessage = $this->cleanMessage($message->toString()); + + $signer = Swift_Signers_SMimeSigner::newInstance(); + $signer->setSignCertificate($this->samplesDir.'smime/sign.crt', $this->samplesDir.'smime/sign.key'); + $signer->setEncryptCertificate($this->samplesDir.'smime/encrypt.crt'); + $signer->setSignThenEncrypt(false); + $message->attachSigner($signer); + + $messageStream = $this->newFilteredStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + $entityString = $messageStream->getContent(); + $headers = self::getHeadersOfMessage($entityString); + + if (!($boundary = $this->getBoundary($headers['content-type']))) { + return false; + } + + $expectedBody = <<MIME-Version: 1\.0 +Content-Disposition: attachment; filename="smime\.p7m" +Content-Type: application/(x\-)?pkcs7-mime; smime-type=enveloped-data; name="smime\.p7m" +Content-Transfer-Encoding: base64 + +(?:^[a-zA-Z0-9\/\\r\\n+]*={0,2}) + + +)--$boundary +Content-Type: application/(x\-)?pkcs7-signature; name="smime\.p7s" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="smime\.p7s" + +(?:^[a-zA-Z0-9\/\\r\\n+]*={0,2}) + +--$boundary-- +OEL; + + if (!$this->assertValidVerify($expectedBody, $messageStream)) { + return false; + } + + $expectedBody = str_replace("\n", "\r\n", $expectedBody); + if (!preg_match('%'.$expectedBody.'*%m', $entityString, $entities)) { + $this->fail('Failed regex match.'); + + return false; + } + + $messageStreamClean = new Swift_ByteStream_TemporaryFileByteStream(); + $messageStreamClean->write($entities['encrypted_message']); + + $decryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + if (!openssl_pkcs7_decrypt($messageStreamClean->getPath(), $decryptedMessageStream->getPath(), 'file://'.$this->samplesDir.'smime/encrypt.crt', array('file://'.$this->samplesDir.'smime/encrypt.key', 'swift'))) { + $this->fail(sprintf('Decrypt of the message failed. Internal error "%s".', openssl_error_string())); + } + + $this->assertEquals($originalMessage, $decryptedMessageStream->getContent()); + unset($messageStreamClean, $messageStream, $decryptedMessageStream); + } + + protected function assertValidVerify($expected, Swift_ByteStream_TemporaryFileByteStream $messageStream) + { + $actual = $messageStream->getContent(); + + // File is UNIX encoded so convert them to correct line ending + $expected = str_replace("\n", "\r\n", $expected); + + $actual = trim(self::getBodyOfMessage($actual)); + if (!$this->assertRegExp('%^'.$expected.'$\s*%m', $actual)) { + return false; + } + + $opensslOutput = new Swift_ByteStream_TemporaryFileByteStream(); + $verify = openssl_pkcs7_verify($messageStream->getPath(), null, $opensslOutput->getPath(), array($this->samplesDir.'smime/ca.crt')); + + if (false === $verify) { + $this->fail('Verification of the message failed.'); + + return false; + } elseif (-1 === $verify) { + $this->fail(sprintf('Verification of the message failed. Internal error "%s".', openssl_error_string())); + + return false; + } + + return true; + } + + protected function getBoundary($contentType) + { + if (!preg_match('/boundary=("[^"]+"|(?:[^\s]+|$))/is', $contentType, $contentTypeData)) { + $this->fail('Failed to find Boundary parameter'); + + return false; + } + + return trim($contentTypeData[1], '"'); + } + + protected function newFilteredStream() + { + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $messageStream->addFilter($this->replacementFactory->createFilter("\r\n", "\n"), 'CRLF to LF'); + $messageStream->addFilter($this->replacementFactory->createFilter("\n", "\r\n"), 'LF to CRLF'); + + return $messageStream; + } + + protected static function getBodyOfMessage($message) + { + return substr($message, strpos($message, "\r\n\r\n")); + } + + /** + * Strips of the sender headers and Mime-Version. + * + * @param Swift_ByteStream_TemporaryFileByteStream $messageStream + * @param Swift_ByteStream_TemporaryFileByteStream $inputStream + */ + protected function cleanMessage($content) + { + $newContent = ''; + + $headers = self::getHeadersOfMessage($content); + foreach ($headers as $headerName => $value) { + if (!in_array($headerName, array('content-type', 'content-transfer-encoding', 'content-disposition'))) { + continue; + } + + $headerName = explode('-', $headerName); + $headerName = array_map('ucfirst', $headerName); + $headerName = implode('-', $headerName); + + if (strlen($value) > 62) { + $value = wordwrap($value, 62, "\n "); + } + + $newContent .= "$headerName: $value\r\n"; + } + + return $newContent."\r\n".ltrim(self::getBodyOfMessage($content)); + } + + /** + * Returns the headers of the message. + * + * Header-names are lowercase. + * + * @param string $message + * + * @return array + */ + protected static function getHeadersOfMessage($message) + { + $headersPosEnd = strpos($message, "\r\n\r\n"); + $headerData = substr($message, 0, $headersPosEnd); + $headerLines = explode("\r\n", $headerData); + + if (empty($headerLines)) { + return array(); + } + + $headers = array(); + + foreach ($headerLines as $headerLine) { + if (ctype_space($headerLines[0]) || false === strpos($headerLine, ':')) { + $headers[$currentHeaderName] .= ' '.trim($headerLine); + continue; + } + + $header = explode(':', $headerLine, 2); + $currentHeaderName = strtolower($header[0]); + $headers[$currentHeaderName] = trim($header[1]); + } + + return $headers; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/ByteArrayReplacementFilterTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/ByteArrayReplacementFilterTest.php new file mode 100644 index 0000000..e4d4f48 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/ByteArrayReplacementFilterTest.php @@ -0,0 +1,131 @@ +_createFilter(array(0x61, 0x62), array(0x63, 0x64)); + $this->assertEquals( + array(0x59, 0x60, 0x63, 0x64, 0x65), + $filter->filter(array(0x59, 0x60, 0x61, 0x62, 0x65)) + ); + } + + public function testShouldBufferReturnsTrueIfPartialMatchAtEndOfBuffer() + { + $filter = $this->_createFilter(array(0x61, 0x62), array(0x63, 0x64)); + $this->assertTrue($filter->shouldBuffer(array(0x59, 0x60, 0x61)), + '%s: Filter should buffer since 0x61 0x62 is the needle and the ending '. + '0x61 could be from 0x61 0x62' + ); + } + + public function testFilterCanMakeMultipleReplacements() + { + $filter = $this->_createFilter(array(array(0x61), array(0x62)), array(0x63)); + $this->assertEquals( + array(0x60, 0x63, 0x60, 0x63, 0x60), + $filter->filter(array(0x60, 0x61, 0x60, 0x62, 0x60)) + ); + } + + public function testMultipleReplacementsCanBeDifferent() + { + $filter = $this->_createFilter(array(array(0x61), array(0x62)), array(array(0x63), array(0x64))); + $this->assertEquals( + array(0x60, 0x63, 0x60, 0x64, 0x60), + $filter->filter(array(0x60, 0x61, 0x60, 0x62, 0x60)) + ); + } + + public function testShouldBufferReturnsFalseIfPartialMatchNotAtEndOfString() + { + $filter = $this->_createFilter(array(0x0D, 0x0A), array(0x0A)); + $this->assertFalse($filter->shouldBuffer(array(0x61, 0x62, 0x0D, 0x0A, 0x63)), + '%s: Filter should not buffer since x0Dx0A is the needle and is not at EOF' + ); + } + + public function testShouldBufferReturnsTrueIfAnyOfMultipleMatchesAtEndOfString() + { + $filter = $this->_createFilter(array(array(0x61, 0x62), array(0x63)), array(0x64)); + $this->assertTrue($filter->shouldBuffer(array(0x59, 0x60, 0x61)), + '%s: Filter should buffer since 0x61 0x62 is a needle and the ending '. + '0x61 could be from 0x61 0x62' + ); + } + + public function testConvertingAllLineEndingsToCRLFWhenInputIsLF() + { + $filter = $this->_createFilter( + array(array(0x0D, 0x0A), array(0x0D), array(0x0A)), + array(array(0x0A), array(0x0A), array(0x0D, 0x0A)) + ); + + $this->assertEquals( + array(0x60, 0x0D, 0x0A, 0x61, 0x0D, 0x0A, 0x62, 0x0D, 0x0A, 0x63), + $filter->filter(array(0x60, 0x0A, 0x61, 0x0A, 0x62, 0x0A, 0x63)) + ); + } + + public function testConvertingAllLineEndingsToCRLFWhenInputIsCR() + { + $filter = $this->_createFilter( + array(array(0x0D, 0x0A), array(0x0D), array(0x0A)), + array(array(0x0A), array(0x0A), array(0x0D, 0x0A)) + ); + + $this->assertEquals( + array(0x60, 0x0D, 0x0A, 0x61, 0x0D, 0x0A, 0x62, 0x0D, 0x0A, 0x63), + $filter->filter(array(0x60, 0x0D, 0x61, 0x0D, 0x62, 0x0D, 0x63)) + ); + } + + public function testConvertingAllLineEndingsToCRLFWhenInputIsCRLF() + { + $filter = $this->_createFilter( + array(array(0x0D, 0x0A), array(0x0D), array(0x0A)), + array(array(0x0A), array(0x0A), array(0x0D, 0x0A)) + ); + + $this->assertEquals( + array(0x60, 0x0D, 0x0A, 0x61, 0x0D, 0x0A, 0x62, 0x0D, 0x0A, 0x63), + $filter->filter(array(0x60, 0x0D, 0x0A, 0x61, 0x0D, 0x0A, 0x62, 0x0D, 0x0A, 0x63)) + ); + } + + public function testConvertingAllLineEndingsToCRLFWhenInputIsLFCR() + { + $filter = $this->_createFilter( + array(array(0x0D, 0x0A), array(0x0D), array(0x0A)), + array(array(0x0A), array(0x0A), array(0x0D, 0x0A)) + ); + + $this->assertEquals( + array(0x60, 0x0D, 0x0A, 0x0D, 0x0A, 0x61, 0x0D, 0x0A, 0x0D, 0x0A, 0x62, 0x0D, 0x0A, 0x0D, 0x0A, 0x63), + $filter->filter(array(0x60, 0x0A, 0x0D, 0x61, 0x0A, 0x0D, 0x62, 0x0A, 0x0D, 0x63)) + ); + } + + public function testConvertingAllLineEndingsToCRLFWhenInputContainsLFLF() + { + //Lighthouse Bug #23 + + $filter = $this->_createFilter( + array(array(0x0D, 0x0A), array(0x0D), array(0x0A)), + array(array(0x0A), array(0x0A), array(0x0D, 0x0A)) + ); + + $this->assertEquals( + array(0x60, 0x0D, 0x0A, 0x0D, 0x0A, 0x61, 0x0D, 0x0A, 0x0D, 0x0A, 0x62, 0x0D, 0x0A, 0x0D, 0x0A, 0x63), + $filter->filter(array(0x60, 0x0A, 0x0A, 0x61, 0x0A, 0x0A, 0x62, 0x0A, 0x0A, 0x63)) + ); + } + + // -- Creation methods + + private function _createFilter($search, $replace) + { + return new Swift_StreamFilters_ByteArrayReplacementFilter($search, $replace); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterFactoryTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterFactoryTest.php new file mode 100644 index 0000000..bd44f5c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterFactoryTest.php @@ -0,0 +1,38 @@ +_createFactory(); + $this->assertInstanceof( + 'Swift_StreamFilters_StringReplacementFilter', + $factory->createFilter('a', 'b') + ); + } + + public function testSameInstancesAreCached() + { + $factory = $this->_createFactory(); + $filter1 = $factory->createFilter('a', 'b'); + $filter2 = $factory->createFilter('a', 'b'); + $this->assertSame($filter1, $filter2, '%s: Instances should be cached'); + } + + public function testDifferingInstancesAreNotCached() + { + $factory = $this->_createFactory(); + $filter1 = $factory->createFilter('a', 'b'); + $filter2 = $factory->createFilter('a', 'c'); + $this->assertNotEquals($filter1, $filter2, + '%s: Differing instances should not be cached' + ); + } + + // -- Creation methods + + private function _createFactory() + { + return new Swift_StreamFilters_StringReplacementFilterFactory(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterTest.php new file mode 100644 index 0000000..7a98a2f --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterTest.php @@ -0,0 +1,55 @@ +_createFilter('foo', 'bar'); + $this->assertEquals('XbarYbarZ', $filter->filter('XfooYfooZ')); + } + + public function testShouldBufferReturnsTrueIfPartialMatchAtEndOfBuffer() + { + $filter = $this->_createFilter('foo', 'bar'); + $this->assertTrue($filter->shouldBuffer('XfooYf'), + '%s: Filter should buffer since "foo" is the needle and the ending '. + '"f" could be from "foo"' + ); + } + + public function testFilterCanMakeMultipleReplacements() + { + $filter = $this->_createFilter(array('a', 'b'), 'foo'); + $this->assertEquals('XfooYfooZ', $filter->filter('XaYbZ')); + } + + public function testMultipleReplacementsCanBeDifferent() + { + $filter = $this->_createFilter(array('a', 'b'), array('foo', 'zip')); + $this->assertEquals('XfooYzipZ', $filter->filter('XaYbZ')); + } + + public function testShouldBufferReturnsFalseIfPartialMatchNotAtEndOfString() + { + $filter = $this->_createFilter("\r\n", "\n"); + $this->assertFalse($filter->shouldBuffer("foo\r\nbar"), + '%s: Filter should not buffer since x0Dx0A is the needle and is not at EOF' + ); + } + + public function testShouldBufferReturnsTrueIfAnyOfMultipleMatchesAtEndOfString() + { + $filter = $this->_createFilter(array('foo', 'zip'), 'bar'); + $this->assertTrue($filter->shouldBuffer('XfooYzi'), + '%s: Filter should buffer since "zip" is a needle and the ending '. + '"zi" could be from "zip"' + ); + } + + // -- Creation methods + + private function _createFilter($search, $replace) + { + return new Swift_StreamFilters_StringReplacementFilter($search, $replace); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpEventSupportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpEventSupportTest.php new file mode 100644 index 0000000..121aaba --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpEventSupportTest.php @@ -0,0 +1,560 @@ +_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $listener = $this->getMockery('Swift_Events_EventListener'); + $smtp = $this->_getTransport($buf, $dispatcher); + $dispatcher->shouldReceive('bindEventListener') + ->once() + ->with($listener); + + $smtp->registerPlugin($listener); + } + + public function testSendingDispatchesBeforeSendEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $message = $this->_createMessage(); + $smtp = $this->_getTransport($buf, $dispatcher); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('mark@swiftmailer.org' => 'Mark')); + $dispatcher->shouldReceive('createSendEvent') + ->once() + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'beforeSendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(1, $smtp->send($message)); + } + + public function testSendingDispatchesSendEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $message = $this->_createMessage(); + $smtp = $this->_getTransport($buf, $dispatcher); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('mark@swiftmailer.org' => 'Mark')); + $dispatcher->shouldReceive('createSendEvent') + ->once() + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'sendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturn(false); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(1, $smtp->send($message)); + } + + public function testSendEventCapturesFailures() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('mark@swiftmailer.org' => 'Mark')); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("500 Not now\r\n"); + $dispatcher->shouldReceive('createSendEvent') + ->zeroOrMoreTimes() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'sendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturn(false); + $evt->shouldReceive('setFailedRecipients') + ->once() + ->with(array('mark@swiftmailer.org')); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(0, $smtp->send($message)); + } + + public function testSendEventHasResultFailedIfAllFailures() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('mark@swiftmailer.org' => 'Mark')); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("500 Not now\r\n"); + $dispatcher->shouldReceive('createSendEvent') + ->zeroOrMoreTimes() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'sendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturn(false); + $evt->shouldReceive('setResult') + ->once() + ->with(Swift_Events_SendEvent::RESULT_FAILED); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(0, $smtp->send($message)); + } + + public function testSendEventHasResultTentativeIfSomeFailures() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array( + 'mark@swiftmailer.org' => 'Mark', + 'chris@site.tld' => 'Chris', + )); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("500 Not now\r\n"); + $dispatcher->shouldReceive('createSendEvent') + ->zeroOrMoreTimes() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'sendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturn(false); + $evt->shouldReceive('setResult') + ->once() + ->with(Swift_Events_SendEvent::RESULT_TENTATIVE); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(1, $smtp->send($message)); + } + + public function testSendEventHasResultSuccessIfNoFailures() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array( + 'mark@swiftmailer.org' => 'Mark', + 'chris@site.tld' => 'Chris', + )); + $dispatcher->shouldReceive('createSendEvent') + ->zeroOrMoreTimes() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'sendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturn(false); + $evt->shouldReceive('setResult') + ->once() + ->with(Swift_Events_SendEvent::RESULT_SUCCESS); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(2, $smtp->send($message)); + } + + public function testCancellingEventBubbleBeforeSendStopsEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_SendEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('chris@swiftmailer.org' => null)); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('mark@swiftmailer.org' => 'Mark')); + $dispatcher->shouldReceive('createSendEvent') + ->zeroOrMoreTimes() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'beforeSendPerformed'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->atLeast()->once() + ->andReturn(true); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(0, $smtp->send($message)); + } + + public function testStartingTransportDispatchesTransportChangeEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportChangeEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createTransportChangeEvent') + ->atLeast()->once() + ->with($smtp) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'transportStarted'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->atLeast()->once() + ->andReturn(false); + + $this->_finishBuffer($buf); + $smtp->start(); + } + + public function testStartingTransportDispatchesBeforeTransportChangeEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportChangeEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createTransportChangeEvent') + ->atLeast()->once() + ->with($smtp) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'beforeTransportStarted'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->atLeast()->once() + ->andReturn(false); + + $this->_finishBuffer($buf); + $smtp->start(); + } + + public function testCancellingBubbleBeforeTransportStartStopsEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportChangeEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createTransportChangeEvent') + ->atLeast()->once() + ->with($smtp) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'beforeTransportStarted'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->atLeast()->once() + ->andReturn(true); + + $this->_finishBuffer($buf); + $smtp->start(); + + $this->assertFalse($smtp->isStarted(), + '%s: Transport should not be started since event bubble was cancelled' + ); + } + + public function testStoppingTransportDispatchesTransportChangeEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportChangeEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createTransportChangeEvent') + ->atLeast()->once() + ->with($smtp) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'transportStopped'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->stop(); + } + + public function testStoppingTransportDispatchesBeforeTransportChangeEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportChangeEvent')->shouldIgnoreMissing(); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createTransportChangeEvent') + ->atLeast()->once() + ->with($smtp) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'beforeTransportStopped'); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->stop(); + } + + public function testCancellingBubbleBeforeTransportStoppedStopsEvent() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportChangeEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $hasRun = false; + $dispatcher->shouldReceive('createTransportChangeEvent') + ->atLeast()->once() + ->with($smtp) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'beforeTransportStopped') + ->andReturnUsing(function () use (&$hasRun) { + $hasRun = true; + }); + $dispatcher->shouldReceive('dispatchEvent') + ->zeroOrMoreTimes(); + $evt->shouldReceive('bubbleCancelled') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$hasRun) { + return $hasRun; + }); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->stop(); + + $this->assertTrue($smtp->isStarted(), + '%s: Transport should not be stopped since event bubble was cancelled' + ); + } + + public function testResponseEventsAreGenerated() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_ResponseEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createResponseEvent') + ->atLeast()->once() + ->with($smtp, \Mockery::any(), \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->atLeast()->once() + ->with($evt, 'responseReceived'); + + $this->_finishBuffer($buf); + $smtp->start(); + } + + public function testCommandEventsAreGenerated() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_CommandEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $dispatcher->shouldReceive('createCommandEvent') + ->once() + ->with($smtp, \Mockery::any(), \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'commandSent'); + + $this->_finishBuffer($buf); + $smtp->start(); + } + + public function testExceptionsCauseExceptionEvents() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportExceptionEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $buf->shouldReceive('readLine') + ->atLeast()->once() + ->andReturn("503 I'm sleepy, go away!\r\n"); + $dispatcher->shouldReceive('createTransportExceptionEvent') + ->zeroOrMoreTimes() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->once() + ->with($evt, 'exceptionThrown'); + $evt->shouldReceive('bubbleCancelled') + ->atLeast()->once() + ->andReturn(false); + + try { + $smtp->start(); + $this->fail('TransportException should be thrown on invalid response'); + } catch (Swift_TransportException $e) { + } + } + + public function testExceptionBubblesCanBeCancelled() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(false); + $evt = $this->getMockery('Swift_Events_TransportExceptionEvent'); + $smtp = $this->_getTransport($buf, $dispatcher); + + $buf->shouldReceive('readLine') + ->atLeast()->once() + ->andReturn("503 I'm sleepy, go away!\r\n"); + $dispatcher->shouldReceive('createTransportExceptionEvent') + ->twice() + ->with($smtp, \Mockery::any()) + ->andReturn($evt); + $dispatcher->shouldReceive('dispatchEvent') + ->twice() + ->with($evt, 'exceptionThrown'); + $evt->shouldReceive('bubbleCancelled') + ->atLeast()->once() + ->andReturn(true); + + $this->_finishBuffer($buf); + $smtp->start(); + } + + // -- Creation Methods + + protected function _createEventDispatcher($stub = true) + { + return $this->getMockery('Swift_Events_EventDispatcher')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpTest.php new file mode 100644 index 0000000..f49b489 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpTest.php @@ -0,0 +1,1249 @@ +_getBuffer(); + $smtp = $this->_getTransport($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + + $this->_finishBuffer($buf); + try { + $this->assertFalse($smtp->isStarted(), '%s: SMTP should begin non-started'); + $smtp->start(); + $this->assertTrue($smtp->isStarted(), '%s: start() should have started connection'); + } catch (Exception $e) { + $this->fail('220 is a valid SMTP greeting and should be accepted'); + } + } + + public function testBadGreetingCausesException() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("554 I'm busy\r\n"); + $this->_finishBuffer($buf); + try { + $this->assertFalse($smtp->isStarted(), '%s: SMTP should begin non-started'); + $smtp->start(); + $this->fail('554 greeting indicates an error and should cause an exception'); + } catch (Exception $e) { + $this->assertFalse($smtp->isStarted(), '%s: start() should have failed'); + } + } + + public function testStartSendsHeloToInitiate() + { + /* -- RFC 2821, 3.2. + + 3.2 Client Initiation + + Once the server has sent the welcoming message and the client has + received it, the client normally sends the EHLO command to the + server, indicating the client's identity. In addition to opening the + session, use of EHLO indicates that the client is able to process + service extensions and requests that the server provide a list of the + extensions it supports. Older SMTP systems which are unable to + support service extensions and contemporary clients which do not + require service extensions in the mail session being initiated, MAY + use HELO instead of EHLO. Servers MUST NOT return the extended + EHLO-style response to a HELO command. For a particular connection + attempt, if the server returns a "command not recognized" response to + EHLO, the client SHOULD be able to fall back and send HELO. + + In the EHLO command the host sending the command identifies itself; + the command may be interpreted as saying "Hello, I am " (and, + in the case of EHLO, "and I support service extension requests"). + + -- RFC 2281, 4.1.1.1. + + ehlo = "EHLO" SP Domain CRLF + helo = "HELO" SP Domain CRLF + + -- RFC 2821, 4.3.2. + + EHLO or HELO + S: 250 + E: 504, 550 + + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^HELO .*?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 ServerName'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + } catch (Exception $e) { + $this->fail('Starting SMTP should send HELO and accept 250 response'); + } + } + + public function testInvalidHeloResponseCausesException() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^HELO .*?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('504 WTF'."\r\n"); + + $this->_finishBuffer($buf); + try { + $this->assertFalse($smtp->isStarted(), '%s: SMTP should begin non-started'); + $smtp->start(); + $this->fail('Non 250 HELO response should raise Exception'); + } catch (Exception $e) { + $this->assertFalse($smtp->isStarted(), '%s: SMTP start() should have failed'); + } + } + + public function testDomainNameIsPlacedInHelo() + { + /* -- RFC 2821, 4.1.4. + + The SMTP client MUST, if possible, ensure that the domain parameter + to the EHLO command is a valid principal host name (not a CNAME or MX + name) for its host. If this is not possible (e.g., when the client's + address is dynamically assigned and the client does not have an + obvious name), an address literal SHOULD be substituted for the + domain name and supplemental information provided that will assist in + identifying the client. + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("HELO mydomain.com\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 ServerName'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->setLocalDomain('mydomain.com'); + $smtp->start(); + } + + public function testSuccessfulMailCommand() + { + /* -- RFC 2821, 3.3. + + There are three steps to SMTP mail transactions. The transaction + starts with a MAIL command which gives the sender identification. + + ..... + + The first step in the procedure is the MAIL command. + + MAIL FROM: [SP ] + + -- RFC 2821, 4.1.1.2. + + Syntax: + + "MAIL FROM:" ("<>" / Reverse-Path) + [SP Mail-parameters] CRLF + -- RFC 2821, 4.1.2. + + Reverse-path = Path + Forward-path = Path + Path = "<" [ A-d-l ":" ] Mailbox ">" + A-d-l = At-domain *( "," A-d-l ) + ; Note that this form, the so-called "source route", + ; MUST BE accepted, SHOULD NOT be generated, and SHOULD be + ; ignored. + At-domain = "@" domain + + -- RFC 2821, 4.3.2. + + MAIL + S: 250 + E: 552, 451, 452, 550, 553, 503 + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 OK\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + $smtp->send($message); + } catch (Exception $e) { + $this->fail('MAIL FROM should accept a 250 response'); + } + } + + public function testInvalidResponseCodeFromMailCausesException() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('553 Bad'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + $smtp->send($message); + $this->fail('MAIL FROM should accept a 250 response'); + } catch (Exception $e) { + } + } + + public function testSenderIsPreferredOverFrom() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getSender') + ->once() + ->andReturn(array('another@domain.com' => 'Someone')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testReturnPathIsPreferredOverSender() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getSender') + ->once() + ->andReturn(array('another@domain.com' => 'Someone')); + $message->shouldReceive('getReturnPath') + ->once() + ->andReturn('more@domain.com'); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testSuccessfulRcptCommandWith250Response() + { + /* -- RFC 2821, 3.3. + + The second step in the procedure is the RCPT command. + + RCPT TO: [ SP ] + + The first or only argument to this command includes a forward-path + (normally a mailbox and domain, always surrounded by "<" and ">" + brackets) identifying one recipient. If accepted, the SMTP server + returns a 250 OK reply and stores the forward-path. If the recipient + is known not to be a deliverable address, the SMTP server returns a + 550 reply, typically with a string such as "no such user - " and the + mailbox name (other circumstances and reply codes are possible). + This step of the procedure can be repeated any number of times. + + -- RFC 2821, 4.1.1.3. + + This command is used to identify an individual recipient of the mail + data; multiple recipients are specified by multiple use of this + command. The argument field contains a forward-path and may contain + optional parameters. + + The forward-path normally consists of the required destination + mailbox. Sending systems SHOULD not generate the optional list of + hosts known as a source route. + + ....... + + "RCPT TO:" ("" / "" / Forward-Path) + [SP Rcpt-parameters] CRLF + + -- RFC 2821, 4.2.2. + + 250 Requested mail action okay, completed + 251 User not local; will forward to + (See section 3.4) + 252 Cannot VRFY user, but will accept message and attempt + delivery + + -- RFC 2821, 4.3.2. + + RCPT + S: 250, 251 (but see section 3.4 for discussion of 251 and 551) + E: 550, 551, 552, 553, 450, 451, 452, 503, 550 + */ + + //We'll treat 252 as accepted since it isn't really a failure + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + $smtp->send($message); + } catch (Exception $e) { + $this->fail('RCPT TO should accept a 250 response'); + } + } + + public function testMailFromCommandIsOnlySentOncePerMessage() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->never() + ->with("MAIL FROM:\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testMultipleRecipientsSendsMultipleRcpt() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array( + 'foo@bar' => null, + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(3); + $buf->shouldReceive('readLine') + ->once() + ->with(3) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testCcRecipientsSendsMultipleRcpt() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('getCc') + ->once() + ->andReturn(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(3); + $buf->shouldReceive('readLine') + ->once() + ->with(3) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testSendReturnsNumberOfSuccessfulRecipients() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('getCc') + ->once() + ->andReturn(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('501 Nobody here'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(3); + $buf->shouldReceive('readLine') + ->once() + ->with(3) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(2, $smtp->send($message), + '%s: 1 of 3 recipients failed so 2 should be returned' + ); + } + + public function testRsetIsSentIfNoSuccessfulRecipients() + { + /* --RFC 2821, 4.1.1.5. + + This command specifies that the current mail transaction will be + aborted. Any stored sender, recipients, and mail data MUST be + discarded, and all buffers and state tables cleared. The receiver + MUST send a "250 OK" reply to a RSET command with no arguments. A + reset command may be issued by the client at any time. + + -- RFC 2821, 4.3.2. + + RSET + S: 250 + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('503 Bad'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RSET\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(0, $smtp->send($message), + '%s: 1 of 1 recipients failed so 0 should be returned' + ); + } + + public function testSuccessfulDataCommand() + { + /* -- RFC 2821, 3.3. + + The third step in the procedure is the DATA command (or some + alternative specified in a service extension). + + DATA + + If accepted, the SMTP server returns a 354 Intermediate reply and + considers all succeeding lines up to but not including the end of + mail data indicator to be the message text. + + -- RFC 2821, 4.1.1.4. + + The receiver normally sends a 354 response to DATA, and then treats + the lines (strings ending in sequences, as described in + section 2.3.7) following the command as mail data from the sender. + This command causes the mail data to be appended to the mail data + buffer. The mail data may contain any of the 128 ASCII character + codes, although experience has indicated that use of control + characters other than SP, HT, CR, and LF may cause problems and + SHOULD be avoided when possible. + + -- RFC 2821, 4.3.2. + + DATA + I: 354 -> data -> S: 250 + E: 552, 554, 451, 452 + E: 451, 554, 503 + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("DATA\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('354 Go ahead'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + $smtp->send($message); + } catch (Exception $e) { + $this->fail('354 is the expected response to DATA'); + } + } + + public function testBadDataResponseCausesException() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("DATA\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('451 Bad'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + $smtp->send($message); + $this->fail('354 is the expected response to DATA (not observed)'); + } catch (Exception $e) { + } + } + + public function testMessageIsStreamedToBufferForData() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("DATA\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('354 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("\r\n.\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 OK'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testBadResponseAfterDataTransmissionCausesException() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->once() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->once() + ->andReturn(array('foo@bar' => null)); + $buf->shouldReceive('write') + ->once() + ->with("DATA\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('354 OK'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("\r\n.\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('554 Error'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + $smtp->send($message); + $this->fail('250 is the expected response after a DATA transmission (not observed)'); + } catch (Exception $e) { + } + } + + public function testBccRecipientsAreRemovedFromHeaders() + { + /* -- RFC 2821, 7.2. + + Addresses that do not appear in the message headers may appear in the + RCPT commands to an SMTP server for a number of reasons. The two + most common involve the use of a mailing address as a "list exploder" + (a single address that resolves into multiple addresses) and the + appearance of "blind copies". Especially when more than one RCPT + command is present, and in order to avoid defeating some of the + purpose of these mechanisms, SMTP clients and servers SHOULD NOT copy + the full set of RCPT command arguments into the headers, either as + part of trace headers or as informational or private-extension + headers. Since this rule is often violated in practice, and cannot + be enforced, sending SMTP systems that are aware of "bcc" use MAY + find it helpful to send each blind copy as a separate message + transaction containing only a single RCPT command. + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('getBcc') + ->zeroOrMoreTimes() + ->andReturn(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $message->shouldReceive('setBcc') + ->once() + ->with(array()); + $message->shouldReceive('setBcc') + ->zeroOrMoreTimes(); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + public function testEachBccRecipientIsSentASeparateMessage() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('getBcc') + ->zeroOrMoreTimes() + ->andReturn(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $message->shouldReceive('setBcc') + ->atLeast()->once() + ->with(array()); + $message->shouldReceive('setBcc') + ->once() + ->with(array('zip@button' => 'Zip Button')); + $message->shouldReceive('setBcc') + ->once() + ->with(array('test@domain' => 'Test user')); + $message->shouldReceive('setBcc') + ->atLeast()->once() + ->with(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + + $buf->shouldReceive('write')->once()->with("MAIL FROM:\r\n")->andReturn(1); + $buf->shouldReceive('readLine')->once()->with(1)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("RCPT TO:\r\n")->andReturn(2); + $buf->shouldReceive('readLine')->once()->with(2)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("DATA\r\n")->andReturn(3); + $buf->shouldReceive('readLine')->once()->with(3)->andReturn("354 OK\r\n"); + $buf->shouldReceive('write')->once()->with("\r\n.\r\n")->andReturn(4); + $buf->shouldReceive('readLine')->once()->with(4)->andReturn("250 OK\r\n"); + + $buf->shouldReceive('write')->once()->with("MAIL FROM:\r\n")->andReturn(5); + $buf->shouldReceive('readLine')->once()->with(5)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("RCPT TO:\r\n")->andReturn(6); + $buf->shouldReceive('readLine')->once()->with(6)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("DATA\r\n")->andReturn(7); + $buf->shouldReceive('readLine')->once()->with(7)->andReturn("354 OK\r\n"); + $buf->shouldReceive('write')->once()->with("\r\n.\r\n")->andReturn(8); + $buf->shouldReceive('readLine')->once()->with(8)->andReturn("250 OK\r\n"); + + $buf->shouldReceive('write')->once()->with("MAIL FROM:\r\n")->andReturn(9); + $buf->shouldReceive('readLine')->once()->with(9)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("RCPT TO:\r\n")->andReturn(10); + $buf->shouldReceive('readLine')->once()->with(10)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("DATA\r\n")->andReturn(11); + $buf->shouldReceive('readLine')->once()->with(11)->andReturn("354 OK\r\n"); + $buf->shouldReceive('write')->once()->with("\r\n.\r\n")->andReturn(12); + $buf->shouldReceive('readLine')->once()->with(12)->andReturn("250 OK\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(3, $smtp->send($message)); + } + + public function testMessageStateIsRestoredOnFailure() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('getBcc') + ->zeroOrMoreTimes() + ->andReturn(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $message->shouldReceive('setBcc') + ->once() + ->with(array()); + $message->shouldReceive('setBcc') + ->once() + ->with(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("DATA\r\n") + ->andReturn(3); + $buf->shouldReceive('readLine') + ->once() + ->with(3) + ->andReturn("451 No\r\n"); + + $this->_finishBuffer($buf); + + $smtp->start(); + try { + $smtp->send($message); + $this->fail('A bad response was given so exception is expected'); + } catch (Exception $e) { + } + } + + public function testStopSendsQuitCommand() + { + /* -- RFC 2821, 4.1.1.10. + + This command specifies that the receiver MUST send an OK reply, and + then close the transmission channel. + + The receiver MUST NOT intentionally close the transmission channel + until it receives and replies to a QUIT command (even if there was an + error). The sender MUST NOT intentionally close the transmission + channel until it sends a QUIT command and SHOULD wait until it + receives the reply (even if there was an error response to a previous + command). If the connection is closed prematurely due to violations + of the above or system or network failure, the server MUST cancel any + pending transaction, but not undo any previously completed + transaction, and generally MUST act as if the command or transaction + in progress had received a temporary error (i.e., a 4yz response). + + The QUIT command may be issued at any time. + + Syntax: + "QUIT" CRLF + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('write') + ->once() + ->with("QUIT\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("221 Bye\r\n"); + $buf->shouldReceive('terminate') + ->once(); + + $this->_finishBuffer($buf); + + $this->assertFalse($smtp->isStarted()); + $smtp->start(); + $this->assertTrue($smtp->isStarted()); + $smtp->stop(); + $this->assertFalse($smtp->isStarted()); + } + + public function testBufferCanBeFetched() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ref = $smtp->getBuffer(); + $this->assertEquals($buf, $ref); + } + + public function testBufferCanBeWrittenToUsingExecuteCommand() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with("FOO\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with(1) + ->andReturn("250 OK\r\n"); + + $res = $smtp->executeCommand("FOO\r\n"); + $this->assertEquals("250 OK\r\n", $res); + } + + public function testResponseCodesAreValidated() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with("FOO\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with(1) + ->andReturn("551 Not ok\r\n"); + + try { + $smtp->executeCommand("FOO\r\n", array(250, 251)); + $this->fail('A 250 or 251 response was needed but 551 was returned.'); + } catch (Exception $e) { + } + } + + public function testFailedRecipientsCanBeCollectedByReference() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('getBcc') + ->zeroOrMoreTimes() + ->andReturn(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + $message->shouldReceive('setBcc') + ->atLeast()->once() + ->with(array()); + $message->shouldReceive('setBcc') + ->once() + ->with(array('zip@button' => 'Zip Button')); + $message->shouldReceive('setBcc') + ->once() + ->with(array('test@domain' => 'Test user')); + $message->shouldReceive('setBcc') + ->atLeast()->once() + ->with(array( + 'zip@button' => 'Zip Button', + 'test@domain' => 'Test user', + )); + + $buf->shouldReceive('write')->once()->with("MAIL FROM:\r\n")->andReturn(1); + $buf->shouldReceive('readLine')->once()->with(1)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("RCPT TO:\r\n")->andReturn(2); + $buf->shouldReceive('readLine')->once()->with(2)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("DATA\r\n")->andReturn(3); + $buf->shouldReceive('readLine')->once()->with(3)->andReturn("354 OK\r\n"); + $buf->shouldReceive('write')->once()->with("\r\n.\r\n")->andReturn(4); + $buf->shouldReceive('readLine')->once()->with(4)->andReturn("250 OK\r\n"); + + $buf->shouldReceive('write')->once()->with("MAIL FROM:\r\n")->andReturn(5); + $buf->shouldReceive('readLine')->once()->with(5)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("RCPT TO:\r\n")->andReturn(6); + $buf->shouldReceive('readLine')->once()->with(6)->andReturn("500 Bad\r\n"); + $buf->shouldReceive('write')->once()->with("RSET\r\n")->andReturn(7); + $buf->shouldReceive('readLine')->once()->with(7)->andReturn("250 OK\r\n"); + + $buf->shouldReceive('write')->once()->with("MAIL FROM:\r\n")->andReturn(9); + $buf->shouldReceive('readLine')->once()->with(9)->andReturn("250 OK\r\n"); + $buf->shouldReceive('write')->once()->with("RCPT TO:\r\n")->andReturn(10); + $buf->shouldReceive('readLine')->once()->with(10)->andReturn("500 Bad\r\n"); + $buf->shouldReceive('write')->once()->with("RSET\r\n")->andReturn(11); + $buf->shouldReceive('readLine')->once()->with(11)->andReturn("250 OK\r\n"); + + $this->_finishBuffer($buf); + $smtp->start(); + $this->assertEquals(1, $smtp->send($message, $failures)); + $this->assertEquals(array('zip@button', 'test@domain'), $failures, + '%s: Failures should be caught in an array' + ); + } + + public function testSendingRegeneratesMessageId() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $message = $this->_createMessage(); + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain.com' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + $message->shouldReceive('generateId') + ->once(); + + $this->_finishBuffer($buf); + $smtp->start(); + $smtp->send($message); + } + + protected function _getBuffer() + { + return $this->getMockery('Swift_Transport_IoBuffer')->shouldIgnoreMissing(); + } + + protected function _createMessage() + { + return $this->getMockery('Swift_Mime_Message')->shouldIgnoreMissing(); + } + + protected function _finishBuffer($buf) + { + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with(0) + ->andReturn('220 server.com foo'."\r\n"); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with('~^(EH|HE)LO .*?\r\n$~D') + ->andReturn($x = uniqid()); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with($x) + ->andReturn('250 ServerName'."\r\n"); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with('~^MAIL FROM:<.*?>\r\n$~D') + ->andReturn($x = uniqid()); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with($x) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with('~^RCPT TO:<.*?>\r\n$~D') + ->andReturn($x = uniqid()); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with($x) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with("DATA\r\n") + ->andReturn($x = uniqid()); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with($x) + ->andReturn("354 OK\r\n"); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with("\r\n.\r\n") + ->andReturn($x = uniqid()); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with($x) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->with("RSET\r\n") + ->andReturn($x = uniqid()); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->with($x) + ->andReturn("250 OK\r\n"); + + $buf->shouldReceive('write') + ->zeroOrMoreTimes() + ->andReturn(false); + $buf->shouldReceive('readLine') + ->zeroOrMoreTimes() + ->andReturn(false); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/CramMd5AuthenticatorTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/CramMd5AuthenticatorTest.php new file mode 100644 index 0000000..f64b071 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/CramMd5AuthenticatorTest.php @@ -0,0 +1,66 @@ +_agent = $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); + } + + public function testKeywordIsCramMd5() + { + /* -- RFC 2195, 2. + The authentication type associated with CRAM is "CRAM-MD5". + */ + + $cram = $this->_getAuthenticator(); + $this->assertEquals('CRAM-MD5', $cram->getAuthKeyword()); + } + + public function testSuccessfulAuthentication() + { + $cram = $this->_getAuthenticator(); + + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("AUTH CRAM-MD5\r\n", array(334)) + ->andReturn('334 '.base64_encode('')."\r\n"); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with(\Mockery::any(), array(235)); + + $this->assertTrue($cram->authenticate($this->_agent, 'jack', 'pass'), + '%s: The buffer accepted all commands authentication should succeed' + ); + } + + public function testAuthenticationFailureSendRsetAndReturnFalse() + { + $cram = $this->_getAuthenticator(); + + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("AUTH CRAM-MD5\r\n", array(334)) + ->andReturn('334 '.base64_encode('')."\r\n"); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with(\Mockery::any(), array(235)) + ->andThrow(new Swift_TransportException('')); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("RSET\r\n", array(250)); + + $this->assertFalse($cram->authenticate($this->_agent, 'jack', 'pass'), + '%s: Authentication fails, so RSET should be sent' + ); + } + + // -- Private helpers + + private function _getAuthenticator() + { + return new Swift_Transport_Esmtp_Auth_CramMd5Authenticator(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/LoginAuthenticatorTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/LoginAuthenticatorTest.php new file mode 100644 index 0000000..fc6e806 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/LoginAuthenticatorTest.php @@ -0,0 +1,66 @@ +_agent = $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); + } + + public function testKeywordIsLogin() + { + $login = $this->_getAuthenticator(); + $this->assertEquals('LOGIN', $login->getAuthKeyword()); + } + + public function testSuccessfulAuthentication() + { + $login = $this->_getAuthenticator(); + + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("AUTH LOGIN\r\n", array(334)); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with(base64_encode('jack')."\r\n", array(334)); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with(base64_encode('pass')."\r\n", array(235)); + + $this->assertTrue($login->authenticate($this->_agent, 'jack', 'pass'), + '%s: The buffer accepted all commands authentication should succeed' + ); + } + + public function testAuthenticationFailureSendRsetAndReturnFalse() + { + $login = $this->_getAuthenticator(); + + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("AUTH LOGIN\r\n", array(334)); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with(base64_encode('jack')."\r\n", array(334)); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with(base64_encode('pass')."\r\n", array(235)) + ->andThrow(new Swift_TransportException('')); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("RSET\r\n", array(250)); + + $this->assertFalse($login->authenticate($this->_agent, 'jack', 'pass'), + '%s: Authentication fails, so RSET should be sent' + ); + } + + // -- Private helpers + + private function _getAuthenticator() + { + return new Swift_Transport_Esmtp_Auth_LoginAuthenticator(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php new file mode 100644 index 0000000..dd26294 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php @@ -0,0 +1,235 @@ +markTestSkipped( + 'One of the required functions is not available.' + ); + } + } + + public function testKeywordIsNtlm() + { + $login = $this->_getAuthenticator(); + $this->assertEquals('NTLM', $login->getAuthKeyword()); + } + + public function testMessage1Generator() + { + $login = $this->_getAuthenticator(); + $message1 = $this->_invokePrivateMethod('createMessage1', $login); + + $this->assertEquals($this->_message1, bin2hex($message1), + '%s: We send the smallest ntlm message which should never fail.' + ); + } + + public function testLMv1Generator() + { + $password = 'test1234'; + $challenge = 'b019d38bad875c9d'; + $lmv1 = '1879f60127f8a877022132ec221bcbf3ca016a9f76095606'; + + $login = $this->_getAuthenticator(); + $lmv1Result = $this->_invokePrivateMethod('createLMPassword', $login, array($password, $this->hex2bin($challenge))); + + $this->assertEquals($lmv1, bin2hex($lmv1Result), + '%s: The keys should be the same cause we use the same values to generate them.' + ); + } + + public function testLMv2Generator() + { + $username = 'user'; + $password = 'SecREt01'; + $domain = 'DOMAIN'; + $challenge = '0123456789abcdef'; + $lmv2 = 'd6e6152ea25d03b7c6ba6629c2d6aaf0ffffff0011223344'; + + $login = $this->_getAuthenticator(); + $lmv2Result = $this->_invokePrivateMethod('createLMv2Password', $login, array($password, $username, $domain, $this->hex2bin($challenge), $this->hex2bin('ffffff0011223344'))); + + $this->assertEquals($lmv2, bin2hex($lmv2Result), + '%s: The keys should be the same cause we use the same values to generate them.' + ); + } + + public function testMessage3v1Generator() + { + $username = 'test'; + $domain = 'TESTNT'; + $workstation = 'MEMBER'; + $lmResponse = '1879f60127f8a877022132ec221bcbf3ca016a9f76095606'; + $ntlmResponse = 'e6285df3287c5d194f84df1a94817c7282d09754b6f9e02a'; + $message3T = '4e544c4d5353500003000000180018006000000018001800780000000c000c0040000000080008004c0000000c000c0054000000000000009a0000000102000054004500530054004e00540074006500730074004d0045004d004200450052001879f60127f8a877022132ec221bcbf3ca016a9f76095606e6285df3287c5d194f84df1a94817c7282d09754b6f9e02a'; + + $login = $this->_getAuthenticator(); + $message3 = $this->_invokePrivateMethod('createMessage3', $login, array($domain, $username, $workstation, $this->hex2bin($lmResponse), $this->hex2bin($ntlmResponse))); + + $this->assertEquals($message3T, bin2hex($message3), + '%s: We send the same information as the example is created with so this should be the same' + ); + } + + public function testMessage3v2Generator() + { + $username = 'test'; + $domain = 'TESTNT'; + $workstation = 'MEMBER'; + $lmResponse = 'bf2e015119f6bdb3f6fdb768aa12d478f5ce3d2401c8f6e9'; + $ntlmResponse = 'caa4da8f25d5e840974ed8976d3ada46010100000000000030fa7e3c677bc301f5ce3d2401c8f6e90000000002000c0054004500530054004e00540001000c004d0045004d0042004500520003001e006d0065006d006200650072002e0074006500730074002e0063006f006d000000000000000000'; + + $login = $this->_getAuthenticator(); + $message3 = $this->_invokePrivateMethod('createMessage3', $login, array($domain, $username, $workstation, $this->hex2bin($lmResponse), $this->hex2bin($ntlmResponse))); + + $this->assertEquals($this->_message3, bin2hex($message3), + '%s: We send the same information as the example is created with so this should be the same' + ); + } + + public function testGetDomainAndUsername() + { + $username = "DOMAIN\user"; + + $login = $this->_getAuthenticator(); + list($domain, $user) = $this->_invokePrivateMethod('getDomainAndUsername', $login, array($username)); + + $this->assertEquals('DOMAIN', $domain, + '%s: the fetched domain did not match' + ); + $this->assertEquals('user', $user, + '%s: the fetched user did not match' + ); + } + + public function testGetDomainAndUsernameWithExtension() + { + $username = "domain.com\user"; + + $login = $this->_getAuthenticator(); + list($domain, $user) = $this->_invokePrivateMethod('getDomainAndUsername', $login, array($username)); + + $this->assertEquals('domain.com', $domain, + '%s: the fetched domain did not match' + ); + $this->assertEquals('user', $user, + '%s: the fetched user did not match' + ); + } + + public function testGetDomainAndUsernameWithAtSymbol() + { + $username = 'user@DOMAIN'; + + $login = $this->_getAuthenticator(); + list($domain, $user) = $this->_invokePrivateMethod('getDomainAndUsername', $login, array($username)); + + $this->assertEquals('DOMAIN', $domain, + '%s: the fetched domain did not match' + ); + $this->assertEquals('user', $user, + '%s: the fetched user did not match' + ); + } + + public function testGetDomainAndUsernameWithAtSymbolAndExtension() + { + $username = 'user@domain.com'; + + $login = $this->_getAuthenticator(); + list($domain, $user) = $this->_invokePrivateMethod('getDomainAndUsername', $login, array($username)); + + $this->assertEquals('domain.com', $domain, + '%s: the fetched domain did not match' + ); + $this->assertEquals('user', $user, + '%s: the fetched user did not match' + ); + } + + public function testSuccessfulAuthentication() + { + $domain = 'TESTNT'; + $username = 'test'; + $secret = 'test1234'; + + $ntlm = $this->_getAuthenticator(); + $agent = $this->_getAgent(); + $agent->shouldReceive('executeCommand') + ->once() + ->with('AUTH NTLM '.base64_encode( + $this->_invokePrivateMethod('createMessage1', $ntlm) + )."\r\n", array(334)) + ->andReturn('334 '.base64_encode($this->hex2bin('4e544c4d53535000020000000c000c003000000035828980514246973ea892c10000000000000000460046003c00000054004500530054004e00540002000c0054004500530054004e00540001000c004d0045004d0042004500520003001e006d0065006d006200650072002e0074006500730074002e0063006f006d0000000000'))); + $agent->shouldReceive('executeCommand') + ->once() + ->with(base64_encode( + $this->_invokePrivateMethod('createMessage3', $ntlm, array($domain, $username, $this->hex2bin('4d0045004d00420045005200'), $this->hex2bin('bf2e015119f6bdb3f6fdb768aa12d478f5ce3d2401c8f6e9'), $this->hex2bin('caa4da8f25d5e840974ed8976d3ada46010100000000000030fa7e3c677bc301f5ce3d2401c8f6e90000000002000c0054004500530054004e00540001000c004d0045004d0042004500520003001e006d0065006d006200650072002e0074006500730074002e0063006f006d000000000000000000')) + ))."\r\n", array(235)); + + $this->assertTrue($ntlm->authenticate($agent, $username.'@'.$domain, $secret, $this->hex2bin('30fa7e3c677bc301'), $this->hex2bin('f5ce3d2401c8f6e9')), + '%s: The buffer accepted all commands authentication should succeed' + ); + } + + public function testAuthenticationFailureSendRsetAndReturnFalse() + { + $domain = 'TESTNT'; + $username = 'test'; + $secret = 'test1234'; + + $ntlm = $this->_getAuthenticator(); + $agent = $this->_getAgent(); + $agent->shouldReceive('executeCommand') + ->once() + ->with('AUTH NTLM '.base64_encode( + $this->_invokePrivateMethod('createMessage1', $ntlm) + )."\r\n", array(334)) + ->andThrow(new Swift_TransportException('')); + $agent->shouldReceive('executeCommand') + ->once() + ->with("RSET\r\n", array(250)); + + $this->assertFalse($ntlm->authenticate($agent, $username.'@'.$domain, $secret, $this->hex2bin('30fa7e3c677bc301'), $this->hex2bin('f5ce3d2401c8f6e9')), + '%s: Authentication fails, so RSET should be sent' + ); + } + + // -- Private helpers + private function _getAuthenticator() + { + return new Swift_Transport_Esmtp_Auth_NTLMAuthenticator(); + } + + private function _getAgent() + { + return $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); + } + + private function _invokePrivateMethod($method, $instance, array $args = array()) + { + $methodC = new ReflectionMethod($instance, trim($method)); + $methodC->setAccessible(true); + + return $methodC->invokeArgs($instance, $args); + } + + /** + * Hex2bin replacement for < PHP 5.4. + * + * @param string $hex + * + * @return string Binary + */ + protected function hex2bin($hex) + { + return function_exists('hex2bin') ? hex2bin($hex) : pack('H*', $hex); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/PlainAuthenticatorTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/PlainAuthenticatorTest.php new file mode 100644 index 0000000..4fe9db8 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/PlainAuthenticatorTest.php @@ -0,0 +1,69 @@ +_agent = $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); + } + + public function testKeywordIsPlain() + { + /* -- RFC 4616, 1. + The name associated with this mechanism is "PLAIN". + */ + + $login = $this->_getAuthenticator(); + $this->assertEquals('PLAIN', $login->getAuthKeyword()); + } + + public function testSuccessfulAuthentication() + { + /* -- RFC 4616, 2. + The client presents the authorization identity (identity to act as), + followed by a NUL (U+0000) character, followed by the authentication + identity (identity whose password will be used), followed by a NUL + (U+0000) character, followed by the clear-text password. + */ + + $plain = $this->_getAuthenticator(); + + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with('AUTH PLAIN '.base64_encode( + 'jack'.chr(0).'jack'.chr(0).'pass' + )."\r\n", array(235)); + + $this->assertTrue($plain->authenticate($this->_agent, 'jack', 'pass'), + '%s: The buffer accepted all commands authentication should succeed' + ); + } + + public function testAuthenticationFailureSendRsetAndReturnFalse() + { + $plain = $this->_getAuthenticator(); + + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with('AUTH PLAIN '.base64_encode( + 'jack'.chr(0).'jack'.chr(0).'pass' + )."\r\n", array(235)) + ->andThrow(new Swift_TransportException('')); + $this->_agent->shouldReceive('executeCommand') + ->once() + ->with("RSET\r\n", array(250)); + + $this->assertFalse($plain->authenticate($this->_agent, 'jack', 'pass'), + '%s: Authentication fails, so RSET should be sent' + ); + } + + // -- Private helpers + + private function _getAuthenticator() + { + return new Swift_Transport_Esmtp_Auth_PlainAuthenticator(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/AuthHandlerTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/AuthHandlerTest.php new file mode 100644 index 0000000..64327d4 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/AuthHandlerTest.php @@ -0,0 +1,167 @@ +_agent = $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); + } + + public function testKeywordIsAuth() + { + $auth = $this->_createHandler(array()); + $this->assertEquals('AUTH', $auth->getHandledKeyword()); + } + + public function testUsernameCanBeSetAndFetched() + { + $auth = $this->_createHandler(array()); + $auth->setUsername('jack'); + $this->assertEquals('jack', $auth->getUsername()); + } + + public function testPasswordCanBeSetAndFetched() + { + $auth = $this->_createHandler(array()); + $auth->setPassword('pass'); + $this->assertEquals('pass', $auth->getPassword()); + } + + public function testAuthModeCanBeSetAndFetched() + { + $auth = $this->_createHandler(array()); + $auth->setAuthMode('PLAIN'); + $this->assertEquals('PLAIN', $auth->getAuthMode()); + } + + public function testMixinMethods() + { + $auth = $this->_createHandler(array()); + $mixins = $auth->exposeMixinMethods(); + $this->assertTrue(in_array('getUsername', $mixins), + '%s: getUsername() should be accessible via mixin' + ); + $this->assertTrue(in_array('setUsername', $mixins), + '%s: setUsername() should be accessible via mixin' + ); + $this->assertTrue(in_array('getPassword', $mixins), + '%s: getPassword() should be accessible via mixin' + ); + $this->assertTrue(in_array('setPassword', $mixins), + '%s: setPassword() should be accessible via mixin' + ); + $this->assertTrue(in_array('setAuthMode', $mixins), + '%s: setAuthMode() should be accessible via mixin' + ); + $this->assertTrue(in_array('getAuthMode', $mixins), + '%s: getAuthMode() should be accessible via mixin' + ); + } + + public function testAuthenticatorsAreCalledAccordingToParamsAfterEhlo() + { + $a1 = $this->_createMockAuthenticator('PLAIN'); + $a2 = $this->_createMockAuthenticator('LOGIN'); + + $a1->shouldReceive('authenticate') + ->never() + ->with($this->_agent, 'jack', 'pass'); + $a2->shouldReceive('authenticate') + ->once() + ->with($this->_agent, 'jack', 'pass') + ->andReturn(true); + + $auth = $this->_createHandler(array($a1, $a2)); + $auth->setUsername('jack'); + $auth->setPassword('pass'); + + $auth->setKeywordParams(array('CRAM-MD5', 'LOGIN')); + $auth->afterEhlo($this->_agent); + } + + public function testAuthenticatorsAreNotUsedIfNoUsernameSet() + { + $a1 = $this->_createMockAuthenticator('PLAIN'); + $a2 = $this->_createMockAuthenticator('LOGIN'); + + $a1->shouldReceive('authenticate') + ->never() + ->with($this->_agent, 'jack', 'pass'); + $a2->shouldReceive('authenticate') + ->never() + ->with($this->_agent, 'jack', 'pass') + ->andReturn(true); + + $auth = $this->_createHandler(array($a1, $a2)); + + $auth->setKeywordParams(array('CRAM-MD5', 'LOGIN')); + $auth->afterEhlo($this->_agent); + } + + public function testSeveralAuthenticatorsAreTriedIfNeeded() + { + $a1 = $this->_createMockAuthenticator('PLAIN'); + $a2 = $this->_createMockAuthenticator('LOGIN'); + + $a1->shouldReceive('authenticate') + ->once() + ->with($this->_agent, 'jack', 'pass') + ->andReturn(false); + $a2->shouldReceive('authenticate') + ->once() + ->with($this->_agent, 'jack', 'pass') + ->andReturn(true); + + $auth = $this->_createHandler(array($a1, $a2)); + $auth->setUsername('jack'); + $auth->setPassword('pass'); + + $auth->setKeywordParams(array('PLAIN', 'LOGIN')); + $auth->afterEhlo($this->_agent); + } + + public function testFirstAuthenticatorToPassBreaksChain() + { + $a1 = $this->_createMockAuthenticator('PLAIN'); + $a2 = $this->_createMockAuthenticator('LOGIN'); + $a3 = $this->_createMockAuthenticator('CRAM-MD5'); + + $a1->shouldReceive('authenticate') + ->once() + ->with($this->_agent, 'jack', 'pass') + ->andReturn(false); + $a2->shouldReceive('authenticate') + ->once() + ->with($this->_agent, 'jack', 'pass') + ->andReturn(true); + $a3->shouldReceive('authenticate') + ->never() + ->with($this->_agent, 'jack', 'pass'); + + $auth = $this->_createHandler(array($a1, $a2)); + $auth->setUsername('jack'); + $auth->setPassword('pass'); + + $auth->setKeywordParams(array('PLAIN', 'LOGIN', 'CRAM-MD5')); + $auth->afterEhlo($this->_agent); + } + + // -- Private helpers + + private function _createHandler($authenticators) + { + return new Swift_Transport_Esmtp_AuthHandler($authenticators); + } + + private function _createMockAuthenticator($type) + { + $authenticator = $this->getMockery('Swift_Transport_Esmtp_Authenticator')->shouldIgnoreMissing(); + $authenticator->shouldReceive('getAuthKeyword') + ->zeroOrMoreTimes() + ->andReturn($type); + + return $authenticator; + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransport/ExtensionSupportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransport/ExtensionSupportTest.php new file mode 100644 index 0000000..44e5413 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransport/ExtensionSupportTest.php @@ -0,0 +1,530 @@ +_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('getPriorityOver') + ->zeroOrMoreTimes() + ->with('STARTTLS') + ->andReturn(0); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $ext2->shouldReceive('getPriorityOver') + ->zeroOrMoreTimes() + ->with('AUTH') + ->andReturn(-1); + $this->_finishBuffer($buf); + + $smtp->setExtensionHandlers(array($ext1, $ext2)); + $this->assertEquals(array($ext2, $ext1), $smtp->getExtensionHandlers()); + } + + public function testHandlersAreNotifiedOfParams() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 server.com foo\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .*?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-ServerName.tld\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-AUTH PLAIN LOGIN\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 SIZE=123456\r\n"); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('setKeywordParams') + ->once() + ->with(array('PLAIN', 'LOGIN')); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('SIZE'); + $ext2->shouldReceive('setKeywordParams') + ->zeroOrMoreTimes() + ->with(array('123456')); + $this->_finishBuffer($buf); + + $smtp->setExtensionHandlers(array($ext1, $ext2)); + $smtp->start(); + } + + public function testSupportedExtensionHandlersAreRunAfterEhlo() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext3 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 server.com foo\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .*?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-ServerName.tld\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-AUTH PLAIN LOGIN\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 SIZE=123456\r\n"); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('afterEhlo') + ->once() + ->with($smtp); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('SIZE'); + $ext2->shouldReceive('afterEhlo') + ->zeroOrMoreTimes() + ->with($smtp); + $ext3->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $ext3->shouldReceive('afterEhlo') + ->never() + ->with($smtp); + $this->_finishBuffer($buf); + + $smtp->setExtensionHandlers(array($ext1, $ext2, $ext3)); + $smtp->start(); + } + + public function testExtensionsCanModifyMailFromParams() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(); + $smtp = new EsmtpTransportFixture($buf, array(), $dispatcher); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext3 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 server.com foo\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .*?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-ServerName.tld\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-AUTH PLAIN LOGIN\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 SIZE=123456\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM: FOO ZIP\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO:\r\n") + ->andReturn(3); + $buf->shouldReceive('readLine') + ->once() + ->with(3) + ->andReturn("250 OK\r\n"); + $this->_finishBuffer($buf); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('getMailParams') + ->once() + ->andReturn('FOO'); + $ext1->shouldReceive('getPriorityOver') + ->zeroOrMoreTimes() + ->with('AUTH') + ->andReturn(-1); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('SIZE'); + $ext2->shouldReceive('getMailParams') + ->once() + ->andReturn('ZIP'); + $ext2->shouldReceive('getPriorityOver') + ->zeroOrMoreTimes() + ->with('AUTH') + ->andReturn(1); + $ext3->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $ext3->shouldReceive('getMailParams') + ->never(); + + $smtp->setExtensionHandlers(array($ext1, $ext2, $ext3)); + $smtp->start(); + $smtp->send($message); + } + + public function testExtensionsCanModifyRcptParams() + { + $buf = $this->_getBuffer(); + $dispatcher = $this->_createEventDispatcher(); + $smtp = new EsmtpTransportFixture($buf, array(), $dispatcher); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext3 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $message = $this->_createMessage(); + + $message->shouldReceive('getFrom') + ->zeroOrMoreTimes() + ->andReturn(array('me@domain' => 'Me')); + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null)); + + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 server.com foo\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-ServerName.tld\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-AUTH PLAIN LOGIN\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 SIZE=123456\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("MAIL FROM:\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("250 OK\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("RCPT TO: FOO ZIP\r\n") + ->andReturn(3); + $buf->shouldReceive('readLine') + ->once() + ->with(3) + ->andReturn("250 OK\r\n"); + $this->_finishBuffer($buf); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('getRcptParams') + ->once() + ->andReturn('FOO'); + $ext1->shouldReceive('getPriorityOver') + ->zeroOrMoreTimes() + ->with('AUTH') + ->andReturn(-1); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('SIZE'); + $ext2->shouldReceive('getRcptParams') + ->once() + ->andReturn('ZIP'); + $ext2->shouldReceive('getPriorityOver') + ->zeroOrMoreTimes() + ->with('AUTH') + ->andReturn(1); + $ext3->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $ext3->shouldReceive('getRcptParams') + ->never(); + + $smtp->setExtensionHandlers(array($ext1, $ext2, $ext3)); + $smtp->start(); + $smtp->send($message); + } + + public function testExtensionsAreNotifiedOnCommand() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext3 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 server.com foo\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-ServerName.tld\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-AUTH PLAIN LOGIN\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 SIZE=123456\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("FOO\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn("250 Cool\r\n"); + $this->_finishBuffer($buf); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('onCommand') + ->once() + ->with($smtp, "FOO\r\n", array(250, 251), \Mockery::any(), \Mockery::any()); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('SIZE'); + $ext2->shouldReceive('onCommand') + ->once() + ->with($smtp, "FOO\r\n", array(250, 251), \Mockery::any(), \Mockery::any()); + $ext3->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $ext3->shouldReceive('onCommand') + ->never() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $smtp->setExtensionHandlers(array($ext1, $ext2, $ext3)); + $smtp->start(); + $smtp->executeCommand("FOO\r\n", array(250, 251)); + } + + public function testChainOfCommandAlgorithmWhenNotifyingExtensions() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + $ext3 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 server.com foo\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-ServerName.tld\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250-AUTH PLAIN LOGIN\r\n"); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn("250 SIZE=123456\r\n"); + $buf->shouldReceive('write') + ->never() + ->with("FOO\r\n"); + $this->_finishBuffer($buf); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('onCommand') + ->once() + ->with($smtp, "FOO\r\n", array(250, 251), \Mockery::any(), \Mockery::any()) + ->andReturnUsing(function ($a, $b, $c, $d, &$e) { + $e = true; + + return '250 ok'; + }); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('SIZE'); + $ext2->shouldReceive('onCommand') + ->never() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $ext3->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $ext3->shouldReceive('onCommand') + ->never() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $smtp->setExtensionHandlers(array($ext1, $ext2, $ext3)); + $smtp->start(); + $smtp->executeCommand("FOO\r\n", array(250, 251)); + } + + public function testExtensionsCanExposeMixinMethods() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandlerMixin')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('exposeMixinMethods') + ->zeroOrMoreTimes() + ->andReturn(array('setUsername', 'setPassword')); + $ext1->shouldReceive('setUsername') + ->once() + ->with('mick'); + $ext1->shouldReceive('setPassword') + ->once() + ->with('pass'); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $this->_finishBuffer($buf); + + $smtp->setExtensionHandlers(array($ext1, $ext2)); + $smtp->setUsername('mick'); + $smtp->setPassword('pass'); + } + + public function testMixinMethodsBeginningWithSetAndNullReturnAreFluid() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandlerMixin')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('exposeMixinMethods') + ->zeroOrMoreTimes() + ->andReturn(array('setUsername', 'setPassword')); + $ext1->shouldReceive('setUsername') + ->once() + ->with('mick') + ->andReturn(null); + $ext1->shouldReceive('setPassword') + ->once() + ->with('pass') + ->andReturn(null); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $this->_finishBuffer($buf); + + $smtp->setExtensionHandlers(array($ext1, $ext2)); + $ret = $smtp->setUsername('mick'); + $this->assertEquals($smtp, $ret); + $ret = $smtp->setPassword('pass'); + $this->assertEquals($smtp, $ret); + } + + public function testMixinSetterWhichReturnValuesAreNotFluid() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $ext1 = $this->getMockery('Swift_Transport_EsmtpHandlerMixin')->shouldIgnoreMissing(); + $ext2 = $this->getMockery('Swift_Transport_EsmtpHandler')->shouldIgnoreMissing(); + + $ext1->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('AUTH'); + $ext1->shouldReceive('exposeMixinMethods') + ->zeroOrMoreTimes() + ->andReturn(array('setUsername', 'setPassword')); + $ext1->shouldReceive('setUsername') + ->once() + ->with('mick') + ->andReturn('x'); + $ext1->shouldReceive('setPassword') + ->once() + ->with('pass') + ->andReturn('x'); + $ext2->shouldReceive('getHandledKeyword') + ->zeroOrMoreTimes() + ->andReturn('STARTTLS'); + $this->_finishBuffer($buf); + + $smtp->setExtensionHandlers(array($ext1, $ext2)); + $this->assertEquals('x', $smtp->setUsername('mick')); + $this->assertEquals('x', $smtp->setPassword('pass')); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransportTest.php new file mode 100644 index 0000000..95a9ce2 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransportTest.php @@ -0,0 +1,298 @@ +_createEventDispatcher(); + } + + return new Swift_Transport_EsmtpTransport($buf, array(), $dispatcher); + } + + public function testHostCanBeSetAndFetched() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $smtp->setHost('foo'); + $this->assertEquals('foo', $smtp->getHost(), '%s: Host should be returned'); + } + + public function testPortCanBeSetAndFetched() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $smtp->setPort(25); + $this->assertEquals(25, $smtp->getPort(), '%s: Port should be returned'); + } + + public function testTimeoutCanBeSetAndFetched() + { + $buf = $this->_getBuffer(); + $buf->shouldReceive('setParam') + ->once() + ->with('timeout', 10); + + $smtp = $this->_getTransport($buf); + $smtp->setTimeout(10); + $this->assertEquals(10, $smtp->getTimeout(), '%s: Timeout should be returned'); + } + + public function testEncryptionCanBeSetAndFetched() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $smtp->setEncryption('tls'); + $this->assertEquals('tls', $smtp->getEncryption(), '%s: Crypto should be returned'); + } + + public function testStartSendsHeloToInitiate() + { + //Overridden for EHLO instead + } + + public function testStartSendsEhloToInitiate() + { + /* -- RFC 2821, 3.2. + + 3.2 Client Initiation + + Once the server has sent the welcoming message and the client has + received it, the client normally sends the EHLO command to the + server, indicating the client's identity. In addition to opening the + session, use of EHLO indicates that the client is able to process + service extensions and requests that the server provide a list of the + extensions it supports. Older SMTP systems which are unable to + support service extensions and contemporary clients which do not + require service extensions in the mail session being initiated, MAY + use HELO instead of EHLO. Servers MUST NOT return the extended + EHLO-style response to a HELO command. For a particular connection + attempt, if the server returns a "command not recognized" response to + EHLO, the client SHOULD be able to fall back and send HELO. + + In the EHLO command the host sending the command identifies itself; + the command may be interpreted as saying "Hello, I am " (and, + in the case of EHLO, "and I support service extension requests"). + + -- RFC 2281, 4.1.1.1. + + ehlo = "EHLO" SP Domain CRLF + helo = "HELO" SP Domain CRLF + + -- RFC 2821, 4.3.2. + + EHLO or HELO + S: 250 + E: 504, 550 + + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 ServerName'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + } catch (Exception $e) { + $this->fail('Starting Esmtp should send EHLO and accept 250 response'); + } + } + + public function testHeloIsUsedAsFallback() + { + /* -- RFC 2821, 4.1.4. + + If the EHLO command is not acceptable to the SMTP server, 501, 500, + or 502 failure replies MUST be returned as appropriate. The SMTP + server MUST stay in the same state after transmitting these replies + that it was in before the EHLO was received. + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('501 WTF'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^HELO .+?\r\n$~D') + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 HELO'."\r\n"); + + $this->_finishBuffer($buf); + try { + $smtp->start(); + } catch (Exception $e) { + $this->fail( + 'Starting Esmtp should fallback to HELO if needed and accept 250 response' + ); + } + } + + public function testInvalidHeloResponseCausesException() + { + //Overridden to first try EHLO + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('501 WTF'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^HELO .+?\r\n$~D') + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('504 WTF'."\r\n"); + $this->_finishBuffer($buf); + + try { + $this->assertFalse($smtp->isStarted(), '%s: SMTP should begin non-started'); + $smtp->start(); + $this->fail('Non 250 HELO response should raise Exception'); + } catch (Exception $e) { + $this->assertFalse($smtp->isStarted(), '%s: SMTP start() should have failed'); + } + } + + public function testDomainNameIsPlacedInEhlo() + { + /* -- RFC 2821, 4.1.4. + + The SMTP client MUST, if possible, ensure that the domain parameter + to the EHLO command is a valid principal host name (not a CNAME or MX + name) for its host. If this is not possible (e.g., when the client's + address is dynamically assigned and the client does not have an + obvious name), an address literal SHOULD be substituted for the + domain name and supplemental information provided that will assist in + identifying the client. + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("EHLO mydomain.com\r\n") + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('250 ServerName'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->setLocalDomain('mydomain.com'); + $smtp->start(); + } + + public function testDomainNameIsPlacedInHelo() + { + //Overridden to include ESMTP + /* -- RFC 2821, 4.1.4. + + The SMTP client MUST, if possible, ensure that the domain parameter + to the EHLO command is a valid principal host name (not a CNAME or MX + name) for its host. If this is not possible (e.g., when the client's + address is dynamically assigned and the client does not have an + obvious name), an address literal SHOULD be substituted for the + domain name and supplemental information provided that will assist in + identifying the client. + */ + + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('readLine') + ->once() + ->with(0) + ->andReturn("220 some.server.tld bleh\r\n"); + $buf->shouldReceive('write') + ->once() + ->with('~^EHLO .+?\r\n$~D') + ->andReturn(1); + $buf->shouldReceive('readLine') + ->once() + ->with(1) + ->andReturn('501 WTF'."\r\n"); + $buf->shouldReceive('write') + ->once() + ->with("HELO mydomain.com\r\n") + ->andReturn(2); + $buf->shouldReceive('readLine') + ->once() + ->with(2) + ->andReturn('250 ServerName'."\r\n"); + + $this->_finishBuffer($buf); + $smtp->setLocalDomain('mydomain.com'); + $smtp->start(); + } + + public function testFluidInterface() + { + $buf = $this->_getBuffer(); + $smtp = $this->_getTransport($buf); + $buf->shouldReceive('setParam') + ->once() + ->with('timeout', 30); + + $ref = $smtp + ->setHost('foo') + ->setPort(25) + ->setEncryption('tls') + ->setTimeout(30) + ; + $this->assertEquals($ref, $smtp); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/FailoverTransportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/FailoverTransportTest.php new file mode 100644 index 0000000..8d80f35 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/FailoverTransportTest.php @@ -0,0 +1,520 @@ +getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState) { + return $connectionState; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState) { + if (!$connectionState) { + $connectionState = true; + } + }); + $t1->shouldReceive('send') + ->twice() + ->with(\Mockery::anyOf($message1, $message2), \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState) { + if ($connectionState) { + return 1; + } + }); + $t2->shouldReceive('start')->never(); + $t2->shouldReceive('send')->never(); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message1)); + $this->assertEquals(1, $transport->send($message2)); + } + + public function testMessageCanBeTriedOnNextTransportIfExceptionThrown() + { + $e = new Swift_TransportException('b0rken'); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + throw $e; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + return 1; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message)); + } + + public function testZeroIsReturnedIfTransportReturnsZero() + { + $message = $this->getMockery('Swift_Mime_Message')->shouldIgnoreMissing(); + $t1 = $this->getMockery('Swift_Transport')->shouldIgnoreMissing(); + + $connectionState = false; + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState) { + return $connectionState; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState) { + if (!$connectionState) { + $connectionState = true; + } + }); + $testCase = $this; + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState, $testCase) { + if (!$connectionState) { + $testCase->fail(); + } + + return 0; + }); + + $transport = $this->_getTransport(array($t1)); + $transport->start(); + $this->assertEquals(0, $transport->send($message)); + } + + public function testTransportsWhichThrowExceptionsAreNotRetried() + { + $e = new Swift_TransportException('maur b0rken'); + + $message1 = $this->getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $message3 = $this->getMockery('Swift_Mime_Message'); + $message4 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + throw $e; + } + }); + $t1->shouldReceive('send') + ->never() + ->with($message2, \Mockery::any()); + $t1->shouldReceive('send') + ->never() + ->with($message3, \Mockery::any()); + $t1->shouldReceive('send') + ->never() + ->with($message4, \Mockery::any()); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->times(4) + ->with(\Mockery::anyOf($message1, $message2, $message3, $message4), \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + return 1; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message1)); + $this->assertEquals(1, $transport->send($message2)); + $this->assertEquals(1, $transport->send($message3)); + $this->assertEquals(1, $transport->send($message4)); + } + + public function testExceptionIsThrownIfAllTransportsDie() + { + $e = new Swift_TransportException('b0rken'); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + throw $e; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + throw $e; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + try { + $transport->send($message); + $this->fail('All transports failed so Exception should be thrown'); + } catch (Exception $e) { + } + } + + public function testStoppingTransportStopsAllDelegates() + { + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + + $connectionState1 = true; + $connectionState2 = true; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('stop') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if ($connectionState1) { + $connectionState1 = false; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('stop') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if ($connectionState2) { + $connectionState2 = false; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $transport->stop(); + } + + public function testTransportShowsAsNotStartedIfAllDelegatesDead() + { + $e = new Swift_TransportException('b0rken'); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + $connectionState1 = false; + throw $e; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + $connectionState2 = false; + throw $e; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertTrue($transport->isStarted()); + try { + $transport->send($message); + $this->fail('All transports failed so Exception should be thrown'); + } catch (Exception $e) { + $this->assertFalse($transport->isStarted()); + } + } + + public function testRestartingTransportRestartsDeadDelegates() + { + $e = new Swift_TransportException('b0rken'); + + $message1 = $this->getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->twice() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + $connectionState1 = false; + throw $e; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message2, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1) { + if ($connectionState1) { + return 10; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + $connectionState2 = false; + throw $e; + } + }); + $t2->shouldReceive('send') + ->never() + ->with($message2, \Mockery::any()); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertTrue($transport->isStarted()); + try { + $transport->send($message1); + $this->fail('All transports failed so Exception should be thrown'); + } catch (Exception $e) { + $this->assertFalse($transport->isStarted()); + } + //Restart and re-try + $transport->start(); + $this->assertTrue($transport->isStarted()); + $this->assertEquals(10, $transport->send($message2)); + } + + public function testFailureReferenceIsPassedToDelegates() + { + $failures = array(); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + + $connectionState = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use ($connectionState) { + return $connectionState; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use ($connectionState) { + if (!$connectionState) { + $connectionState = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, $failures) + ->andReturnUsing(function () use ($connectionState) { + if ($connectionState) { + return 1; + } + }); + + $transport = $this->_getTransport(array($t1)); + $transport->start(); + $transport->send($message, $failures); + } + + public function testRegisterPluginDelegatesToLoadedTransports() + { + $plugin = $this->_createPlugin(); + + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $t1->shouldReceive('registerPlugin') + ->once() + ->with($plugin); + $t2->shouldReceive('registerPlugin') + ->once() + ->with($plugin); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->registerPlugin($plugin); + } + + // -- Private helpers + + private function _getTransport(array $transports) + { + $transport = new Swift_Transport_FailoverTransport(); + $transport->setTransports($transports); + + return $transport; + } + + private function _createPlugin() + { + return $this->getMockery('Swift_Events_EventListener'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/LoadBalancedTransportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/LoadBalancedTransportTest.php new file mode 100644 index 0000000..273f135 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/LoadBalancedTransportTest.php @@ -0,0 +1,751 @@ +getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $testCase = $this; + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $testCase) { + if ($connectionState1) { + return 1; + } + $testCase->fail(); + }); + $t1->shouldReceive('send') + ->never() + ->with($message2, \Mockery::any()); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message2, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $testCase) { + if ($connectionState2) { + return 1; + } + $testCase->fail(); + }); + $t2->shouldReceive('send') + ->never() + ->with($message1, \Mockery::any()); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message1)); + $this->assertEquals(1, $transport->send($message2)); + } + + public function testTransportsAreReusedInRotatingFashion() + { + $message1 = $this->getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $message3 = $this->getMockery('Swift_Mime_Message'); + $message4 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $testCase = $this; + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $testCase) { + if ($connectionState1) { + return 1; + } + $testCase->fail(); + }); + $t1->shouldReceive('send') + ->never() + ->with($message2, \Mockery::any()); + $t1->shouldReceive('send') + ->once() + ->with($message3, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $testCase) { + if ($connectionState1) { + return 1; + } + $testCase->fail(); + }); + $t1->shouldReceive('send') + ->never() + ->with($message4, \Mockery::any()); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message2, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $testCase) { + if ($connectionState2) { + return 1; + } + $testCase->fail(); + }); + $t2->shouldReceive('send') + ->never() + ->with($message1, \Mockery::any()); + $t2->shouldReceive('send') + ->once() + ->with($message4, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $testCase) { + if ($connectionState2) { + return 1; + } + $testCase->fail(); + }); + $t2->shouldReceive('send') + ->never() + ->with($message3, \Mockery::any()); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + + $this->assertEquals(1, $transport->send($message1)); + $this->assertEquals(1, $transport->send($message2)); + $this->assertEquals(1, $transport->send($message3)); + $this->assertEquals(1, $transport->send($message4)); + } + + public function testMessageCanBeTriedOnNextTransportIfExceptionThrown() + { + $e = new Swift_TransportException('b0rken'); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $testCase = $this; + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e, $testCase) { + if ($connectionState1) { + throw $e; + } + $testCase->fail(); + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $testCase) { + if ($connectionState2) { + return 1; + } + $testCase->fail(); + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message)); + } + + public function testMessageIsTriedOnNextTransportIfZeroReturned() + { + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1) { + if ($connectionState1) { + return 0; + } + + return 1; + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2) { + if ($connectionState2) { + return 1; + } + + return 0; + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message)); + } + + public function testZeroIsReturnedIfAllTransportsReturnZero() + { + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1) { + if ($connectionState1) { + return 0; + } + + return 1; + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2) { + if ($connectionState2) { + return 0; + } + + return 1; + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(0, $transport->send($message)); + } + + public function testTransportsWhichThrowExceptionsAreNotRetried() + { + $e = new Swift_TransportException('maur b0rken'); + + $message1 = $this->getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $message3 = $this->getMockery('Swift_Mime_Message'); + $message4 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $testCase = $this; + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e, $testCase) { + if ($connectionState1) { + throw $e; + } + $testCase->fail(); + }); + $t1->shouldReceive('send') + ->never() + ->with($message2, \Mockery::any()); + $t1->shouldReceive('send') + ->never() + ->with($message3, \Mockery::any()); + $t1->shouldReceive('send') + ->never() + ->with($message4, \Mockery::any()); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->times(4) + ->with(\Mockery::anyOf($message1, $message3, $message3, $message4), \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $testCase) { + if ($connectionState2) { + return 1; + } + $testCase->fail(); + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertEquals(1, $transport->send($message1)); + $this->assertEquals(1, $transport->send($message2)); + $this->assertEquals(1, $transport->send($message3)); + $this->assertEquals(1, $transport->send($message4)); + } + + public function testExceptionIsThrownIfAllTransportsDie() + { + $e = new Swift_TransportException('b0rken'); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + throw $e; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + throw $e; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + try { + $transport->send($message); + $this->fail('All transports failed so Exception should be thrown'); + } catch (Exception $e) { + } + } + + public function testStoppingTransportStopsAllDelegates() + { + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = true; + $connectionState2 = true; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('stop') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if ($connectionState1) { + $connectionState1 = false; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('stop') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if ($connectionState2) { + $connectionState2 = false; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $transport->stop(); + } + + public function testTransportShowsAsNotStartedIfAllDelegatesDead() + { + $e = new Swift_TransportException('b0rken'); + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + throw $e; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + throw $e; + } + }); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertTrue($transport->isStarted()); + try { + $transport->send($message); + $this->fail('All transports failed so Exception should be thrown'); + } catch (Exception $e) { + $this->assertFalse($transport->isStarted()); + } + } + + public function testRestartingTransportRestartsDeadDelegates() + { + $e = new Swift_TransportException('b0rken'); + + $message1 = $this->getMockery('Swift_Mime_Message'); + $message2 = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + $connectionState1 = false; + $connectionState2 = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState1) { + return $connectionState1; + }); + $t1->shouldReceive('start') + ->twice() + ->andReturnUsing(function () use (&$connectionState1) { + if (!$connectionState1) { + $connectionState1 = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + $connectionState1 = false; + throw $e; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message2, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState1, $e) { + if ($connectionState1) { + return 10; + } + }); + + $t2->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState2) { + return $connectionState2; + }); + $t2->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState2) { + if (!$connectionState2) { + $connectionState2 = true; + } + }); + $t2->shouldReceive('send') + ->once() + ->with($message1, \Mockery::any()) + ->andReturnUsing(function () use (&$connectionState2, $e) { + if ($connectionState2) { + throw $e; + } + }); + $t2->shouldReceive('send') + ->never() + ->with($message2, \Mockery::any()); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->start(); + $this->assertTrue($transport->isStarted()); + try { + $transport->send($message1); + $this->fail('All transports failed so Exception should be thrown'); + } catch (Exception $e) { + $this->assertFalse($transport->isStarted()); + } + //Restart and re-try + $transport->start(); + $this->assertTrue($transport->isStarted()); + $this->assertEquals(10, $transport->send($message2)); + } + + public function testFailureReferenceIsPassedToDelegates() + { + $failures = array(); + $testCase = $this; + + $message = $this->getMockery('Swift_Mime_Message'); + $t1 = $this->getMockery('Swift_Transport'); + $connectionState = false; + + $t1->shouldReceive('isStarted') + ->zeroOrMoreTimes() + ->andReturnUsing(function () use (&$connectionState) { + return $connectionState; + }); + $t1->shouldReceive('start') + ->once() + ->andReturnUsing(function () use (&$connectionState) { + if (!$connectionState) { + $connectionState = true; + } + }); + $t1->shouldReceive('send') + ->once() + ->with($message, \Mockery::on(function (&$var) use (&$failures, $testCase) { + return $testCase->varsAreReferences($var, $failures); + })) + ->andReturnUsing(function () use (&$connectionState) { + if ($connectionState) { + return 1; + } + }); + + $transport = $this->_getTransport(array($t1)); + $transport->start(); + $transport->send($message, $failures); + } + + public function testRegisterPluginDelegatesToLoadedTransports() + { + $plugin = $this->_createPlugin(); + + $t1 = $this->getMockery('Swift_Transport'); + $t2 = $this->getMockery('Swift_Transport'); + + $t1->shouldReceive('registerPlugin') + ->once() + ->with($plugin); + $t2->shouldReceive('registerPlugin') + ->once() + ->with($plugin); + + $transport = $this->_getTransport(array($t1, $t2)); + $transport->registerPlugin($plugin); + } + + /** + * Adapted from Yay_Matchers_ReferenceMatcher. + */ + public function varsAreReferences(&$ref1, &$ref2) + { + if (is_object($ref2)) { + return ($ref1 === $ref2); + } + if ($ref1 !== $ref2) { + return false; + } + + $copy = $ref2; + $randomString = uniqid('yay'); + $ref2 = $randomString; + $isRef = ($ref1 === $ref2); + $ref2 = $copy; + + return $isRef; + } + + // -- Private helpers + + private function _getTransport(array $transports) + { + $transport = new Swift_Transport_LoadBalancedTransport(); + $transport->setTransports($transports); + + return $transport; + } + + private function _createPlugin() + { + return $this->getMockery('Swift_Events_EventListener'); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/MailTransportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/MailTransportTest.php new file mode 100644 index 0000000..d86d11a --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/MailTransportTest.php @@ -0,0 +1,311 @@ +_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $headers = $this->_createHeaders(); + $message = $this->_createMessage($headers); + + $invoker->shouldReceive('mail') + ->once(); + + $transport->send($message); + } + + public function testTransportUsesToFieldBodyInSending() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $to = $this->_createHeader(); + $headers = $this->_createHeaders(array( + 'To' => $to, + )); + $message = $this->_createMessage($headers); + + $to->shouldReceive('getFieldBody') + ->zeroOrMoreTimes() + ->andReturn('Foo '); + $invoker->shouldReceive('mail') + ->once() + ->with('Foo ', \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + public function testTransportUsesSubjectFieldBodyInSending() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $subj = $this->_createHeader(); + $headers = $this->_createHeaders(array( + 'Subject' => $subj, + )); + $message = $this->_createMessage($headers); + + $subj->shouldReceive('getFieldBody') + ->zeroOrMoreTimes() + ->andReturn('Thing'); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), 'Thing', \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + public function testTransportUsesBodyOfMessage() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $headers = $this->_createHeaders(); + $message = $this->_createMessage($headers); + + $message->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn( + "To: Foo \r\n". + "\r\n". + 'This body' + ); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), 'This body', \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + public function testTransportUsesHeadersFromMessage() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $headers = $this->_createHeaders(); + $message = $this->_createMessage($headers); + + $message->shouldReceive('toString') + ->zeroOrMoreTimes() + ->andReturn( + "Subject: Stuff\r\n". + "\r\n". + 'This body' + ); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), 'Subject: Stuff'.PHP_EOL, \Mockery::any()); + + $transport->send($message); + } + + public function testTransportReturnsCountOfAllRecipientsIfInvokerReturnsTrue() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $headers = $this->_createHeaders(); + $message = $this->_createMessage($headers); + + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null, 'zip@button' => null)); + $message->shouldReceive('getCc') + ->zeroOrMoreTimes() + ->andReturn(array('test@test' => null)); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn(true); + + $this->assertEquals(3, $transport->send($message)); + } + + public function testTransportReturnsZeroIfInvokerReturnsFalse() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $headers = $this->_createHeaders(); + $message = $this->_createMessage($headers); + + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => null, 'zip@button' => null)); + $message->shouldReceive('getCc') + ->zeroOrMoreTimes() + ->andReturn(array('test@test' => null)); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()) + ->andReturn(false); + + $this->assertEquals(0, $transport->send($message)); + } + + public function testToHeaderIsRemovedFromHeaderSetDuringSending() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $to = $this->_createHeader(); + $headers = $this->_createHeaders(array( + 'To' => $to, + )); + $message = $this->_createMessage($headers); + + $headers->shouldReceive('remove') + ->once() + ->with('To'); + $headers->shouldReceive('remove') + ->zeroOrMoreTimes(); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + public function testSubjectHeaderIsRemovedFromHeaderSetDuringSending() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $subject = $this->_createHeader(); + $headers = $this->_createHeaders(array( + 'Subject' => $subject, + )); + $message = $this->_createMessage($headers); + + $headers->shouldReceive('remove') + ->once() + ->with('Subject'); + $headers->shouldReceive('remove') + ->zeroOrMoreTimes(); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + public function testToHeaderIsPutBackAfterSending() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $to = $this->_createHeader(); + $headers = $this->_createHeaders(array( + 'To' => $to, + )); + $message = $this->_createMessage($headers); + + $headers->shouldReceive('set') + ->once() + ->with($to); + $headers->shouldReceive('set') + ->zeroOrMoreTimes(); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + public function testSubjectHeaderIsPutBackAfterSending() + { + $invoker = $this->_createInvoker(); + $dispatcher = $this->_createEventDispatcher(); + $transport = $this->_createTransport($invoker, $dispatcher); + + $subject = $this->_createHeader(); + $headers = $this->_createHeaders(array( + 'Subject' => $subject, + )); + $message = $this->_createMessage($headers); + + $headers->shouldReceive('set') + ->once() + ->with($subject); + $headers->shouldReceive('set') + ->zeroOrMoreTimes(); + $invoker->shouldReceive('mail') + ->once() + ->with(\Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any(), \Mockery::any()); + + $transport->send($message); + } + + // -- Creation Methods + + private function _createTransport($invoker, $dispatcher) + { + return new Swift_Transport_MailTransport($invoker, $dispatcher); + } + + private function _createEventDispatcher() + { + return $this->getMockery('Swift_Events_EventDispatcher')->shouldIgnoreMissing(); + } + + private function _createInvoker() + { + return $this->getMockery('Swift_Transport_MailInvoker'); + } + + private function _createMessage($headers) + { + $message = $this->getMockery('Swift_Mime_Message')->shouldIgnoreMissing(); + $message->shouldReceive('getHeaders') + ->zeroOrMoreTimes() + ->andReturn($headers); + + return $message; + } + + private function _createHeaders($headers = array()) + { + $set = $this->getMockery('Swift_Mime_HeaderSet')->shouldIgnoreMissing(); + + if (count($headers) > 0) { + foreach ($headers as $name => $header) { + $set->shouldReceive('get') + ->zeroOrMoreTimes() + ->with($name) + ->andReturn($header); + $set->shouldReceive('has') + ->zeroOrMoreTimes() + ->with($name) + ->andReturn(true); + } + } + + $header = $this->_createHeader(); + $set->shouldReceive('get') + ->zeroOrMoreTimes() + ->andReturn($header); + $set->shouldReceive('has') + ->zeroOrMoreTimes() + ->andReturn(true); + + return $set; + } + + private function _createHeader() + { + return $this->getMockery('Swift_Mime_Header')->shouldIgnoreMissing(); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/SendmailTransportTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/SendmailTransportTest.php new file mode 100644 index 0000000..c704c3c --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/SendmailTransportTest.php @@ -0,0 +1,152 @@ +_createEventDispatcher(); + } + $transport = new Swift_Transport_SendmailTransport($buf, $dispatcher); + $transport->setCommand($command); + + return $transport; + } + + protected function _getSendmail($buf, $dispatcher = null) + { + if (!$dispatcher) { + $dispatcher = $this->_createEventDispatcher(); + } + $sendmail = new Swift_Transport_SendmailTransport($buf, $dispatcher); + + return $sendmail; + } + + public function testCommandCanBeSetAndFetched() + { + $buf = $this->_getBuffer(); + $sendmail = $this->_getSendmail($buf); + + $sendmail->setCommand('/usr/sbin/sendmail -bs'); + $this->assertEquals('/usr/sbin/sendmail -bs', $sendmail->getCommand()); + $sendmail->setCommand('/usr/sbin/sendmail -oi -t'); + $this->assertEquals('/usr/sbin/sendmail -oi -t', $sendmail->getCommand()); + } + + public function testSendingMessageIn_t_ModeUsesSimplePipe() + { + $buf = $this->_getBuffer(); + $sendmail = $this->_getSendmail($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); + $message->shouldReceive('toByteStream') + ->once() + ->with($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('terminate') + ->once(); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array("\r\n" => "\n", "\n." => "\n..")); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array()); + + $sendmail->setCommand('/usr/sbin/sendmail -t'); + $this->assertEquals(2, $sendmail->send($message)); + } + + public function testSendingIn_t_ModeWith_i_FlagDoesntEscapeDot() + { + $buf = $this->_getBuffer(); + $sendmail = $this->_getSendmail($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); + $message->shouldReceive('toByteStream') + ->once() + ->with($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('terminate') + ->once(); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array("\r\n" => "\n")); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array()); + + $sendmail->setCommand('/usr/sbin/sendmail -i -t'); + $this->assertEquals(2, $sendmail->send($message)); + } + + public function testSendingInTModeWith_oi_FlagDoesntEscapeDot() + { + $buf = $this->_getBuffer(); + $sendmail = $this->_getSendmail($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); + $message->shouldReceive('toByteStream') + ->once() + ->with($buf); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('terminate') + ->once(); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array("\r\n" => "\n")); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array()); + + $sendmail->setCommand('/usr/sbin/sendmail -oi -t'); + $this->assertEquals(2, $sendmail->send($message)); + } + + public function testSendingMessageRegeneratesId() + { + $buf = $this->_getBuffer(); + $sendmail = $this->_getSendmail($buf); + $message = $this->_createMessage(); + + $message->shouldReceive('getTo') + ->zeroOrMoreTimes() + ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); + $message->shouldReceive('generateId'); + $buf->shouldReceive('initialize') + ->once(); + $buf->shouldReceive('terminate') + ->once(); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array("\r\n" => "\n", "\n." => "\n..")); + $buf->shouldReceive('setWriteTranslations') + ->once() + ->with(array()); + + $sendmail->setCommand('/usr/sbin/sendmail -t'); + $this->assertEquals(2, $sendmail->send($message)); + } + + public function testFluidInterface() + { + $buf = $this->_getBuffer(); + $sendmail = $this->_getTransport($buf); + + $ref = $sendmail->setCommand('/foo'); + $this->assertEquals($ref, $sendmail); + } +} diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/StreamBufferTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/StreamBufferTest.php new file mode 100644 index 0000000..3ec74b3 --- /dev/null +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/StreamBufferTest.php @@ -0,0 +1,45 @@ +_createFactory(); + $factory->expects($this->once()) + ->method('createFilter') + ->with('a', 'b') + ->will($this->returnCallback(array($this, '_createFilter'))); + + $buffer = $this->_createBuffer($factory); + $buffer->setWriteTranslations(array('a' => 'b')); + } + + public function testOverridingTranslationsOnlyAddsNeededFilters() + { + $factory = $this->_createFactory(); + $factory->expects($this->exactly(2)) + ->method('createFilter') + ->will($this->returnCallback(array($this, '_createFilter'))); + + $buffer = $this->_createBuffer($factory); + $buffer->setWriteTranslations(array('a' => 'b')); + $buffer->setWriteTranslations(array('x' => 'y', 'a' => 'b')); + } + + // -- Creation methods + + private function _createBuffer($replacementFactory) + { + return new Swift_Transport_StreamBuffer($replacementFactory); + } + + private function _createFactory() + { + return $this->getMock('Swift_ReplacementFilterFactory'); + } + + public function _createFilter() + { + return $this->getMock('Swift_StreamFilter'); + } +} diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/CHANGELOG.md b/vendor/symfony/event-dispatcher/CHANGELOG.md old mode 100755 new mode 100644 similarity index 100% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/CHANGELOG.md rename to vendor/symfony/event-dispatcher/CHANGELOG.md diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php old mode 100755 new mode 100644 similarity index 91% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php rename to vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php index 52c9c24..6a02e9f --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php +++ b/vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php @@ -100,7 +100,7 @@ public function removeListener($eventName, $listener) } /** - * @see EventDispatcherInterface::hasListeners() + * {@inheritdoc} */ public function hasListeners($eventName = null) { @@ -116,12 +116,12 @@ public function hasListeners($eventName = null) } /** - * @see EventDispatcherInterface::getListeners() + * {@inheritdoc} */ public function getListeners($eventName = null) { if (null === $eventName) { - foreach (array_keys($this->listenerIds) as $serviceEventName) { + foreach ($this->listenerIds as $serviceEventName => $args) { $this->lazyLoad($serviceEventName); } } else { @@ -131,11 +131,21 @@ public function getListeners($eventName = null) return parent::getListeners($eventName); } + /** + * {@inheritdoc} + */ + public function getListenerPriority($eventName, $listener) + { + $this->lazyLoad($eventName); + + return parent::getListenerPriority($eventName, $listener); + } + /** * Adds a service as event subscriber. * * @param string $serviceId The service ID of the subscriber service - * @param string $class The service's user name (which must implement EventSubscriberInterface) + * @param string $class The service's class name (which must implement EventSubscriberInterface) */ public function addSubscriberService($serviceId, $class) { @@ -152,21 +162,6 @@ public function addSubscriberService($serviceId, $class) } } - /** - * {@inheritdoc} - * - * Lazily loads listeners for this event from the dependency injection - * container. - * - * @throws \InvalidArgumentException if the service is not defined - */ - public function dispatch($eventName, Event $event = null) - { - $this->lazyLoad($eventName); - - return parent::dispatch($eventName, $event); - } - public function getContainer() { return $this->container; diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php old mode 100755 new mode 100644 similarity index 83% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php rename to vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php index 9a9d63d..35df816 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php +++ b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php @@ -31,6 +31,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface private $called; private $dispatcher; + private $wrappedListeners; /** * Constructor. @@ -45,6 +46,7 @@ public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $sto $this->stopwatch = $stopwatch; $this->logger = $logger; $this->called = array(); + $this->wrappedListeners = array(); } /** @@ -68,6 +70,16 @@ public function addSubscriber(EventSubscriberInterface $subscriber) */ public function removeListener($eventName, $listener) { + if (isset($this->wrappedListeners[$eventName])) { + foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) { + if ($wrappedListener->getWrappedListener() === $listener) { + $listener = $wrappedListener; + unset($this->wrappedListeners[$eventName][$index]); + break; + } + } + } + return $this->dispatcher->removeListener($eventName, $listener); } @@ -87,6 +99,14 @@ public function getListeners($eventName = null) return $this->dispatcher->getListeners($eventName); } + /** + * {@inheritdoc} + */ + public function getListenerPriority($eventName, $listener) + { + return $this->dispatcher->getListenerPriority($eventName, $listener); + } + /** * {@inheritdoc} */ @@ -146,7 +166,7 @@ public function getNotCalledListeners() $allListeners = $this->getListeners(); } catch (\Exception $e) { if (null !== $this->logger) { - $this->logger->info(sprintf('An exception was thrown while getting the uncalled listeners (%s)', $e->getMessage()), array('exception' => $e)); + $this->logger->info('An exception was thrown while getting the uncalled listeners.', array('exception' => $e)); } // unable to retrieve the uncalled listeners @@ -174,6 +194,8 @@ public function getNotCalledListeners() } } + uasort($notCalled, array($this, 'sortListenersByPriority')); + return $notCalled; } @@ -215,13 +237,16 @@ private function preProcess($eventName) foreach ($this->dispatcher->getListeners($eventName) as $listener) { $this->dispatcher->removeListener($eventName, $listener); $info = $this->getListenerInfo($listener, $eventName); - $name = isset($info['user']) ? $info['user'] : $info['type']; - $this->dispatcher->addListener($eventName, new WrappedListener($listener, $name, $this->stopwatch, $this)); + $name = isset($info['class']) ? $info['class'] : $info['type']; + $wrappedListener = new WrappedListener($listener, $name, $this->stopwatch, $this); + $this->wrappedListeners[$eventName][] = $wrappedListener; + $this->dispatcher->addListener($eventName, $wrappedListener); } } private function postProcess($eventName) { + unset($this->wrappedListeners[$eventName]); $skipped = false; foreach ($this->dispatcher->getListeners($eventName) as $listener) { if (!$listener instanceof WrappedListener) { // #12845: a new listener was added during dispatch. @@ -259,7 +284,7 @@ private function postProcess($eventName) } /** - * Returns information about the listener + * Returns information about the listener. * * @param object $listener The listener * @param string $eventName The event name @@ -270,6 +295,7 @@ private function getListenerInfo($listener, $eventName) { $info = array( 'event' => $eventName, + 'priority' => $this->getListenerPriority($eventName, $listener), ); if ($listener instanceof \Closure) { $info += array( @@ -307,7 +333,7 @@ private function getListenerInfo($listener, $eventName) } $info += array( 'type' => 'Method', - 'user' => $class, + 'class' => $class, 'method' => $listener[1], 'file' => $file, 'line' => $line, @@ -317,4 +343,25 @@ private function getListenerInfo($listener, $eventName) return $info; } + + private function sortListenersByPriority($a, $b) + { + if (is_int($a['priority']) && !is_int($b['priority'])) { + return 1; + } + + if (!is_int($a['priority']) && is_int($b['priority'])) { + return -1; + } + + if ($a['priority'] === $b['priority']) { + return 0; + } + + if ($a['priority'] > $b['priority']) { + return -1; + } + + return 1; + } } diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php old mode 100755 new mode 100644 similarity index 100% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php rename to vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/WrappedListener.php b/vendor/symfony/event-dispatcher/Debug/WrappedListener.php old mode 100755 new mode 100644 similarity index 100% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/WrappedListener.php rename to vendor/symfony/event-dispatcher/Debug/WrappedListener.php diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php b/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php old mode 100755 new mode 100644 similarity index 97% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php rename to vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php index e798ffe..7e74a37 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php +++ b/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php @@ -95,7 +95,7 @@ public function process(ContainerBuilder $container) throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as event subscribers are lazy-loaded.', $id)); } - // We must assume that the user value has been correctly filled, even if the service is created by a factory + // We must assume that the class value has been correctly filled, even if the service is created by a factory $class = $container->getParameterBag()->resolveValue($def->getClass()); $refClass = new \ReflectionClass($class); diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php b/vendor/symfony/event-dispatcher/Event.php old mode 100755 new mode 100644 similarity index 77% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php rename to vendor/symfony/event-dispatcher/Event.php index d10ee28..4a56349 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php +++ b/vendor/symfony/event-dispatcher/Event.php @@ -12,9 +12,9 @@ namespace Symfony\Component\EventDispatcher; /** - * Event is the base user for classes containing event data. + * Event is the base class for classes containing event data. * - * This user contains no event data. It is used by events that do not pass + * This class contains no event data. It is used by events that do not pass * state information to an event handler when an event is raised. * * You can call the method stopPropagation() to abort the execution of @@ -24,8 +24,6 @@ * @author Jonathan Wage * @author Roman Borschel * @author Bernhard Schussek - * - * @api */ class Event { @@ -50,8 +48,6 @@ class Event * @see Event::stopPropagation() * * @return bool Whether propagation was already stopped for this event. - * - * @api */ public function isPropagationStopped() { @@ -64,8 +60,6 @@ public function isPropagationStopped() * If multiple event listeners are connected to the same event, no * further event listener will be triggered once any trigger calls * stopPropagation(). - * - * @api */ public function stopPropagation() { @@ -77,9 +71,7 @@ public function stopPropagation() * * @param EventDispatcherInterface $dispatcher * - * @deprecated Deprecated in 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call. - * - * @api + * @deprecated since version 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call. */ public function setDispatcher(EventDispatcherInterface $dispatcher) { @@ -91,12 +83,12 @@ public function setDispatcher(EventDispatcherInterface $dispatcher) * * @return EventDispatcherInterface * - * @deprecated Deprecated in 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call. - * - * @api + * @deprecated since version 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call. */ public function getDispatcher() { + @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0. The event dispatcher instance can be received in the listener call instead.', E_USER_DEPRECATED); + return $this->dispatcher; } @@ -105,12 +97,12 @@ public function getDispatcher() * * @return string * - * @deprecated Deprecated in 2.4, to be removed in 3.0. The event name is passed to the listener call. - * - * @api + * @deprecated since version 2.4, to be removed in 3.0. The event name is passed to the listener call. */ public function getName() { + @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0. The event name can be received in the listener call instead.', E_USER_DEPRECATED); + return $this->name; } @@ -119,9 +111,7 @@ public function getName() * * @param string $name The event name. * - * @deprecated Deprecated in 2.4, to be removed in 3.0. The event name is passed to the listener call. - * - * @api + * @deprecated since version 2.4, to be removed in 3.0. The event name is passed to the listener call. */ public function setName($name) { diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php b/vendor/symfony/event-dispatcher/EventDispatcher.php old mode 100755 new mode 100644 similarity index 79% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php rename to vendor/symfony/event-dispatcher/EventDispatcher.php index 3b032fb..65c5cb6 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php +++ b/vendor/symfony/event-dispatcher/EventDispatcher.php @@ -24,8 +24,6 @@ * @author Fabien Potencier * @author Jordi Boggiano * @author Jordan Alliot - * - * @api */ class EventDispatcher implements EventDispatcherInterface { @@ -33,9 +31,7 @@ class EventDispatcher implements EventDispatcherInterface private $sorted = array(); /** - * @see EventDispatcherInterface::dispatch() - * - * @api + * {@inheritdoc} */ public function dispatch($eventName, Event $event = null) { @@ -46,21 +42,23 @@ public function dispatch($eventName, Event $event = null) $event->setDispatcher($this); $event->setName($eventName); - if (!isset($this->listeners[$eventName])) { - return $event; + if ($listeners = $this->getListeners($eventName)) { + $this->doDispatch($listeners, $eventName, $event); } - $this->doDispatch($this->getListeners($eventName), $eventName, $event); - return $event; } /** - * @see EventDispatcherInterface::getListeners() + * {@inheritdoc} */ public function getListeners($eventName = null) { if (null !== $eventName) { + if (!isset($this->listeners[$eventName])) { + return array(); + } + if (!isset($this->sorted[$eventName])) { $this->sortListeners($eventName); } @@ -68,7 +66,7 @@ public function getListeners($eventName = null) return $this->sorted[$eventName]; } - foreach (array_keys($this->listeners) as $eventName) { + foreach ($this->listeners as $eventName => $eventListeners) { if (!isset($this->sorted[$eventName])) { $this->sortListeners($eventName); } @@ -78,7 +76,30 @@ public function getListeners($eventName = null) } /** - * @see EventDispatcherInterface::hasListeners() + * Gets the listener priority for a specific event. + * + * Returns null if the event or the listener does not exist. + * + * @param string $eventName The name of the event + * @param callable $listener The listener + * + * @return int|null The event listener priority + */ + public function getListenerPriority($eventName, $listener) + { + if (!isset($this->listeners[$eventName])) { + return; + } + + foreach ($this->listeners[$eventName] as $priority => $listeners) { + if (false !== ($key = array_search($listener, $listeners, true))) { + return $priority; + } + } + } + + /** + * {@inheritdoc} */ public function hasListeners($eventName = null) { @@ -86,9 +107,7 @@ public function hasListeners($eventName = null) } /** - * @see EventDispatcherInterface::addListener() - * - * @api + * {@inheritdoc} */ public function addListener($eventName, $listener, $priority = 0) { @@ -97,7 +116,7 @@ public function addListener($eventName, $listener, $priority = 0) } /** - * @see EventDispatcherInterface::removeListener() + * {@inheritdoc} */ public function removeListener($eventName, $listener) { @@ -113,9 +132,7 @@ public function removeListener($eventName, $listener) } /** - * @see EventDispatcherInterface::addSubscriber() - * - * @api + * {@inheritdoc} */ public function addSubscriber(EventSubscriberInterface $subscriber) { @@ -133,7 +150,7 @@ public function addSubscriber(EventSubscriberInterface $subscriber) } /** - * @see EventDispatcherInterface::removeSubscriber() + * {@inheritdoc} */ public function removeSubscriber(EventSubscriberInterface $subscriber) { @@ -175,11 +192,7 @@ protected function doDispatch($listeners, $eventName, Event $event) */ private function sortListeners($eventName) { - $this->sorted[$eventName] = array(); - - if (isset($this->listeners[$eventName])) { - krsort($this->listeners[$eventName]); - $this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]); - } + krsort($this->listeners[$eventName]); + $this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]); } } diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php b/vendor/symfony/event-dispatcher/EventDispatcherInterface.php old mode 100755 new mode 100644 similarity index 95% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php rename to vendor/symfony/event-dispatcher/EventDispatcherInterface.php index efb7c5b..a9bdd2c --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php +++ b/vendor/symfony/event-dispatcher/EventDispatcherInterface.php @@ -17,8 +17,6 @@ * manager. * * @author Bernhard Schussek - * - * @api */ interface EventDispatcherInterface { @@ -32,8 +30,6 @@ interface EventDispatcherInterface * If not supplied, an empty Event instance is created. * * @return Event - * - * @api */ public function dispatch($eventName, Event $event = null); @@ -44,8 +40,6 @@ public function dispatch($eventName, Event $event = null); * @param callable $listener The listener * @param int $priority The higher this value, the earlier an event * listener will be triggered in the chain (defaults to 0) - * - * @api */ public function addListener($eventName, $listener, $priority = 0); @@ -56,8 +50,6 @@ public function addListener($eventName, $listener, $priority = 0); * interested in and added as a listener for these events. * * @param EventSubscriberInterface $subscriber The subscriber. - * - * @api */ public function addSubscriber(EventSubscriberInterface $subscriber); @@ -77,7 +69,7 @@ public function removeListener($eventName, $listener); public function removeSubscriber(EventSubscriberInterface $subscriber); /** - * Gets the listeners of a specific event or all listeners. + * Gets the listeners of a specific event or all listeners sorted by descending priority. * * @param string $eventName The name of the event * diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php b/vendor/symfony/event-dispatcher/EventSubscriberInterface.php old mode 100755 new mode 100644 similarity index 96% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php rename to vendor/symfony/event-dispatcher/EventSubscriberInterface.php index ff7e305..8af7789 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php +++ b/vendor/symfony/event-dispatcher/EventSubscriberInterface.php @@ -21,8 +21,6 @@ * @author Jonathan Wage * @author Roman Borschel * @author Bernhard Schussek - * - * @api */ interface EventSubscriberInterface { @@ -40,11 +38,9 @@ interface EventSubscriberInterface * * * array('eventName' => 'methodName') * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) + * * array('eventName' => array(array('methodName1', $priority), array('methodName2'))) * * @return array The event names to listen to - * - * @api */ public static function getSubscribedEvents(); } diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php b/vendor/symfony/event-dispatcher/GenericEvent.php old mode 100755 new mode 100644 similarity index 96% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php rename to vendor/symfony/event-dispatcher/GenericEvent.php index 542fbbb..6458180 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php +++ b/vendor/symfony/event-dispatcher/GenericEvent.php @@ -12,7 +12,7 @@ namespace Symfony\Component\EventDispatcher; /** - * Event encapsulation user. + * Event encapsulation class. * * Encapsulates events thus decoupling the observer from the subject they encapsulate. * @@ -71,7 +71,7 @@ public function getArgument($key) return $this->arguments[$key]; } - throw new \InvalidArgumentException(sprintf('%s not found in %s', $key, $this->getName())); + throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key)); } /** diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php b/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php old mode 100755 new mode 100644 similarity index 92% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php rename to vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php index 7ef9ece..13e8572 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php +++ b/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php @@ -83,6 +83,14 @@ public function getListeners($eventName = null) return $this->dispatcher->getListeners($eventName); } + /** + * {@inheritdoc} + */ + public function getListenerPriority($eventName, $listener) + { + return $this->dispatcher->getListenerPriority($eventName, $listener); + } + /** * {@inheritdoc} */ diff --git a/vendor/symfony/event-dispatcher/LICENSE b/vendor/symfony/event-dispatcher/LICENSE new file mode 100644 index 0000000..12a7453 --- /dev/null +++ b/vendor/symfony/event-dispatcher/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2004-2016 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md b/vendor/symfony/event-dispatcher/README.md old mode 100755 new mode 100644 similarity index 100% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md rename to vendor/symfony/event-dispatcher/README.md diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore b/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore deleted file mode 100755 index c49a5d8..0000000 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -composer.lock -phpunit.xml diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php b/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php old mode 100755 new mode 100644 similarity index 92% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php rename to vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php index b9e4194..0169ede --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php +++ b/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php @@ -12,6 +12,7 @@ namespace Symfony\Component\EventDispatcher\Tests; use Symfony\Component\EventDispatcher\Event; +use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\EventDispatcher\EventSubscriberInterface; abstract class AbstractEventDispatcherTest extends \PHPUnit_Framework_TestCase @@ -107,6 +108,20 @@ public function testGetAllListenersSortsByPriority() $this->assertSame($expected, $this->dispatcher->getListeners()); } + public function testGetListenerPriority() + { + $listener1 = new TestEventListener(); + $listener2 = new TestEventListener(); + + $this->dispatcher->addListener('pre.foo', $listener1, -10); + $this->dispatcher->addListener('pre.foo', $listener2); + + $this->assertSame(-10, $this->dispatcher->getListenerPriority('pre.foo', $listener1)); + $this->assertSame(0, $this->dispatcher->getListenerPriority('pre.foo', $listener2)); + $this->assertNull($this->dispatcher->getListenerPriority('pre.bar', $listener2)); + $this->assertNull($this->dispatcher->getListenerPriority('pre.foo', function () {})); + } + public function testDispatch() { $this->dispatcher->addListener('pre.foo', array($this->listener, 'preFoo')); @@ -118,15 +133,24 @@ public function testDispatch() $this->assertInstanceOf('Symfony\Component\EventDispatcher\Event', $this->dispatcher->dispatch(self::preFoo)); $event = new Event(); $return = $this->dispatcher->dispatch(self::preFoo, $event); - $this->assertEquals('pre.foo', $event->getName()); $this->assertSame($event, $return); } + /** + * @group legacy + */ + public function testLegacyDispatch() + { + $event = new Event(); + $return = $this->dispatcher->dispatch(self::preFoo, $event); + $this->assertEquals('pre.foo', $event->getName()); + } + public function testDispatchForClosure() { $invoked = 0; $listener = function () use (&$invoked) { - $invoked++; + ++$invoked; }; $this->dispatcher->addListener('pre.foo', $listener); $this->dispatcher->addListener('post.foo', $listener); @@ -239,7 +263,10 @@ public function testRemoveSubscriberWithMultipleListeners() $this->assertFalse($this->dispatcher->hasListeners(self::preFoo)); } - public function testEventReceivesTheDispatcherInstance() + /** + * @group legacy + */ + public function testLegacyEventReceivesTheDispatcherInstance() { $dispatcher = null; $this->dispatcher->addListener('test', function ($event) use (&$dispatcher) { diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php b/vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php old mode 100755 new mode 100644 similarity index 99% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php rename to vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php index 6f2fbcb..18a4b3f --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php +++ b/vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php @@ -92,6 +92,7 @@ public function testPreventDuplicateListenerService() /** * @expectedException \InvalidArgumentException + * @group legacy */ public function testTriggerAListenerServiceOutOfScope() { @@ -111,6 +112,9 @@ public function testTriggerAListenerServiceOutOfScope() $dispatcher->dispatch('onEvent'); } + /** + * @group legacy + */ public function testReEnteringAScope() { $event = new Event(); diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php b/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php old mode 100755 new mode 100644 similarity index 80% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php rename to vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php index 68b9523..1d4a8c8 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php +++ b/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php @@ -12,6 +12,7 @@ namespace Symfony\Component\EventDispatcher\Tests\Debug; use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\EventDispatcher\Event; @@ -24,7 +25,7 @@ public function testAddRemoveListener() $dispatcher = new EventDispatcher(); $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - $tdispatcher->addListener('foo', $listener = function () {; }); + $tdispatcher->addListener('foo', $listener = function () {}); $listeners = $dispatcher->getListeners('foo'); $this->assertCount(1, $listeners); $this->assertSame($listener, $listeners[0]); @@ -38,7 +39,7 @@ public function testGetListeners() $dispatcher = new EventDispatcher(); $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - $tdispatcher->addListener('foo', $listener = function () {; }); + $tdispatcher->addListener('foo', $listener = function () {}); $this->assertSame($dispatcher->getListeners('foo'), $tdispatcher->getListeners('foo')); } @@ -50,7 +51,7 @@ public function testHasListeners() $this->assertFalse($dispatcher->hasListeners('foo')); $this->assertFalse($tdispatcher->hasListeners('foo')); - $tdispatcher->addListener('foo', $listener = function () {; }); + $tdispatcher->addListener('foo', $listener = function () {}); $this->assertTrue($dispatcher->hasListeners('foo')); $this->assertTrue($tdispatcher->hasListeners('foo')); } @@ -75,14 +76,14 @@ public function testGetCalledListeners() { $dispatcher = new EventDispatcher(); $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - $tdispatcher->addListener('foo', $listener = function () {; }); + $tdispatcher->addListener('foo', $listener = function () {}); $this->assertEquals(array(), $tdispatcher->getCalledListeners()); - $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getNotCalledListeners()); + $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure', 'priority' => 0)), $tdispatcher->getNotCalledListeners()); $tdispatcher->dispatch('foo'); - $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getCalledListeners()); + $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure', 'priority' => null)), $tdispatcher->getCalledListeners()); $this->assertEquals(array(), $tdispatcher->getNotCalledListeners()); } @@ -106,11 +107,11 @@ public function testLogger() $dispatcher = new EventDispatcher(); $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger); - $tdispatcher->addListener('foo', $listener1 = function () {; }); - $tdispatcher->addListener('foo', $listener2 = function () {; }); + $tdispatcher->addListener('foo', $listener1 = function () {}); + $tdispatcher->addListener('foo', $listener2 = function () {}); - $logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\"."); - $logger->expects($this->at(1))->method('debug')->with("Notified event \"foo\" to listener \"closure\"."); + $logger->expects($this->at(0))->method('debug')->with('Notified event "foo" to listener "closure".'); + $logger->expects($this->at(1))->method('debug')->with('Notified event "foo" to listener "closure".'); $tdispatcher->dispatch('foo'); } @@ -122,11 +123,11 @@ public function testLoggerWithStoppedEvent() $dispatcher = new EventDispatcher(); $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger); $tdispatcher->addListener('foo', $listener1 = function (Event $event) { $event->stopPropagation(); }); - $tdispatcher->addListener('foo', $listener2 = function () {; }); + $tdispatcher->addListener('foo', $listener2 = function () {}); - $logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\"."); - $logger->expects($this->at(1))->method('debug')->with("Listener \"closure\" stopped propagation of the event \"foo\"."); - $logger->expects($this->at(2))->method('debug')->with("Listener \"closure\" was not called for event \"foo\"."); + $logger->expects($this->at(0))->method('debug')->with('Notified event "foo" to listener "closure".'); + $logger->expects($this->at(1))->method('debug')->with('Listener "closure" stopped propagation of the event "foo".'); + $logger->expects($this->at(2))->method('debug')->with('Listener "closure" was not called for event "foo".'); $tdispatcher->dispatch('foo'); } @@ -174,6 +175,19 @@ public function testDispatchReusedEventNested() $dispatcher->dispatch('foo'); $this->assertTrue($nestedCall); } + + public function testListenerCanRemoveItselfWhenExecuted() + { + $eventDispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch()); + $listener1 = function ($event, $eventName, EventDispatcherInterface $dispatcher) use (&$listener1) { + $dispatcher->removeListener('foo', $listener1); + }; + $eventDispatcher->addListener('foo', $listener1); + $eventDispatcher->addListener('foo', function () {}); + $eventDispatcher->dispatch('foo'); + + $this->assertCount(1, $eventDispatcher->getListeners('foo'), 'expected listener1 to be removed'); + } } class EventSubscriber implements EventSubscriberInterface diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php b/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php old mode 100755 new mode 100644 similarity index 95% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php rename to vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php index 41492f6..0fdd637 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php +++ b/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php @@ -157,8 +157,8 @@ public function testEventSubscriberResolvableClassName() { $container = new ContainerBuilder(); - $container->setParameter('subscriber.user', 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService'); - $container->register('foo', '%subscriber.user%')->addTag('kernel.event_subscriber', array()); + $container->setParameter('subscriber.class', 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService'); + $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array()); $container->register('event_dispatcher', 'stdClass'); $registerListenersPass = new RegisterListenersPass(); @@ -179,12 +179,12 @@ public function testEventSubscriberResolvableClassName() /** * @expectedException \InvalidArgumentException - * @expectedExceptionMessage You have requested a non-existent parameter "subscriber.user" + * @expectedExceptionMessage You have requested a non-existent parameter "subscriber.class" */ public function testEventSubscriberUnresolvableClassName() { $container = new ContainerBuilder(); - $container->register('foo', '%subscriber.user%')->addTag('kernel.event_subscriber', array()); + $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array()); $container->register('event_dispatcher', 'stdClass'); $registerListenersPass = new RegisterListenersPass(); diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php b/vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php old mode 100755 new mode 100644 similarity index 100% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php rename to vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php b/vendor/symfony/event-dispatcher/Tests/EventTest.php old mode 100755 new mode 100644 similarity index 88% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php rename to vendor/symfony/event-dispatcher/Tests/EventTest.php index 0c5db9a..9a82267 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php +++ b/vendor/symfony/event-dispatcher/Tests/EventTest.php @@ -15,7 +15,7 @@ use Symfony\Component\EventDispatcher\EventDispatcher; /** - * Test user for Event. + * Test class for Event. */ class EventTest extends \PHPUnit_Framework_TestCase { @@ -65,7 +65,6 @@ public function testStopPropagationAndIsPropagationStopped() */ public function testLegacySetDispatcher() { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); $this->event->setDispatcher($this->dispatcher); $this->assertSame($this->dispatcher, $this->event->getDispatcher()); } @@ -75,7 +74,6 @@ public function testLegacySetDispatcher() */ public function testLegacyGetDispatcher() { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); $this->assertNull($this->event->getDispatcher()); } @@ -84,7 +82,6 @@ public function testLegacyGetDispatcher() */ public function testLegacyGetName() { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); $this->assertNull($this->event->getName()); } @@ -93,7 +90,6 @@ public function testLegacyGetName() */ public function testLegacySetName() { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); $this->event->setName('foo'); $this->assertEquals('foo', $this->event->getName()); } diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/vendor/symfony/event-dispatcher/Tests/GenericEventTest.php old mode 100755 new mode 100644 similarity index 99% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php rename to vendor/symfony/event-dispatcher/Tests/GenericEventTest.php index 47bed77..aebd82d --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php +++ b/vendor/symfony/event-dispatcher/Tests/GenericEventTest.php @@ -14,7 +14,7 @@ use Symfony\Component\EventDispatcher\GenericEvent; /** - * Test user for Event. + * Test class for Event. */ class GenericEventTest extends \PHPUnit_Framework_TestCase { diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php b/vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php old mode 100755 new mode 100644 similarity index 100% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php rename to vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json b/vendor/symfony/event-dispatcher/composer.json old mode 100755 new mode 100644 similarity index 56% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json rename to vendor/symfony/event-dispatcher/composer.json index a516d46..282b770 --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json +++ b/vendor/symfony/event-dispatcher/composer.json @@ -3,7 +3,7 @@ "type": "library", "description": "Symfony EventDispatcher Component", "keywords": [], - "homepage": "http://symfony.com", + "homepage": "https://symfony.com", "license": "MIT", "authors": [ { @@ -12,18 +12,17 @@ }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { - "symfony/phpunit-bridge": "~2.7", - "symfony/dependency-injection": "~2.6", - "symfony/expression-language": "~2.6", - "symfony/config": "~2.0,>=2.0.5", - "symfony/stopwatch": "~2.3", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/config": "~2.0,>=2.0.5|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0", "psr/log": "~1.0" }, "suggest": { @@ -31,13 +30,15 @@ "symfony/http-kernel": "" }, "autoload": { - "psr-0": { "Symfony\\Component\\EventDispatcher\\": "" } + "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" }, + "exclude-from-classmap": [ + "/Tests/" + ] }, - "target-dir": "Symfony/Component/EventDispatcher", "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } } } diff --git a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist b/vendor/symfony/event-dispatcher/phpunit.xml.dist old mode 100755 new mode 100644 similarity index 99% rename from vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist rename to vendor/symfony/event-dispatcher/phpunit.xml.dist index b14fde5..ae0586e --- a/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist +++ b/vendor/symfony/event-dispatcher/phpunit.xml.dist @@ -9,6 +9,7 @@ + ./Tests/ diff --git a/views/about/verificationimage.php b/views/about/verificationimage.php new file mode 100644 index 0000000..f55d450 --- /dev/null +++ b/views/about/verificationimage.php @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/views/account/forgot_password.php b/views/account/forgot_password.php new file mode 100644 index 0000000..ce06dfc --- /dev/null +++ b/views/account/forgot_password.php @@ -0,0 +1,34 @@ +
+
+
+
+
+

Forgot your password?

+
+
+
+
+ +
+ + +
+ + + +
+
+ + + +
+
+
+ +
diff --git a/views/account/reset_password.php b/views/account/reset_password.php new file mode 100644 index 0000000..ec6647c --- /dev/null +++ b/views/account/reset_password.php @@ -0,0 +1,43 @@ +
+
+
+
+
+

Reset your password

+
+
+
+
+
+ + +
+
+ + +
+
+ +
+ "/> + + +
+
+ + + +
+
+
+ +
diff --git a/views/account/viewlogin.php b/views/account/viewlogin.php new file mode 100644 index 0000000..cba2317 --- /dev/null +++ b/views/account/viewlogin.php @@ -0,0 +1,67 @@ + +
+
+ +
+ +
+   +
+ +
+
+

Sign In

+
+
+
+
+
+ +
+
+ +
+ + +
+ + +
+ +
+
+ +
+
+
+
+
... or login with
+ +
+
+
+ +
+
+ diff --git a/views/account/viewprofile.php b/views/account/viewprofile.php new file mode 100644 index 0000000..6818c7f --- /dev/null +++ b/views/account/viewprofile.php @@ -0,0 +1,113 @@ +getConn(); +$search = new Search(); +$search->setUemail($_SESSION['email']); +$result = $search->showPartialSearch($dbconn); + +?> + +
+
+
+
+ " width="100px" size="100px" />
+

Welcome

+

+ +
+
+
+ +
+
+
+ Saved Search Query +
+ +
+
+ + + + + + + + + + + + + + + + +
DateTypeTerm
+ + + + +
+
Recent + Activities
+
+ + + + + + + + 0) { + $counter = count($history) - 1; + ?> + + + + + + + + + + + +
DateTypeTerm
+ + + + + +
+
+ + +
+ + + + \ No newline at end of file diff --git a/views/account/viewregister.php b/views/account/viewregister.php new file mode 100644 index 0000000..e39b9f2 --- /dev/null +++ b/views/account/viewregister.php @@ -0,0 +1,175 @@ +
+
+
+ +
+   +
+ + +
+
+

Sign Up

+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + +
+
+ + + +
+ + + + + +
+   Successfully registered login here +
+ + +
+
+

Sign Up

+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + +
+
+ + + +
+ + +
+
+ +
+ + diff --git a/views/advanced/builder.php b/views/advanced/builder.php new file mode 100644 index 0000000..c03b534 --- /dev/null +++ b/views/advanced/builder.php @@ -0,0 +1,70 @@ +
+
+

Builder

+
+ +
+
+
+
+ + + +
+
+
+ +
+ +
+ +
+ + +
+
+ +
+ +
+ +
+ + +
\ No newline at end of file diff --git a/views/display_item/breadcrumb.php b/views/display_item/breadcrumb.php new file mode 100644 index 0000000..fc6421c --- /dev/null +++ b/views/display_item/breadcrumb.php @@ -0,0 +1,39 @@ +getQueryString(); + if ($query != NULL && strlen($query) > 0) { + ?> + + + \ No newline at end of file diff --git a/views/display_item/pubmed_grant.php b/views/display_item/pubmed_grant.php new file mode 100644 index 0000000..d06869d --- /dev/null +++ b/views/display_item/pubmed_grant.php @@ -0,0 +1,48 @@ +getSearchResults(); + $query = $service->getQueryString(); + if (isset($result['citation.PMID'])) { + $pmid= substr($result['citation.PMID'],5); + } elseif(isset($result['publication.pmid'])) { + $pmid = substr($result['publication.pmid'], 5); + } + elseif(isset($result['pmid'])) { + $pmid = substr($result['pmid'], 5); + } + else + { + return ; + } + $PubmedGrantService = new PubmedGrantService(); + $itemArray = $PubmedGrantService->getPubmedGrant($pmid); + + if (sizeof($itemArray) > 0) { + ?> +
+ +
+
    + +

  • + +
+
+
+ + + diff --git a/views/display_item/related_publications.php b/views/display_item/related_publications.php new file mode 100644 index 0000000..ee1c32f --- /dev/null +++ b/views/display_item/related_publications.php @@ -0,0 +1,41 @@ +getSearchResults(); + if (isset($result['dataItem'])) { + $query = $result['dataItem']['title']; + }elseif(isset($result['dataItem.title'])){ + $query = $result['dataItem.title']; + }elseif(isset($result['dataset.title'])){ + $query = $result['dataset.title']; + }elseif(isset($result['Dataset.briefTitle'])){ + $query = $result['Dataset.briefTitle']; + } + else { + $query = $result['title']; + } + + $query = strip_tags($query); + + $pubmedPublication = new PubmedPublication(); + $itemArray = $pubmedPublication->getPublication($query, 5); + if (sizeof($itemArray) > 0) { + ?> + + \ No newline at end of file diff --git a/views/display_item/repositories/ArrayExpress.php b/views/display_item/repositories/ArrayExpress.php new file mode 100644 index 0000000..65212c1 --- /dev/null +++ b/views/display_item/repositories/ArrayExpress.php @@ -0,0 +1,82 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
Full Title:datasource_headers[0]]; ?>
ID:
Experiment Type:
Description:
+ +
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Submission Date:
Release Date:
Last Update:
Experiment Species:
+
+
+
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Bioproject.php b/views/display_item/repositories/Bioproject.php new file mode 100644 index 0000000..32e43af --- /dev/null +++ b/views/display_item/repositories/Bioproject.php @@ -0,0 +1,88 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Full Title:datasource_headers[0]]; ?>
ID:
Keywords:
NCBI ID:
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Release Date: + +
Organism:
Description:
+ +
+
+
+
+
+
+ + \ No newline at end of file diff --git a/views/display_item/repositories/Cia.php b/views/display_item/repositories/Cia.php new file mode 100644 index 0000000..f54f1a2 --- /dev/null +++ b/views/display_item/repositories/Cia.php @@ -0,0 +1,157 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + + ?> +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Creator:
License:
Date LastUpdate:
Status:
Download URL:".$results["dataset.downloadURL"].""; ?>
Size:
Related Dataset:
Disease:
+
+ +
+ +
+
+ + + + + + + + + + + +
Name
Scientific Name
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ + +
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/ClinicalTrials.php b/views/display_item/repositories/ClinicalTrials.php new file mode 100644 index 0000000..6eba25d --- /dev/null +++ b/views/display_item/repositories/ClinicalTrials.php @@ -0,0 +1,191 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
NCT ID:
Creator:
Description:
+ +
Deposition Date:
Verification Date:
Has Expanded Access:
Keywords:
Release Date:
Is Fda Regulated:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Homepage' . $results["Study.homepage"] . ""; ?>
Disease
Study Type:
Status:
Phase:
Phase:
Location
Recruits' . + 'Minimum Age : ' . $results["Study.recruits.minimum_age"] . '
' . + 'Gender : ' . $results["Study.recruits.gender"] . '
' . + 'criteria' . $results["Study.recruits.criteria"] . '
'; + ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + +
Title
Description
Agent
+
+
+
+ +
+ +
+
+ + + + + + + + + + + +
Oversight info of Clinical Study
Grant Funder
+
+
+
+
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Ctn.php b/views/display_item/repositories/Ctn.php new file mode 100644 index 0000000..6b1f967 --- /dev/null +++ b/views/display_item/repositories/Ctn.php @@ -0,0 +1,78 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
ID:
Data Released:
Download URL:".$results["url"].""; ?>
Description:
Keywords:
+
+ +
+ +
+
+ + + + + + + + + + + +
Name
Scientific Name
+
+
+
+
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Cvrg.php b/views/display_item/repositories/Cvrg.php new file mode 100644 index 0000000..76b9c30 --- /dev/null +++ b/views/display_item/repositories/Cvrg.php @@ -0,0 +1,133 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
Title:
Data Released:
Download URL:".$results["dataset.downloadURL"].""; ?>
Description:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + +
Name
Affiliation
+
+
+
+
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Dataverse.php b/views/display_item/repositories/Dataverse.php new file mode 100644 index 0000000..b72dbfc --- /dev/null +++ b/views/display_item/repositories/Dataverse.php @@ -0,0 +1,117 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Person:
Publication:
Data Released:
Dataset ID :
Download URL:" . $results["dataset.downloadURL"] . ""; ?>
Description:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:" . $results["dataRepository.homePage"] . ""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
ID
Homepage:" . $results["organization.homePage"] . ""; ?>
+
+
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/DbGap.php b/views/display_item/repositories/DbGap.php new file mode 100644 index 0000000..babf5ec --- /dev/null +++ b/views/display_item/repositories/DbGap.php @@ -0,0 +1,281 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
Title:datasource_headers[0]]; ?>
ID:
Topic:
Path:
+
+ +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Stored In:dbGap
Category:
Consent Type:
IRB:
Measurement:
+
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Disease:
Cohort:
Type:
platform:
Study Inclusion/Exclusion Criteria:
',$temp); + + echo $temp; + ?>
Study Description:
',$temp); + + echo $temp; + ?>
Study Attribution:
',$temp); + $temp = str_replace('*','
',$temp); + + echo $temp; + + ?>
Study History:

',$temp); + echo $temp; ?>
+
+
+
+ + + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Demographics:
Age:
Age Max:
Age Min:
Female Number:
Male Number:
Other Gender Number:
Unknown Gender Number:
Gender:
Geography:
+
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + +
Phenotype:

phv',$results["phen"]); ?>
Phenotype CUI:
Pheno Type:
+
+
+
+ +
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Dryad.php b/views/display_item/repositories/Dryad.php new file mode 100644 index 0000000..5c9d038 --- /dev/null +++ b/views/display_item/repositories/Dryad.php @@ -0,0 +1,158 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Creator:
Date Issued:
Keywords:
Date Available:
Date Accession:
License:".$results["dataset.license"].""; ?>
Related Dataset:
Download URL:".$results["dataset.downloadURL"].""; ?>
Date Last Update:
Description:
+
+ +
+ +
+
+ + + + + + + + + + + + +
Name
Homepage:".$results["dataRepository.homepage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + +
Name
Abbreviation
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Homepage".$results["datastandard.homepage"].""; ?>
License".$results["datastandard.license"].""; ?>
+
+
+
+
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Gemma.php b/views/display_item/repositories/Gemma.php new file mode 100644 index 0000000..20dc6d4 --- /dev/null +++ b/views/display_item/repositories/Gemma.php @@ -0,0 +1,42 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
Title:datasource_headers[0]]; ?>
ID:
Data Types:
Description:
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Geo.php b/views/display_item/repositories/Geo.php new file mode 100644 index 0000000..fe086ba --- /dev/null +++ b/views/display_item/repositories/Geo.php @@ -0,0 +1,115 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
Title:datasource_headers[0]]; ?>
ID:
Type:
Description:
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Link:
GEO Accession:
Platform:
Series:
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Organism:
Source Name:
Entry Type:
Assays:
+
+
+
+
+ + +
+ \ No newline at end of file diff --git a/views/display_item/repositories/Lincs.php b/views/display_item/repositories/Lincs.php new file mode 100644 index 0000000..15804ba --- /dev/null +++ b/views/display_item/repositories/Lincs.php @@ -0,0 +1,120 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Cell Line:
Data Types:
Biological Process:
Dimension Name:
Assay:
Dataset ID:
Protein Name:
Internal Project Name:
Person:
download URL: + "> + + +
Release Date: + + + + +
+
+ +
+
+ +
+
+ + + + + + + + + + + + +
Name:
Abbreviation:
+
+
+
+ + +
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Mpd.php b/views/display_item/repositories/Mpd.php new file mode 100644 index 0000000..8ca2b20 --- /dev/null +++ b/views/display_item/repositories/Mpd.php @@ -0,0 +1,130 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Dataset ID :
Download URL:".$results["dataset.downloadURL"].""; ?>
Description:
Size :
Gender :
Datatype :
Dimension:
',' ',$results["dimension.name"]); + //$temp=str_replace(';','
',$temp); + echo $temp; + ?>
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + +
Name
ID
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ + +
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Neuromorpho.php b/views/display_item/repositories/Neuromorpho.php new file mode 100644 index 0000000..336c9cc --- /dev/null +++ b/views/display_item/repositories/Neuromorpho.php @@ -0,0 +1,191 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
Title:
Download URL:'.$results["dataset.downloadURL"].""; ?>
Description:
ID:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Name
Strain:
Scientific Name:
Gender:
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Anatomical Part
Treatment
Cell
Study Group
Dimension
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Niddkcr.php b/views/display_item/repositories/Niddkcr.php new file mode 100644 index 0000000..ec88e4b --- /dev/null +++ b/views/display_item/repositories/Niddkcr.php @@ -0,0 +1,114 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Dataset ID :
Download URL:".$results["dataset.downloadURL"].""; ?>
Disease :
Treatment :
Organism :
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + +
Name
ID
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Nursa.php b/views/display_item/repositories/Nursa.php new file mode 100644 index 0000000..214d26e --- /dev/null +++ b/views/display_item/repositories/Nursa.php @@ -0,0 +1,142 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Download URL:'.$results["dataset.downloadURL"].""; ?>
Description:
ID:
Data Acquisition:
+
+ +
+ +
+
+ + + + + + + +
Title
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Pdb.php b/views/display_item/repositories/Pdb.php new file mode 100644 index 0000000..e8858de --- /dev/null +++ b/views/display_item/repositories/Pdb.php @@ -0,0 +1,103 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
Title:datasource_headers[0]]; ?>
ID:
Keywords:
Description:
+
+ +
+ datasource_headers[0] && strpos($key, 'dataItem') === false && strlen($results[$key]) == 0) { + $metadataCount = 0; + foreach (array_keys($results) as $element) { + if ($element != $repository->datasource_headers[0] && strpos($element, 'dataItem') == false) { + if (strlen($results[$element]) != 0 && substr(strtolower($element), 0, strlen($key)) == strtolower($key)) { + $metadataCount++; + } + } + } + if ($metadataCount > 0) { + ?> +
+ +
+
+ + + datasource_headers[0] && strpos($element, 'dataItem') == false) { + if (strlen($results[$element]) != 0 && substr(strtolower($element), 0, strlen($key)) == strtolower($key)) { + ?> + + + + + + +
core_fields_show_name[$element]; ?>: + ', $results[$element]); + } else { + echo $results[$element]; + } + ?> +
+
+
+
+ +
+
+ diff --git a/views/display_item/repositories/Peptideatlas.php b/views/display_item/repositories/Peptideatlas.php new file mode 100644 index 0000000..d174a68 --- /dev/null +++ b/views/display_item/repositories/Peptideatlas.php @@ -0,0 +1,150 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Description:
Dataset ID :
Download URL:".$results["dataset.downloadURL"].""; ?>
Instrument:
Treatment Description:
Pmid:
+
+
+ +
+
+ + + + + + + + + + + +
Name
Strain
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + +
Name
ID
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Name
ID
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ + +
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/Physiobank.php b/views/display_item/repositories/Physiobank.php new file mode 100644 index 0000000..9157f3f --- /dev/null +++ b/views/display_item/repositories/Physiobank.php @@ -0,0 +1,108 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
Title:
Description :
Download URL:".$results["dataset.downloadURL"].""; ?>
Publication:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + +
Name
ID
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Proteomexchange.php b/views/display_item/repositories/Proteomexchange.php new file mode 100644 index 0000000..0e8d785 --- /dev/null +++ b/views/display_item/repositories/Proteomexchange.php @@ -0,0 +1,117 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Person :
Organism :
Download URL:".$results["dataset.downloadURL"].""; ?>
Publication:
keywords:
Instrument:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + +
Name
ID
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Sra.php b/views/display_item/repositories/Sra.php new file mode 100644 index 0000000..eeb5a23 --- /dev/null +++ b/views/display_item/repositories/Sra.php @@ -0,0 +1,46 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Title:datasource_headers[0]]; ?>
Organism:
Accession:
Strategy:
Size:
+
+
+ \ No newline at end of file diff --git a/views/display_item/repositories/Yped.php b/views/display_item/repositories/Yped.php new file mode 100644 index 0000000..0bf2a9e --- /dev/null +++ b/views/display_item/repositories/Yped.php @@ -0,0 +1,132 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Download URL:'.$results["dataset.downloadURL"].""; ?>
Description:
ID:
Size:
Person:
Data Acquisition:
Publication:
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/views/display_item/repositories/openFMRI.php b/views/display_item/repositories/openFMRI.php new file mode 100644 index 0000000..a5e15bb --- /dev/null +++ b/views/display_item/repositories/openFMRI.php @@ -0,0 +1,142 @@ +getCurrentRepository(); + $results = $service->getSearchResults(); + + ?> +
+
+
+ + + + datasource_headers[0]]; ?> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Title:
Download URL:'.$results["dataset.downloadURL"].""; ?>
Description:
ID:
Data Acquisition:
+
+ +
+ +
+
+ + + + + + + +
Name
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["dataRepository.homePage"].""; ?>
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
Name
Abbreviation
Homepage:".$results["organization.homePage"].""; ?>
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/views/display_item/result.php b/views/display_item/result.php new file mode 100644 index 0000000..37c1e78 --- /dev/null +++ b/views/display_item/result.php @@ -0,0 +1,55 @@ +getRepositoryId() == "0001") { + require_once dirname(__FILE__) . '/repositories/DbGap.php'; + } elseif ($service->getRepositoryId() == "0002") { + require_once dirname(__FILE__) . '/repositories/Pdb.php'; + } elseif ($service->getRepositoryId() == "0003") { + require_once dirname(__FILE__) . '/repositories/Geo.php'; + } elseif ($service->getRepositoryId() == "0004") { + require_once dirname(__FILE__) . '/repositories/Lincs.php'; + } elseif ($service->getRepositoryId() == "0005") { + require_once dirname(__FILE__) . '/repositories/Gemma.php'; + } elseif ($service->getRepositoryId() == "0006") { + require_once dirname(__FILE__) . '/repositories/ArrayExpress.php'; + } elseif ($service->getRepositoryId() == "0007") { + require_once dirname(__FILE__) . '/repositories/Sra.php'; + } elseif ($service->getRepositoryId() == "0008") { + require_once dirname(__FILE__) . '/repositories/Bioproject.php'; + }elseif ($service->getRepositoryId() == "0009") { + require_once dirname(__FILE__) . '/repositories/ClinicalTrials.php'; + }elseif ($service->getRepositoryId() == "0010") { + require_once dirname(__FILE__) . '/repositories/Dryad.php'; + }elseif ($service->getRepositoryId() == "0011") { + require_once dirname(__FILE__) . '/repositories/Cvrg.php'; + }elseif ($service->getRepositoryId() == "0012") { + require_once dirname(__FILE__) . '/repositories/Dataverse.php'; + }elseif ($service->getRepositoryId() == "0013") { + require_once dirname(__FILE__) . '/repositories/Neuromorpho.php'; + } elseif ($service->getRepositoryId() == "0014") { + require_once dirname(__FILE__) . '/repositories/Peptideatlas.php'; + }elseif ($service->getRepositoryId() == "0015") { + require_once dirname(__FILE__) . '/repositories/Ctn.php'; + }elseif ($service->getRepositoryId() == "0016") { + require_once dirname(__FILE__) . '/repositories/Cia.php'; + }elseif ($service->getRepositoryId() == "0017") { + require_once dirname(__FILE__) . '/repositories/Mpd.php'; + }elseif ($service->getRepositoryId() == "0018") { + require_once dirname(__FILE__) . '/repositories/Niddkcr.php'; + }elseif ($service->getRepositoryId() == "00019") { + require_once dirname(__FILE__) . '/repositories/openFMRI.php'; + }elseif ($service->getRepositoryId() == "00020") { + require_once dirname(__FILE__) . '/repositories/Nursa.php'; + }elseif ($service->getRepositoryId() == "00023") { + require_once dirname(__FILE__) . '/repositories/Yped.php'; + } + elseif ($service->getRepositoryId() == "0021") { + require_once dirname(__FILE__) . '/repositories/Physiobank.php'; + } + elseif ($service->getRepositoryId() == "0022") { + require_once dirname(__FILE__) . '/repositories/Proteomexchange.php'; + } + echo displayResult($service); +} +?> diff --git a/views/display_item/search_panel.php b/views/display_item/search_panel.php new file mode 100644 index 0000000..36719f5 --- /dev/null +++ b/views/display_item/search_panel.php @@ -0,0 +1,38 @@ +getQueryString(); + $repo_status = 'unchecked'; + $data_status = 'checked'; + + ?> +
+
+
+ + +
+ +
+
+ +
+ + + + help + Advanced Search +
+ Search Examples: (Breast Cancer, Genetic Analysis Software, Gene EGFR, Lung[title] AND Cancer, Cancer AND (Lung[Title] OR Skin[Title])) + +
+
+ \ No newline at end of file diff --git a/views/display_item/similar_datasets.php b/views/display_item/similar_datasets.php new file mode 100644 index 0000000..7546b1f --- /dev/null +++ b/views/display_item/similar_datasets.php @@ -0,0 +1,72 @@ +getRepositoryId()) { + + case "0002": // PDB + $pdbSimilarDatasetsService = new PDBSimilarData; + $similarDatasets = $pdbSimilarDatasetsService->getPDBDataset($service->getItemUid(), 6); + break; + + case "0004": // LINCS + $lincsSimilarDatasetsService = new LINCSSimilarData; + $similarDatasets = $lincsSimilarDatasetsService -> getLincsDataset($service->getItemUid(), 6); + break; + + case "0005": // Gemma + $gemmaSimilarDatasetsService = new GemmaSimilarData; + $similarDatasets = $gemmaSimilarDatasetsService -> getGemmaDataset($service->getItemUid(), 6); + break; + + + } + + + if (sizeof($similarDatasets) > 0) { + ?> + + diff --git a/views/feedback.php b/views/feedback.php new file mode 100644 index 0000000..ee34373 --- /dev/null +++ b/views/feedback.php @@ -0,0 +1,14 @@ + +
+

Feedback?

+

+ If you are having problems using our tools, or if you would just like + to send us some feedback, please post your questions on GitHub. +

+
+ \ No newline at end of file diff --git a/views/footer.php b/views/footer.php new file mode 100644 index 0000000..7c61a26 --- /dev/null +++ b/views/footer.php @@ -0,0 +1,25 @@ + + +'; + echo "\r\n"; + } +} +?> + + + \ No newline at end of file diff --git a/views/grant_details/grant_details.php b/views/grant_details/grant_details.php new file mode 100644 index 0000000..894fb59 --- /dev/null +++ b/views/grant_details/grant_details.php @@ -0,0 +1,118 @@ + +
+
+
+
Grant Support
+
+
+ + + +
+
+ + 0){ ?> +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:" target="_blank">
Project Num:
PI:
ORG Name:
IC Name:
Fiscal Year:
+
+ + +
+ +
+
+ +
+
+getSearchResults(); + if (isset($result['citation.PMID'])) { + $pmid= substr($result['citation.PMID'],5); + } else { + return ; + }*/ + //$pubgrant_serivce = new PubmedGrantService(); + //$pubgrant_service->getPubmedGrant(); + $grants_details = $pubgrant_service->search_grant_info(); + displayResult($grants_details); +} +/*function show_link_or_not($ID){ + //some project are only in database but not in Reporter search result, here to check if show the link or not + $url= "https://projectreporter.nih.gov/project_info_details.cfm?aid=".$ID; + $resultPage = file_get_contents($url); + + if(strpos($resultPage,"This project doesn't exist in RePORTER yet. Please check your query or check back after the start date. ")!==false){ + echo false; + } + else{ + echo true; + } +}*/ +?> \ No newline at end of file diff --git a/views/header.php b/views/header.php new file mode 100644 index 0000000..f062074 --- /dev/null +++ b/views/header.php @@ -0,0 +1,122 @@ + + + + + + + + BioCADDIE | Data Discovery Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + Mountain View +
+ + biomedical and healthCAre Data Discovery Index Ecosystem + +
+ +
+ +
\ No newline at end of file diff --git a/views/index/announcements.php b/views/index/announcements.php new file mode 100644 index 0000000..341255c --- /dev/null +++ b/views/index/announcements.php @@ -0,0 +1,37 @@ +
+
+ Announcements + + + +
+ +
+ + + + + + + + + + + + +
+ + September 16, 2015 +

Feedback Update: If you are having problems using our tools, or if you would just like to send us some feedback, please (Read More...)

+
+ + October 12, 2015 +

New Version Released. We just released our new interface design with new features. (Read More...)

+
+ + September 16, 2015 +

Feedback Update: If you are having problems using our tools, or if you (Read More...)

+
+ +
+
\ No newline at end of file diff --git a/views/index/latest-datasets.php b/views/index/latest-datasets.php new file mode 100644 index 0000000..093ffa7 --- /dev/null +++ b/views/index/latest-datasets.php @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/views/index/most-accessed-repositories.php b/views/index/most-accessed-repositories.php new file mode 100644 index 0000000..7a7c951 --- /dev/null +++ b/views/index/most-accessed-repositories.php @@ -0,0 +1,12 @@ +
+
+ Most Accessed Datasets + + + + Coming Soon +
+
+
+
+
\ No newline at end of file diff --git a/views/index/new-features.php b/views/index/new-features.php new file mode 100644 index 0000000..e8d000a --- /dev/null +++ b/views/index/new-features.php @@ -0,0 +1,33 @@ +
+
+ New Features + + + +
+
+ + + + + + + +
+ + March 1, 2016 +
    +
  • Create a user account
  • +
  • Save/Send search results
  • +
  • Boolean/Advanced search
  • +
  • Query expansion
  • +
  • Link data sets to grant
  • +
  • Display results from multiple repositories
  • +
  • Integrate new repositories
  • +
  • Improve faceted search
  • +
  • Search for repository
  • +
  • Autocomplete
  • +
+
+
+
\ No newline at end of file diff --git a/views/index/pilot-projects.php b/views/index/pilot-projects.php new file mode 100644 index 0000000..0a04ce2 --- /dev/null +++ b/views/index/pilot-projects.php @@ -0,0 +1,48 @@ +
+
+
+
+
+ Pilot Projects +
+
+
+
+
+
+ + GWAS Finder +

Search literatures for "Genome-Wide Association Studies".

+
+
+
+
+ + iSEE-DELVE +

Search Visualization project for Big Data.

+
+ +
+
+
+ + DataRank +

Find most suitable datasets for you.

+
+
+
+
+ + Data Citation Discovery Coming Soon +

+ Citation and Data Access Metrics Development applied to RCSB Protein Data Bank. +

+
+
+
+
+
+
+
+
+
diff --git a/views/index/repositories.php b/views/index/repositories.php new file mode 100644 index 0000000..08785da --- /dev/null +++ b/views/index/repositories.php @@ -0,0 +1,12 @@ +
+
+ Top 8 Repositories + + + + +
+
+
+
+
\ No newline at end of file diff --git a/views/index/search_panel.php b/views/index/search_panel.php new file mode 100644 index 0000000..2e5c1f6 --- /dev/null +++ b/views/index/search_panel.php @@ -0,0 +1,31 @@ +
+

Engaging The Community Toward a Data Discovery Index (v0.5)

+
+
+ +
+ +
+
+
+ + + + Advanced Search + help +
+ Search Examples: (Breast Cancer, Genetic Analysis Software, Gene EGFR, Lung[title] AND Cancer, Cancer AND (Lung[Title] OR Skin[Title])) + + +
+ +
+
\ No newline at end of file diff --git a/views/index/statistics.php b/views/index/statistics.php new file mode 100644 index 0000000..f7bef9b --- /dev/null +++ b/views/index/statistics.php @@ -0,0 +1,41 @@ +
+
+ Statistics + + + +
+
+
+
+ +
+ +

10

+

Data Types

+
+
+ +
+
+ +

838,137

+

Datasets

+
+
+ +

4

+

Pilot Projects

+
+
+
+
+
\ No newline at end of file diff --git a/views/recent.php b/views/recent.php new file mode 100644 index 0000000..2d4bd47 --- /dev/null +++ b/views/recent.php @@ -0,0 +1,113 @@ + +
+
+ + +
+

Register or Sign in and you will gain the ability to permanently store search queries and records. +

+
+
+
+ +
+
+ + + +
+
+ +
+
+ + + + + + +
+
+
Recent + Activities
+
+ + + + + + + 0) { + $counter = count($history) - 1; + ?> + + + + + + + + + + + +
DateTypeTerm
+ '; + echo " ".$date[$counter]; ?> + + + + +
+
+
+
+
+ +
+ diff --git a/views/savedsearch.php b/views/savedsearch.php new file mode 100644 index 0000000..8374263 --- /dev/null +++ b/views/savedsearch.php @@ -0,0 +1,58 @@ +
+ +
+ +
+ +
+
+
+ Saved Search +
+ +
+ + + + + + + + + + + + + + + + +
DateTypeTerm
+ '; + echo " " . $row['create_time']; ?>
+
+
+
+ + + +
diff --git a/views/search/datatypes.php b/views/search/datatypes.php new file mode 100644 index 0000000..5560be1 --- /dev/null +++ b/views/search/datatypes.php @@ -0,0 +1,44 @@ +getDatatypes(); + foreach ($datatypes as $key => $row) + { + $nums[$key] = $row['rows']; + } + array_multisort($nums, SORT_DESC, $datatypes); + if ($searchBuilder->getTotalRows() > 0) { + ?> +
+
+ Data Types +
+
+ +
+
+ \ No newline at end of file diff --git a/views/search/pagination.php b/views/search/pagination.php new file mode 100644 index 0000000..b9abba8 --- /dev/null +++ b/views/search/pagination.php @@ -0,0 +1,74 @@ + +getOffset() - 5); + $min = min($min, ceil($searchBuilder->getTotalRows() / $searchBuilder->getRowsLimit()) - 10); + $min = max($min, 1); + $max = min(ceil($searchBuilder->getTotalRows() / $searchBuilder->getRowsLimit()), $searchBuilder->getOffset() + 5); + $max = max(10, $max); + ?> +
+
    +
  • + + + +
  • +
  • + + + +
  • + getTotalRows() / $searchBuilder->getRowsLimit())); $i++) { + $activeFlag = $searchBuilder->getOffset() == $i ? 'class="active"' : ''; + ?> +
  • > + +
  • + +
  • + + + +
  • +
  • + + + +
  • +
+ +
+
+ +
+ 1) { + $offset = $offset - 1; + } + return $offset; +} + +function get_next($offset, $num, $N) { + // get next offset index + if ($offset < $num / $N) { + $offset = $offset + 1; + } + return $offset; +} + +function show_current_record_number($offset, $num, $N) { + //show the record number in the current page + if ($offset < $num / $N) { + return ((($offset - 1) * $N) + 1) . "-" . ($offset) * $N; + } else { + return ((($offset - 1) * $N) + 1) . "-" . $num; + } +} +?> \ No newline at end of file diff --git a/views/search/partialActivities.php b/views/search/partialActivities.php new file mode 100644 index 0000000..9184960 --- /dev/null +++ b/views/search/partialActivities.php @@ -0,0 +1,35 @@ + 0) { + $counter = 0; + ?> +
+
Recent Activity
+
+
    + +
  • + + +
  • + + +
+
+ +
+ diff --git a/views/search/related_keywords.php b/views/search/related_keywords.php new file mode 100644 index 0000000..eea9af1 --- /dev/null +++ b/views/search/related_keywords.php @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/views/search/repositories.php b/views/search/repositories.php new file mode 100644 index 0000000..569746e --- /dev/null +++ b/views/search/repositories.php @@ -0,0 +1,70 @@ +getRepositoriesList(); + //var_dump($repositores); + foreach ($repositores as $key => $row) + { + $nums[$key] = $row['rows']; + } + array_multisort($nums, SORT_DESC, $repositores); + $repoN = 0; + $threshold = 10; + if ($searchBuilder->getTotalRows() > 0) { + ?> +
+
+ Repositories +
+
+
    + $details):?> + + +
  • + + + +
  • + + + + +
+
+
+ \ No newline at end of file diff --git a/views/search/result_status.php b/views/search/result_status.php new file mode 100644 index 0000000..174ed77 --- /dev/null +++ b/views/search/result_status.php @@ -0,0 +1,12 @@ + +
+ Displaying getRowsLimit() > $searchBuilder->getTotalRows() ? $searchBuilder->getTotalRows() : $searchBuilder->getRowsLimit() ?> + of getTotalRows() ?> + results for "getQuery(); ?>" +
+ \ No newline at end of file diff --git a/views/search/results.php b/views/search/results.php new file mode 100644 index 0000000..11bc6f0 --- /dev/null +++ b/views/search/results.php @@ -0,0 +1,79 @@ +getTotalRows() > 0) { + $singlePageUrlExtension = '&query=' . $searchBuilder->getQuery(); + $selectedDatatypes = $searchBuilder->getSelectedDatatypes(); + if ($selectedDatatypes != NULL) { + $singlePageUrlExtension .= '&datatypes=' . implode(",", $selectedDatatypes); + } + + ?> +
    + getSearchResults() as $item) { + $keys = array_keys($item); + $rowTitle = reduce_dupilicate_in_title($item[$keys[0]]); + $maxLen = 160; + $rowTitleShort = strlen($rowTitle) > $maxLen ? substr($rowTitle, 0, $maxLen) . '...' : $rowTitle; + $rowTitleTooltip = strlen($rowTitle) > $maxLen ? $rowTitle : ''; + + if ($searchBuilder->getSearchType() != 'repository') { + $linkUrl = $item['ref'] . $singlePageUrlExtension; + } else { + $linkUrl = $item['ref']; + + } + ?> +
  1. +

    + + getSearchType() != 'repository') {?> + + + + + + + getSearchType() == 'data'): ?> + + + + + + +

    + + $maxLen ? substr(trim($item[$key]), 0, $maxLen) . '...' : trim($item[$key]); + $fieldDisplayValue = strlen(trim($item[$key])) > 350 ? substr(trim($item[$key]), 0, 350) . '... (More In Details)' : trim($item[$key]); + $fieldTitleTooltip = strlen(trim($item[$key])) > $maxLen ? trim($fieldDisplayValue) : ''; + ?> +

    + : + + + +

    + +
  2. + +
+ +
+ NO ITEMS FOUND! +

The following term was not found in bioCADDIE: + getQuery(); ?> +

+
+ diff --git a/views/search/search_details.php b/views/search/search_details.php new file mode 100644 index 0000000..c1cc75b --- /dev/null +++ b/views/search/search_details.php @@ -0,0 +1,33 @@ +getQuery(); + $detail = "(".$searchBuilder->getSearchType().")".$query; + + ?> + +
+
+ + Search Details +
+ +
+
+ +
+
+ +
+ + + \ No newline at end of file diff --git a/views/search/search_panel.php b/views/search/search_panel.php new file mode 100644 index 0000000..81539b7 --- /dev/null +++ b/views/search/search_panel.php @@ -0,0 +1,42 @@ +getSearchType() == 'repository') { + $repo_status = 'checked'; + $data_status = 'unchecked'; + } else { + $repo_status = 'unchecked'; + $data_status = 'checked'; + } + ?> +
+
+
+ +
+ +
+ +
+
+ + + + help + Advanced Search +
+ Search Examples: (Breast Cancer, Genetic Analysis Software, Gene EGFR, Lung[title] AND Cancer, Cancer AND (Lung[Title] OR Skin[Title])) + +
+
+ diff --git a/views/search/sorting.php b/views/search/sorting.php new file mode 100644 index 0000000..0f423bf --- /dev/null +++ b/views/search/sorting.php @@ -0,0 +1,28 @@ + + +
+ Sorted By: + +
+ + + \ No newline at end of file diff --git a/views/search/switch_view.php b/views/search/switch_view.php new file mode 100644 index 0000000..553eebc --- /dev/null +++ b/views/search/switch_view.php @@ -0,0 +1,19 @@ + + +
+ Switch View: + + + + + + + + +
+ diff --git a/views/search/synonym.php b/views/search/synonym.php new file mode 100644 index 0000000..fa22bcf --- /dev/null +++ b/views/search/synonym.php @@ -0,0 +1,44 @@ +getExpansionquery(); + $_SESSION['query']=$searchBuilder->getQuery(); + + ?> + +
+
+ + Synonyms +
+ +
+
    + getExpansionquery() as $item): + if($count<5){?> +
  • + + +
  • + +
+
+ + +
+ + + \ No newline at end of file diff --git a/views/search_repository/filters.php b/views/search_repository/filters.php new file mode 100644 index 0000000..324e67e --- /dev/null +++ b/views/search_repository/filters.php @@ -0,0 +1,192 @@ +getTotalRows() > 0) { + ?> +
+ getFilters() as $facet): ?> + +
+ +
+
+ +
+
+
+ +
+ getSelectedFilters(); + if (sizeof($selectedFilters) > 0) { + $original_facets = $searchBuilder->getSearchResultsNoFilter(); + } + if ($searchBuilder->getTotalRows() > 0) { + if (sizeof($selectedFilters) > 0) { + ?> + + +
+ getFilters() as $facet): ?> + 0) { + $oldterms = array_slice($original_facets[$key]['terms'], 0); + } + ?> +
+ +
+
+
+
+
+ +
+ \ No newline at end of file diff --git a/views/search_repository/pagination.php b/views/search_repository/pagination.php new file mode 100644 index 0000000..6d30aff --- /dev/null +++ b/views/search_repository/pagination.php @@ -0,0 +1,73 @@ +getOffset() - 5); + $min = min($min, ceil($searchBuilder->getTotalRows() / $searchBuilder->getRowsLimit()) - 10); + $min = max($min, 1); + $max = min(ceil($searchBuilder->getTotalRows() / $searchBuilder->getRowsLimit()), $searchBuilder->getOffset() + 5); + $max = max(10, $max); + ?> +
+
    +
  • + + + +
  • +
  • + + + +
  • + getTotalRows() / $searchBuilder->getRowsLimit())); $i++) { + $activeFlag = $searchBuilder->getOffset() == $i ? 'class="active"' : ''; + ?> +
  • > + +
  • + +
  • + + + +
  • +
  • + + + +
  • +
+
+ +
+ +
+ 1) { + $offset = $offset - 1; + } + return $offset; +} + +function get_next($offset, $num, $N) { + // get next offset index + if ($offset < $num / $N) { + $offset = $offset + 1; + } + return $offset; +} + +function show_current_record_number($offset, $num, $N) { + //show the record number in the current page + if ($offset < $num / $N) { + return ((($offset - 1) * $N) + 1) . "-" . ($offset) * $N; + } else { + return ((($offset - 1) * $N) + 1) . "-" . $num; + } +} +?> \ No newline at end of file diff --git a/views/search_repository/pilot_projects.php b/views/search_repository/pilot_projects.php new file mode 100644 index 0000000..d6a00f5 --- /dev/null +++ b/views/search_repository/pilot_projects.php @@ -0,0 +1,17 @@ + + getCurrentRepository() == '0001'): ?> + + + + + + + getCurrentRepository() == '0002'): ?> + + + + + + \ No newline at end of file diff --git a/views/search_repository/repositories.php b/views/search_repository/repositories.php new file mode 100644 index 0000000..a2fd595 --- /dev/null +++ b/views/search_repository/repositories.php @@ -0,0 +1,88 @@ +getRepositories(); + foreach ($repositores as $key => $row) + { + $nums[$key] = $row['rows']; + } + array_multisort($nums, SORT_DESC, $repositores); + $repoN = 0; + $threshold = 10; + + ?> +
+
+ Repositories +
+
+
    + $details): ?> + + +
  • + + + +
  • + +
  • + + +
  • + + +
+
+
+ diff --git a/views/search_repository/result_status.php b/views/search_repository/result_status.php new file mode 100644 index 0000000..ad19d1a --- /dev/null +++ b/views/search_repository/result_status.php @@ -0,0 +1,12 @@ + +
+ Displaying getRowsLimit() > $searchBuilder->getTotalRows() ? $searchBuilder->getTotalRows() : $searchBuilder->getRowsLimit() ?> + of getTotalRows() ?> + results for "getQuery(); ?>" +
+
+ +
+ \ No newline at end of file diff --git a/views/search_repository/results.php b/views/search_repository/results.php new file mode 100644 index 0000000..a240ab3 --- /dev/null +++ b/views/search_repository/results.php @@ -0,0 +1,68 @@ +getTotalRows() > 0) { + $maxLen = 160; + $index = 0; + ?> + + + + getSearchHeaders() as $header): ?> + + + + + + getSearchResults() as $row) { + $checkBoxShown = false; + ?> + + + + + + + +
+ + + + '; + } else { + $i = 0; + foreach ($val as $v) : + if ($i < 5) { + echo $v . '
'; + } + $i++; + endforeach; + } + endforeach; + } + ?>
+ +
+ NO ITEMS FOUND! +

The following term was not found in bioCADDIE: getQuery(); ?>

+
+ \ No newline at end of file diff --git a/views/search_repository/search_panel.php b/views/search_repository/search_panel.php new file mode 100644 index 0000000..013306a --- /dev/null +++ b/views/search_repository/search_panel.php @@ -0,0 +1,44 @@ +getSearchType() == 'repository') { + $repo_status = 'checked'; + $data_status = 'unchecked'; + + } else { + $repo_status = 'unchecked'; + $data_status = 'checked'; + + } + ?> +
+ +
+
+ + + +
+ +
+
+
+ + + + help + Advanced Search +
+ Search Examples: (Breast Cancer, Genetic Analysis Software, Gene EGFR, Lung[title] AND Cancer, Cancer AND (Lung[Title] OR Skin[Title])) + +
+
+ diff --git a/views/search_repository/sorting.php b/views/search_repository/sorting.php new file mode 100644 index 0000000..17db236 --- /dev/null +++ b/views/search_repository/sorting.php @@ -0,0 +1,23 @@ + +
+ Sorted By: + +
+ \ No newline at end of file diff --git a/views/search_repository/switch_view.php b/views/search_repository/switch_view.php new file mode 100644 index 0000000..8e57d84 --- /dev/null +++ b/views/search_repository/switch_view.php @@ -0,0 +1,16 @@ + +
+ Switch View: + + + + + + + + +
+ \ No newline at end of file diff --git a/views/share.php b/views/share.php new file mode 100644 index 0000000..7476ab3 --- /dev/null +++ b/views/share.php @@ -0,0 +1,85 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/whatsthis.php b/whatsthis.php new file mode 100644 index 0000000..48d5642 --- /dev/null +++ b/whatsthis.php @@ -0,0 +1,7 @@ +prepare($sql); + $query->execute(array(':log_date' => $log_date, ':remote_addr' => $remote_addr, 'referral'=>$referral, ':request_uri' => $request_uri, ':message' => $message, ':user_email' => $user_email,':session_id'=>$session_id)); + } catch (PDOException $e) { + echo $e->getMessage(); + } +} + +?> \ No newline at end of file